Commit 09b18f5
feat(runtime): single owner for /discovery + one pipeline for /packages (ADR-0076 D11 step 2) (#3142)
OQ#9 flagged discovery and packages as the two genuinely double-mounted
domains between the REST server and the dispatcher bridge, with
first-registration-wins deciding which implementation a client saw.
- kernel: new public hasPlugin(name) — plugins can make composition-
dependent decisions deterministically during their own start().
- dispatcher bridge: cede ${prefix}/discovery to com.objectstack.rest.api
when that plugin is registered; keep it only as the fallback owner in
REST-less compositions. /.well-known/objectstack stays dispatcher-owned
(no other registrant).
- dispatcher bridge: the /packages route family now flows through
dispatch() (like analytics/i18n/automation/AI) instead of calling
handlePackages() directly, so the explicit mounts and the cloud hosts'
@objectstack/hono catch-all share one per-request pipeline (kernel
resolution, identity, auth gate). The direct path also dropped
req.query on several routes — the documented ?overwrite=true install
flag never reached the handler over the mounted routes.
- ADR-0076 OQ#9: record step 2 as shipped and re-scope step 1 with the
cross-repo finding — the 'dead' dispatch() branches are the cloud
hosts' fallback fabric via the createHonoApp catch-all (/share-links
is the designed primary surface for per-env kernels; /notifications
has no other HTTP owner), so killing them waits for per-domain
handlers (step 3).
Refs #2462
Claude-Session: https://claude.ai/code/session_01A1BtxNeUaGmvUYr8FwtUNu
Co-authored-by: Claude <noreply@anthropic.com>1 parent 6cc73e3 commit 09b18f5
4 files changed
Lines changed: 112 additions & 179 deletions
File tree
- docs/adr
- packages
- core/src
- runtime/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
208 | 210 | | |
209 | 211 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
461 | 461 | | |
462 | 462 | | |
463 | 463 | | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
464 | 478 | | |
465 | 479 | | |
466 | 480 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
129 | 147 | | |
0 commit comments