Repository navigation
docs(core-host): the Feishu paragraphs defer to the connector row (#1315) - #1323
Conversation
) The page still described phase 1's shape in the present tense: the sender kind, a config switch for the inbound socket, and the app pair as one secret read through rt.secretValue. The row paragraph below already states what shipped (#1266): kind channel, app mode on the record, the App ID in the record and only the App Secret in secrets.json. Point the two paragraphs at it, put phase 1's claims in the past tense, and keep what is still true: the owner gate is feishu.ownerOpenId plus the record's allowed list, the 512-id ring enters only after deliver returned, one socket per connector, rt.feishuTransport re-read on every start, and the answer leaves through the feishu plugin. No code change, no changelog fragment.
|
Body corrected at the same tip CI on this tip: |
|
Verdict: PASS at dc7d719 Ran:
What I checked:
Non-blocking:
|
Written-by: Dev
Fixes #1315
Owner: Dev
Reviewer: Reviewer
Tip SHA: dc7d719
Branch:
dev/1315-core-host-docs(frommain 2c02cd15, the merge of #1307 —core/package.json= 0.2.11)Reproduce
docs/subsystems/core-host.mdis the pagearch-docstreats as architecture truth (AGENTS.md:258), and two paragraphs on it still describe the Feishu tree as it was before the connector row (#1303). Onmain 2c02cd15:Three claims, each false on this tree: the definition is
kind: 'channel'(core/src/host/connectors.js:501); nothing reads afeishu.enabledkey, the gate isenabled: () => feishuRecord()?.mode === 'app' && appOf() !== undefined(:573); and the App ID lives in the connector record (:841), paired withFEISHU_APP_SECRETbyappCredentials()(core/src/host/feishu-inbound.js:57-63). The paragraph at:409already states the shipped shape, so the page contradicted itself two paragraphs above it.What changed
One file,
docs/subsystems/core-host.md,+2/−2— two paragraph lines. No code, no test, no generated file, no changelog fragment.:405— phase 1 is past tense ("started as the first sender connector"), and the definition sentence now says it is a channel: the view reports the kind, the client reads it, and the channel kind is what makes the row offer Choose Bots andreconcile()open the socket, while "webhook mode is the same row with nothing to dial". The half that is still true stays:connector-access.js'sCONNECTOR_IDSdoes not listfeishu.:407— the switch is the record (mode: 'app'with both halves saved, "no config switch of its own"); the gate isfeishu.ownerOpenIdplus the record'sallowedguest list, ending "an emptyopen_idnever compares equal to an unset owner"; and the last sentence now saysFEISHU_APP_SECRETis the only half read throughrt.secretValue, with the App ID in the connector record.deliverreturned, one socket per connector,rt.feishuTransportre-read on every start, the answer leaving through thefeishuplugin, the deadlines and the retry policy.What I ran
In a local tree at the pushed tip's exact tree (
git rev-parse HEAD^{tree}= the tip's tree; the changed blob isc97e977fdc1f3dad84264828e74b2b81a618a558):Red without the source change
Take the page back to
main's two lines and the same grep returns the two hits above (three token occurrences:kind: 'sender',feishu.enabled,FEISHU_APP_ID); on this tip it returns nothing and exits 1. That grep is the acceptance Triage wrote ("the page contains none ofkind: 'sender',feishu.enabled,FEISHU_APP_ID"), and its opposite — the five facts that must survive — is still on the page:ownerOpenId,allowed, the 512-id ring,rt.feishuTransport, thefeishuplugin.Not run
tests-okandNode 24runs are the whole-suite evidence; running them locally would re-measure an unchanged tree.npm run verify: it would run oxlint,build-client --check,ds-bot-patches checkand the suites over that same unchanged tree.Risk
Docs only.
arch-docscannot go red for this diff — the page'sowned_pathsiscore/src/host/and no owned file changed — and the change cannot reach the runtime,core/client.js, theds-botmirrors or a release. The one way to break it is a malformed Markdown line, whichmojibakeand the page's own shape cover.Checkpoint
{ "pr": 1323, "claim": "Dev", "issue": 1315, "summary": "Two paragraphs of docs/subsystems/core-host.md still described the pre-row Feishu: the sender kind, a feishu.enabled switch, and the app pair read as one secret. Phase 1 is past tense now, the definition is the channel the row needs, the switch is app mode on the record, and only the App Secret is read through rt.secretValue. What is still true is kept: ownerOpenId plus the allowed guest list, the 512-id ring entering after deliver returned, one socket per connector, rt.feishuTransport re-read at every start, and the feishu plugin exit.", "files": [ "docs/subsystems/core-host.md" ], "checks": { "ran": "node core/scripts/check-arch-docs.mjs → OK (1 changed file); node .github/scripts/check-mojibake.mjs --check → ok, 0 occurrences in 1140 files; git diff --stat origin/main...HEAD → 1 file, +2/−2", "result": "green", "at": "dc7d719eb758da07f9d0ea8b51603131db019ba6" }, "next": "none — ready for review" }