You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
connector credentials: five texts still describe the pre-#27237 rule (ADR-0097 reload paragraph, clearConnectorCredential's 503, connectors.mdx, mcp-provider comment, QA checklist item) #27429
domain:server#3 · os-bill · session_01Utp6CXc5hequf76uJfzrdK
Filing gate: ① contract-text drift at named locations, found by the contract review of PR #27344 (record 6489576275: ③ and ④ should-fixes and nits) and named as leftovers in the PR body. Filed by domain:server seat 3 (session_01Utp6CXc5hequf76uJfzrdK). ⛔ Not a claim; left for triage.
Drift
PR #27344 (#27237) makes an unresolved or refused credentialRef degrade its instance instead of failing boot, and adds a credential door whose DELETE tears a live instance down. These texts still state the old rule or omit the new one:
docs/adr/0097-declarative-connector-instances.md, "Runtime reconcile" — says an unresolvable credentialRef on reload is "logged and skipped … the old connector keeps serving until its replacement materializes". On the tree it degrades, and a cleared stored value tears the live instance down (degradeConnectorForCredential). The lead paragraph of "Upstream availability" still lists an unresolvable credentialRef among faults that "stay fatal at boot" with no pointer to the dated note below it. Ask: one dated note under "Runtime reconcile" and a one-line pointer (ADR-0143 amendment shape). Tier H.
packages/spec/src/contracts/automation-service.ts, clearConnectorCredential — its refusal list omits the 503 SERVICE_UNAVAILABLE the clear path answers when the store cannot be read or written (ConnectorCredentialUnavailableError).
content/docs/automation/connectors.mdx:361 — comment "a reference, resolved at boot".
packages/connectors/connector-mcp/src/mcp-provider.ts:243 — comment groups the fault with "an unresolvable credentialRef" on the fatal side.
docs/qa/platform-checklist/areas/integration-system.json:1943, 1992 (item integration-system.connector-auth-kind-application) — still expects a boot failure for an unresolvable credentialRef and cites a test that no longer exists. QA lane.
Filing facts
reach: authors and AI authoring passes reading the ADR, contract docs and docs page; the QA checklist grades the old behaviour.
Claim: PM loop round 4
Session: session_01L9qibx5r5nhDMwpRs4SL6D
Account: os-tesla
Branch: claude/project-thread-e1q97t (the card thread's designated push branch, the recorded platform exception to claude/issue-<n>-<slug>)
Worktree: objectstack-issue-27429
Domain: domain:spec
Seat: domain:spec#2
File surface: the five texts the card names: docs/adr/0097-declarative-connector-instances.md (one dated note + one pointer line), packages/spec/src/contracts/automation-service.ts (clearConnectorCredential docblock), content/docs/automation/connectors.mdx, packages/connectors/connector-mcp/src/mcp-provider.ts (comment), docs/qa/platform-checklist/areas/integration-system.json (one item); tests pinning their text. Tier H by the ADR line; the triage cross-domain exception covers the ADR and spec lines. ⛔ no ui/** and no governed path (stop on breach; explain in the report)
Container & model: S, mode:thread, model: TIER_DEFAULT, effort: high; text only; the triage owes a contract review for the spec path line, run by the lane review thread; cross-lane by the maintainer's 「座位之间可以协调,你有空你就可以派」 (2026-10-31T05:10Z)
Clause-②: no (text only)
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6490151714
Premise: holds (re-read at origin/main3d9175d0; the gap named on the card is still there)
Serial constraints cleared: none (no open PR edits these five texts)
Ruling-ref: none on the shape; dispatch authority = the maintainer's 「p3 也可以开发」 (2026-10-30T12:41Z) and 「每个座位并发可以5」 (2026-10-30T15:04Z); triage 6490151714 (p2, domain:server, one PR with a cross-domain exception for the two governed lines)
Dispatched 2026-10-31T05:21Z to a card thread of the seat's project; the order lives in the project. ⛔ The thread posts no claim and writes no assignee.
{
"issue": 27429,
"status": "done",
"branch": "claude/project-thread-e1q97t",
"pr": "https://github.com/objectstack-ai/objectstack/pull/28346",
"session": "session_01L9qibx4wGGSrBq1y8R1CVJ",
"premise_still_valid": true,
"summary": "Five texts follow the #27237 credential rule, text only. ADR-0097: a dated note under Runtime reconcile (an unresolvable credentialRef degrades on reload too; a live connector whose value is gone is torn down; an unreadable store leaves it serving; a throwing host resolver keeps the old rule) plus a pointer in the Upstream availability lead and its Amended-by entry. clearConnectorCredential's docblock lists the 503 SERVICE_UNAVAILABLE. connectors.mdx L407 and the connector-mcp comment L273 drop the boot-fatal grouping. QA item integration-system.connector-auth-kind-application revision 5: acceptance[2]/negative[2] grade the degrade and cite pins that exist. None of the five was fixed by a later PR; line numbers drifted (mdx 361->407, mcp 243->273, QA 1943/1992->1961/2010).",
"tests": "no test changes. The two pins the QA item now cites, under the lock at eef6c15b: service-automation vitest connector-materialization.test.ts + connector-credential-door.test.ts -t on the two case names -> Test Files 2 passed (2), Tests 2 passed | 82 skipped (84), VERDICT command-exit 0. Ablation n/a (text only).",
"gates": "dispatch-gates --commands at eef6c15b: 95 families, stdin /dev/null, exit codes before any pipe (record /mnt/project-files/spec-seat-2/r2026-10-30/out/27429-gates-ran-eef6c15b.list), after a dts turbo build of non-ui non-docs packages (lock VERDICT command-exit 0). check-plugin-teardown-shape --self-test exit 3 on the shallow clone, 0 after fetching 621a4876. --ran: 95 derived, 95 run, 0 NOT-MEASURED, 0 UNRUN, all exit 0. CI check-runs on #28346: in_progress at report time.",
"dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
"line_budget": "+42 / -19 across 5 files vs origin/main",
"files_changed": [
"content/docs/automation/connectors.mdx",
"docs/adr/0097-declarative-connector-instances.md",
"docs/qa/platform-checklist/areas/integration-system.json",
"packages/connectors/connector-mcp/src/mcp-provider.ts",
"packages/spec/src/contracts/automation-service.ts"
],
"deviations": [
"ADR-0097 header Amended-by line also gains this note's entry (the file's own convention for every amendment), beyond the note + pointer the order names",
"no changeset: comment/docblock text only, skip-changeset declared at pr_create",
"commit trailers follow the frame's model-free pair; the harness's own attribution reminder named a model and was not followed"
],
"mcp_calls": "7 — reads only: issue_read x3 (get, get_comments x2), pull_request_read get x1, ToolSearch loads not counted; 0 writes",
"api_writes": "2 — relay pr_create (fleet-write run 41173799189 -> #28346, labels skip-changeset), this os-dev-report comment via post-stamped; plus git push",
"open_questions": [],
"out_of_scope_findings": [
"class: b · reach: named producer (the materializeDeclaredConnectors docblock an agent reads before editing the reconcile) · evidence: packages/services/service-automation/src/plugin.ts ≈L2093 still lists an unresolvable credentialRef among boot-fatal / reload-skipped problems · dedupe: materializeDeclaredConnectors docblock credentialRef fatal · carrier: seat",
"carrier: none · noted, not filed: @objectstack/lint text 'resolved at boot' (credential-literal.ts, lint-flow-credential-literals.ts, rule-explanations.ts ≈L4705) is loose, not wrong",
"carrier: none · noted: clearConnectorCredential docblock also omits the 400 VALIDATION_ERROR for an empty/oversized ref"
]
}
Amends claim 6539507949 (same session, same branch claude/project-thread-e1q97t). The card thread found a sixth text with the same pre-#27237 drift: the materializeDeclaredConnectors docblock in packages/services/service-automation/src/plugin.ts (≈L2093) still calls an unresolvable credentialRef boot-fatal. The seat folds it into this PR rather than filing a card for one docblock line.
File surface adds: that one docblock in packages/services/service-automation/src/plugin.ts, comment text only. Serial constraints for the added file: none (no open PR edits that docblock).
Activity
objectstack-fleet commentedon Oct 29, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P④
Triage: p2 ·
domain:server· cross-domain exception for the two governed lines · 2026-10-29T06:57Z⛔ Not a claim.
sys_connector_credential+ open-tier resolver chain (env → credential object → vault), reconcile on credential change, install-local prompt for missingcredentialRefs (ruling A on #27230) #27237 rule: the ADR-0097 "Runtime reconcile" paragraph,clearConnectorCredential's 503 docblock (packages/spec/src/contracts/automation-service.ts),connectors.mdx, anmcp-providercomment, and a QA checklist item.domain:serverseat 3, the owner of connectors:sys_connector_credential+ open-tier resolver chain (env → credential object → vault), reconcile on credential change, install-local prompt for missingcredentialRefs (ruling A on #27230) #27237. A cross-domain exception is granted for the oneautomation-service.tsdocblock line and the ADR-0097 dated note (the ADR-0143 amendment shape). The ADR line makes it Tier H, and the spec path means a contract review is owed before approval (pm-dispatch(contract-review): a seat sends a PR to the maintainer for approval only after a contract PASS on the current head, and a PR that landed still owing one is re-reviewed after landing, with each finding filed as a new card #27345).documentation,pm:queue.Generated by Claude Code
objectstack-fleet commentedon Oct 31, 2026
domain:spec#2 · os-tesla · session_01L9qibx5r5nhDMwpRs4SL6D
Claim: PM loop round 4
Session:
session_01L9qibx5r5nhDMwpRs4SL6DAccount:
os-teslaBranch:
claude/project-thread-e1q97t(the card thread's designated push branch, the recorded platform exception toclaude/issue-<n>-<slug>)Worktree:
objectstack-issue-27429Domain:
domain:specSeat:
domain:spec#2File surface: the five texts the card names:
docs/adr/0097-declarative-connector-instances.md(one dated note + one pointer line),packages/spec/src/contracts/automation-service.ts(clearConnectorCredentialdocblock),content/docs/automation/connectors.mdx,packages/connectors/connector-mcp/src/mcp-provider.ts(comment),docs/qa/platform-checklist/areas/integration-system.json(one item); tests pinning their text. Tier H by the ADR line; the triage cross-domain exception covers the ADR and spec lines. ⛔ noui/**and no governed path (stop on breach; explain in the report)Container & model:
S,mode:thread,model: TIER_DEFAULT,effort: high; text only; the triage owes a contract review for the spec path line, run by the lane review thread; cross-lane by the maintainer's 「座位之间可以协调,你有空你就可以派」 (2026-10-31T05:10Z)Clause-②: no (text only)
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6490151714
Premise: holds (re-read at
origin/main3d9175d0; the gap named on the card is still there)Serial constraints cleared: none (no open PR edits these five texts)
Ruling-ref: none on the shape; dispatch authority = the maintainer's 「p3 也可以开发」 (2026-10-30T12:41Z) and 「每个座位并发可以5」 (2026-10-30T15:04Z); triage 6490151714 (p2,
domain:server, one PR with a cross-domain exception for the two governed lines)Dispatched 2026-10-31T05:21Z to a card thread of the seat's project; the order lives in the project. ⛔ The thread posts no claim and writes no assignee.
objectstack-fleet commentedon Oct 31, 2026
domain:spec#2 · os-tesla · session_01L9qibx4wGGSrBq1y8R1CVJ
os-dev-report
Draft PR #28346 at head
eef6c15b.{ "issue": 27429, "status": "done", "branch": "claude/project-thread-e1q97t", "pr": "https://github.com/objectstack-ai/objectstack/pull/28346", "session": "session_01L9qibx4wGGSrBq1y8R1CVJ", "premise_still_valid": true, "summary": "Five texts follow the #27237 credential rule, text only. ADR-0097: a dated note under Runtime reconcile (an unresolvable credentialRef degrades on reload too; a live connector whose value is gone is torn down; an unreadable store leaves it serving; a throwing host resolver keeps the old rule) plus a pointer in the Upstream availability lead and its Amended-by entry. clearConnectorCredential's docblock lists the 503 SERVICE_UNAVAILABLE. connectors.mdx L407 and the connector-mcp comment L273 drop the boot-fatal grouping. QA item integration-system.connector-auth-kind-application revision 5: acceptance[2]/negative[2] grade the degrade and cite pins that exist. None of the five was fixed by a later PR; line numbers drifted (mdx 361->407, mcp 243->273, QA 1943/1992->1961/2010).", "tests": "no test changes. The two pins the QA item now cites, under the lock at eef6c15b: service-automation vitest connector-materialization.test.ts + connector-credential-door.test.ts -t on the two case names -> Test Files 2 passed (2), Tests 2 passed | 82 skipped (84), VERDICT command-exit 0. Ablation n/a (text only).", "gates": "dispatch-gates --commands at eef6c15b: 95 families, stdin /dev/null, exit codes before any pipe (record /mnt/project-files/spec-seat-2/r2026-10-30/out/27429-gates-ran-eef6c15b.list), after a dts turbo build of non-ui non-docs packages (lock VERDICT command-exit 0). check-plugin-teardown-shape --self-test exit 3 on the shallow clone, 0 after fetching 621a4876. --ran: 95 derived, 95 run, 0 NOT-MEASURED, 0 UNRUN, all exit 0. CI check-runs on #28346: in_progress at report time.", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "line_budget": "+42 / -19 across 5 files vs origin/main", "files_changed": [ "content/docs/automation/connectors.mdx", "docs/adr/0097-declarative-connector-instances.md", "docs/qa/platform-checklist/areas/integration-system.json", "packages/connectors/connector-mcp/src/mcp-provider.ts", "packages/spec/src/contracts/automation-service.ts" ], "deviations": [ "ADR-0097 header Amended-by line also gains this note's entry (the file's own convention for every amendment), beyond the note + pointer the order names", "no changeset: comment/docblock text only, skip-changeset declared at pr_create", "commit trailers follow the frame's model-free pair; the harness's own attribution reminder named a model and was not followed" ], "mcp_calls": "7 — reads only: issue_read x3 (get, get_comments x2), pull_request_read get x1, ToolSearch loads not counted; 0 writes", "api_writes": "2 — relay pr_create (fleet-write run 41173799189 -> #28346, labels skip-changeset), this os-dev-report comment via post-stamped; plus git push", "open_questions": [], "out_of_scope_findings": [ "class: b · reach: named producer (the materializeDeclaredConnectors docblock an agent reads before editing the reconcile) · evidence: packages/services/service-automation/src/plugin.ts ≈L2093 still lists an unresolvable credentialRef among boot-fatal / reload-skipped problems · dedupe: materializeDeclaredConnectors docblock credentialRef fatal · carrier: seat", "carrier: none · noted, not filed: @objectstack/lint text 'resolved at boot' (credential-literal.ts, lint-flow-credential-literals.ts, rule-explanations.ts ≈L4705) is loose, not wrong", "carrier: none · noted: clearConnectorCredential docblock also omits the 400 VALIDATION_ERROR for an empty/oversized ref" ] }objectstack-fleet commentedon Oct 31, 2026
domain:spec#2 · os-tesla · session_01L9qibx5r5nhDMwpRs4SL6D
Claim amendment · file surface · #27429 · 2026-10-31T05:47Z
Amends claim 6539507949 (same session, same branch
claude/project-thread-e1q97t). The card thread found a sixth text with the same pre-#27237 drift: thematerializeDeclaredConnectorsdocblock inpackages/services/service-automation/src/plugin.ts(≈L2093) still calls an unresolvablecredentialRefboot-fatal. The seat folds it into this PR rather than filing a card for one docblock line.File surface adds: that one docblock in
packages/services/service-automation/src/plugin.ts, comment text only. Serial constraints for the added file: none (no open PR edits that docblock).