Repository navigation
Commit f3fd209
Refs #23347
Docs-only. One dated correction appended to ADR-0076's OQ#9 entry
(`docs/adr/0076-objectql-core-tiering.md`, the `9. **dispatcher vs
rest-server overlap**` item). The audit text and its verdict are left as
written.
`docs/adr/**` is a Tier H governed surface, so this is split off from
the code PR #23569 to let that one land on its own. **Land it after
#23569:** the correction says the plugin's copy is retired, and that is
true once #23569 is on `main`.
## What the correction says
OQ#9's partition lists `storage` and `i18n` among the routes the
dispatcher bridge owns in a standard boot, and says only `discovery` and
`packages` were double-mounted. Two entries do not hold against the tree
and a boot:
- **i18n was double-mounted too**, whenever `I18nServicePlugin` was
composed. The plugin registered the same three `/api/v1/i18n/*` patterns
at `kernel:ready`, after the bridge's `start()` registrations, so
first-registration-wins shadowed it. Measured for #23347 on `objectstack
serve` over `examples/app-showcase`, with the plugin's `I18n routes
registered: …` line in the boot log:
- every anonymous request on all three paths answered `401
UNAUTHENTICATED` in the dispatcher envelope, with `X-Request-Id`;
- a signed-in `labels/showcase_task/zh` answered `locale: zh-CN`, the
dispatcher's `resolveLocale` expansion.
#23569 retires the plugin's copy.
- **storage is not the bridge's.**
`packages/runtime/src/dispatcher-plugin.ts` mounts no
`${prefix}/storage` route. Its docblock says "NOT /storage —
`@objectstack/service-storage` owns that surface … (#4087)", and its `──
Storage ──` block opens with "Nothing mounted here on purpose (#4087)".
As a control, the same grep spelling finds the 3 i18n mounts.
The verdict (delineate, do not merge) is unchanged.
## Gates
Local subset, derived by `node scripts/pm/dispatch-gates.mjs --commands
--repo objectstack-ai/objectstack` at `189c6449b`.
- **19 families, every one exit 0.** Reconciled with `--ran`: "19
derived, 19 run, 0 NOT-MEASURED".
- `@objectstack/lint`'s `check:doc-formula-expressions` first exited 3
(nothing measured), because the workspace `@objectstack/lint` was not
built. It was built (turbo cache hits) and then exited 0.
## 维护者速读(草稿)
**改了什么**
只改了一份架构决策记录(ADR-0076)里的一条审计说明:在第 9 个开放问题后面追加一段带日期的更正,原文和结论都不动。
**为什么改**
这条说明写的是"多语言接口和文件存储接口都只由运行时调度器提供,只有两处是重复挂载的"。实测不对。多语言接口其实挂了两份:服务插件自己还挂了一份,只是永远轮不到它应答。文件存储接口则根本不归调度器,早已交给存储服务自己。代码那边的修复(#23569)已经把多余的那一份删掉。这里把记录改成和事实一致,免得后来的人或
AI 照着旧说明做判断。
**风险与代价(含回滚)**
纯文档,不影响任何运行行为。唯一的注意点是落地顺序:更正里写了"插件那份已退役",需要 #23569 先合入才成立。回滚就是删掉这一段追加文字。
**席位意见**
**你要做的**
看一眼追加的那段更正是否准确。如果同意,在 #23569 合入之后批准本 PR。
---
_Generated by [Claude
Code](https://claude.ai/code/session_017WLmd5in9RXu7AjyHR8fKQ)_
Co-authored-by: Claude <noreply@anthropic.com>
1 parent fa6a608 commit f3fd209
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
274 | 274 | | |
275 | 275 | | |
276 | 276 | | |
277 | | - | |
| 277 | + | |
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
| |||
0 commit comments