Skip to content

feat(web): channel authoring API and web codec registry - #3570

Open
paul-nechifor wants to merge 1 commit into
paul/feat/w5-dynamic-bridge-classesfrom
paul/feat/w6-channel-authoring
Open

feat(web): channel authoring API and web codec registry#3570
paul-nechifor wants to merge 1 commit into
paul/feat/w5-dynamic-bridge-classesfrom
paul/feat/w6-channel-authoring

Conversation

@paul-nechifor

Copy link
Copy Markdown
Contributor

No description provided.

@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.24424% with 95 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
dimos/e2e_tests/test_custom_channel_browser.py 21.31% 48 Missing ⚠️
dimos/web/test_codecs.py 86.24% 26 Missing ⚠️
dimos/web/cockpit.py 94.96% 6 Missing and 1 partial ⚠️
dimos/web/relay_bridge/relay_bridge_module.py 95.55% 4 Missing and 2 partials ⚠️
dimos/web/relay_bridge/builtin_codecs.py 95.12% 1 Missing and 1 partial ⚠️
dimos/web/relay_bridge/gen_costmap_fixtures.py 50.00% 2 Missing ⚠️
dimos/web/relay_bridge/test_relay_bridge_module.py 98.70% 2 Missing ⚠️
dimos/web/test_cockpit.py 98.64% 2 Missing ⚠️
@@                           Coverage Diff                           @@
##           paul/feat/w5-dynamic-bridge-classes    #3570      +/-   ##
=======================================================================
+ Coverage                                73.88%   77.62%   +3.73%     
=======================================================================
  Files                                     1290     1272      -18     
  Lines                                   131813   122996    -8817     
  Branches                                 12104    11358     -746     
=======================================================================
- Hits                                     97389    95471    -1918     
+ Misses                                   31387    24442    -6945     
- Partials                                  3037     3083      +46     
Flag Coverage Δ
OS-ubuntu-24.04-arm 72.63% <91.24%> (+0.14%) ⬆️
OS-ubuntu-latest 74.49% <91.24%> (+0.13%) ⬆️
Py-3.10 74.48% <91.24%> (+0.13%) ⬆️
Py-3.11 74.48% <91.24%> (+0.13%) ⬆️
Py-3.12 74.48% <91.24%> (+0.13%) ⬆️
Py-3.13 74.48% <91.24%> (+0.12%) ⬆️
Py-3.14 74.49% <91.24%> (+0.13%) ⬆️
Py-3.14t 74.48% <91.24%> (+0.13%) ⬆️
SelfHosted-Large 29.88% <30.59%> (+0.07%) ⬆️
SelfHosted-Linux 34.88% <30.59%> (-0.03%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dimos/web/codecs.py 100.00% <100.00%> (ø)
dimos/web/relay_bridge/test_costmap_encoding.py 100.00% <100.00%> (ø)
dimos/web/relay_bridge/test_dynamic.py 99.55% <100.00%> (+0.04%) ⬆️
dimos/web/relay_bridge/builtin_codecs.py 95.12% <95.12%> (ø)
dimos/web/relay_bridge/gen_costmap_fixtures.py 57.57% <50.00%> (ø)
dimos/web/relay_bridge/test_relay_bridge_module.py 98.80% <98.70%> (-0.35%) ⬇️
dimos/web/test_cockpit.py 99.07% <98.64%> (-0.93%) ⬇️
dimos/web/relay_bridge/relay_bridge_module.py 94.01% <95.55%> (+0.08%) ⬆️
dimos/web/cockpit.py 95.43% <94.96%> (-0.95%) ⬇️
dimos/web/test_codecs.py 86.24% <86.24%> (ø)
... and 1 more

... and 123 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@greptile-apps

greptile-apps Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This change adds an authoring API for custom browser channels and a Python web-codec registry. It generates typed relay bridge ports for declared streams, carries resolved encoder definitions and channel parameters into runtime configuration, and adds browser-facing custom-path coverage.

Confidence Score: 5/5

No blocking failure remains.

No accepted blocking findings remain.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex mapped the relevant code paths that compile explicit channels into dynamic ports and RuntimeChannelSpec, highlighting the modules and areas involved.
  • T-Rex reviewed existing test coverage around the relay bridge module and noted that a params-taking custom encoder combined with explicit rate-gate assertions is not exercised together.
  • T-Rex concluded there is no evidence of production issues or security impact from these changes, with the only notable finding being test-environment interpreter invalidation.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (2): Last reviewed commit: "feat(web): channel authoring API and web..." | Re-trigger Greptile

@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Aug 20, 2026
- New dimos.web.codecs: @web_encoder / @web_decoder registry keyed by encoding
  id. An encoder turns one DimOS message into the bytes of a relay data frame.
- Encoders return bytes, an EncodedPayload when the frame needs header meta,
  or None to skip a sample. json.v1 stays the only unregistered fallback.
- New Channel in dimos.web.cockpit plus cockpit(channels=[...]) to put a
  stream on the wire without a panel. rx only for now, publish arrives in W7.
- The blueprint compiler resolves encoding ids to callables at definition time
  and ships them in immutable runtime channel specs through the config.
- Workers never depend on the user's codec module being imported there. Codecs
  must live at module level so pickle ships them by reference.
- Built-in codecs (jpeg.v1, costmap.zlib.v1, json.v1) move to
  relay_bridge/builtin_codecs.py. The static class stays for the default path.
- examples/custom-path/ is the end-to-end custom codec demo, pinned by a new
  browser e2e in CI (test_custom_channel_browser.py).
@paul-nechifor
paul-nechifor force-pushed the paul/feat/w6-channel-authoring branch from 5d5edd2 to 69a6d82 Compare August 22, 2026 02:12
@github-actions github-actions Bot added ready-to-merge Required CI checks have passed on this PR and removed ready-to-merge Required CI checks have passed on this PR labels Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant