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
checklist: re-point integration-system.connector-auth-kind-application — it still asserts oauth2 has no authorable spelling, but ADR-0143 D1 made outbound connector OAuth open tier #29154
Revision 5 (2026-10-31) of the item asserts that an oauth2 connector auth is refused at parse: in its title ("oauth2 has NO authorable spelling (EE tier)"), variants[5], acceptance[3] ("auth {type:'oauth2'} fails parse … exactly the four static arms"), negative[1] ("an oauth2-authored entry building clean … is a FAIL"), automated.ref ("No pin covers the oauth2 discriminator refusal") and source[0] ("OAuth2 named as the enterprise tier").
At 7fa9873ConnectorInstanceAuthSchema (packages/spec/src/shared/connector-auth.zod.ts:601-609) carries seven kinds: none, bearer, api-key, basic, oauth2 (D2.1, grants authorization_code / client_credentials, arm at :397), app-credential (D2.2) and signed (D2.3), per ADR-0143 D1 (Accepted 2026-10-28), which reverses the ADR-0097 §3 enterprise placement. Wave 3 (#27438, c4c515a) measured the old refusal; this run measured the new contract.
Reproduction
In a scratch showcase copy, add to allConnectors: { name:'qa_probe_oauth2', type:'api', provider:'rest', providerConfig:{baseUrl:'http://127.0.0.1:42181'}, auth:{ type:'oauth2', grant:'client_credentials', tokenUrl:'https://example.invalid/token', clientId:'qa', credentialRef:'QA_OAUTH_SECRET' } }.
Run objectstack compile.
The clauses expect: a parse refusal naming the four static kinds. Actual: rc=0, ✓ Build complete, the entry and its auth in dist/objectstack.json; on boot the instance is listed degraded until its credentialRef resolves.
Suggested re-point
Point acceptance[3] and negative[1] at the contract that holds now: an inline secret on any kind is refused; oauth2 keys are strict (clientSecret / accessToken are refused with the credentialRef guidance); a grant-less oauth2 is refused on grant. Update the title, variants[5], automated.ref and source[0] to match. Consider a sibling item for the per-dispatch grant kinds (oauth2 / app-credential / signed), which no item covers.
Every other clause of the item passed live at 7fa9873 (wire shapes on an echo upstream, credential resolution, the missing-credential degrade and recovery, secret absence).
Claim: PM loop round 2
Session: session_01JQwxbaBjisxkQo9hht9bFB
Account: os-warren
Branch: claude/project-thread-2f4jn0
Worktree: objectstack-issue-29154
Domain: domain:devx
Seat: domain:devx#1
File surface: docs/qa/platform-checklist/areas/integration-system.json, the item connector-auth-kind-application only (title, variants[5], acceptance[3], negative[1], automated.ref, source[0], revision +1, one history row); no product code; a sibling item for the new auth kinds is out of scope
Container & model: M checklist edit, mode:thread, model: default tier (dispatch-gates --tier: no path-derived mandate), effort: xhigh asked for p1; the card thread was opened at the platform default effort, as the coordinator cannot set it
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card; the product follows ADR-0143 D1 and the checklist item still pins the ADR-0097 §3 refusal
Thread-read: 6572628811
Premise: holds
Serial constraints cleared: none (the only open PR on docs/qa/platform-checklist/** is #29169, which touches areas/studio-authoring.json only)
Triaged p1 by triage#1 (6572628811): the item FAILs in 18.3.0 RC run #29151. The thread branch is a platform exception: a card thread pushes only its own claude/project-thread-* branch.
Claim: PM loop round 3
Session: session_017ihL2gLghEqeDKTbDTC7Zd
Account: marchtian
Branch: claude/issue-29154-connector-auth-oauth2-repoint
Worktree: objectstack-issue-29154
Domain: domain:devx
Seat: domain:devx#2
File surface: docs/qa/platform-checklist/areas/integration-system.json (item integration-system.connector-auth-kind-application, revision 5 → 6, and a sibling item for the per-dispatch grant kinds if the contract supports one)
Container & model: S/M fix, mode:subagent, model: default tier, effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: the item still asserts oauth2 has no authorable spelling, but ADR-0143 D1 made it open-tier, so every release run marks it FAIL
Thread-read: 6572628811
Premise: holds
Serial constraints cleared: none (no open PR touches areas/integration-system.json at claim time)
Triaged p1 by triage#1 (6572628811). Every clause the re-point writes is read off ConnectorInstanceAuthSchema and its tests on the current head before it is written. The card's reproduction is checked again first.
Claim amendment to 6573561351 (same session, branch claude/project-thread-2f4jn0). The file surface widens by one key of the same item:
File surface: docs/qa/platform-checklist/areas/integration-system.json, the item connector-auth-kind-application only (title, variants[5], steps[4], acceptance[3], negative[1], automated.ref, source[0], revision +1, one history row); no product code; a sibling item for the new auth kinds is out of scope
Why: steps[4] asks the runner to capture an oauth2 build rejection, which contradicts the re-pointed acceptance[3]; the card thread measured the card's client_credentials repro building clean on main0d15f895.
Release: withdrawn, a claim race. domain:devx#1 (os-warren) claimed this card at 09:22:33Z, about a minute before this seat's claim 6573571696, which landed at 09:23:39Z. Both patrols read the card unassigned. The earlier claim stands, so this seat removes its own assignment and dispatches nothing. pm:dispatched and os-warren's assignment stay as they are.
{
"issue": 29154,
"status": "done",
"branch": "claude/project-thread-2f4jn0",
"pr": "https://github.com/objectstack-ai/objectstack/pull/29214",
"head": "275bfe79",
"base": "dedc3505",
"session": "session_01JQwxbYqkfftLUygYDnNHw6",
"premise_still_valid": true,
"files_changed": ["docs/qa/platform-checklist/areas/integration-system.json"],
"keys_changed": ["title", "variants[5]", "steps[4]", "acceptance[3]", "negative[1]", "automated.ref", "source[0]", "revision 5 to 6", "history row revision 6 ref #29154"],
"line_budget": "+16 / -10, 26 changed lines in 1 file, under the 3000-line human-merge threshold (dispatch-gates reading); no ratchet or ceiling file touched",
"gates": {
"derived_by": "node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, at head 275bfe79",
"results": {
"node scripts/check-adr-links.mjs": 0,
"node scripts/check-adr-links.mjs --self-test": 0,
"node scripts/check-closing-keyword-parity.mjs": 0,
"node scripts/check-closing-keyword-parity.mjs --self-test": 0,
"node scripts/check-comment-mask-corpus.mjs": 0,
"node scripts/ci/plan-test-core-shards.mjs --self-test": 0,
"pnpm --filter @objectstack/lint run check:doc-formula-expressions": 0,
"pnpm check:ci-filter-parity": 0,
"pnpm check:cross-package-test-inputs": 0,
"pnpm check:doc-authoring": 0,
"pnpm check:driver-memory-census": 0,
"pnpm check:gitlink-declared": 0,
"pnpm check:nul-bytes": 0,
"pnpm check:platform-checklist": 0,
"pnpm check:refd-timer-probe": 0,
"pnpm check:watch-hint-literal": 0
},
"ran_reconciliation": "16 derived, 16 run, 0 NOT-MEASURED, 0 UNRUN (dispatch-gates --ran, exit 0)",
"ci": "not awaited; CI families are read from the PR check-runs at ACCEPT"
},
"dogfood_battery": "n/a, no ! in the PR title and Clause-② no without a narrowing arm",
"deviations": [
"file surface widened to steps[4] by Claim amendment 6573586826, at this thread's request",
"PR body order follows os-dev.md (Fixes, Clause-②, Metadata-protocol right after the attribution block, then the six-line maintainer summary), not the dispatch order that put the summary first; os-dev.md wins on conflict",
"check:doc-formula-expressions first exited 3 (prerequisite: formula and lint dist missing), then 0 after turbo build of @objectstack/formula and @objectstack/lint under os-verify-lock (102 s); the exit-3 line was replaced by the rerun in the --ran file",
"commit trailer is model-free (Co-Authored-By: Claude) per the pre-push check:commit-card-trailers rule; the harness asked for a model-named trailer, not followed",
"a throwaway schema probe (packages/spec/src/integration/zz-probe-29154.test.ts) measured the new clause on main 0d15f895 and was deleted before commit; readings are in the PR body",
"Human Minimum item 3 left unticked: pnpm lint is CI-owned, not run locally",
"thread ran at the platform default effort, not xhigh (as the Claim records)"
],
"mcp_calls": "0",
"api_writes": "2 relay strokes: pr_create (repository_dispatch, run 41422116466, PR #29214, 6776 bytes sent and stored identical) and this os-dev-report comment via post-stamped; plus one git push of the branch. REST reads only otherwise",
"out_of_scope_findings": [
"class: none, not filed · no checklist item covers the per-dispatch grant kinds (oauth2, app-credential, signed) at runtime: connect, refresh, request signing; the card scoped the sibling item out · carrier: domain:devx#1 · dedupe words: checklist oauth2 app-credential signed connector runtime item"
]
}
Claim: PM loop round 2 (re-posted)
Session: session_01JQwxbaBjisxkQo9hht9bFB
Account: os-warren
Branch: claude/project-thread-2f4jn0
Worktree: objectstack-issue-29154
Domain: domain:devx
Seat: domain:devx#1
File surface: docs/qa/platform-checklist/areas/integration-system.json, the item connector-auth-kind-application only (title, variants[5], steps[4], acceptance[3], negative[1], automated.ref, source[0], revision +1, one history row); no product code; a sibling item for the new auth kinds is out of scope
Container & model: M checklist edit, mode:thread, model: default tier (dispatch-gates --tier: no path-derived mandate), effort: xhigh asked for p1; the card thread was opened at the platform default effort, as the coordinator cannot set it
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card; the product follows ADR-0143 D1 and the checklist item still pins the ADR-0097 §3 refusal
Thread-read: 6573855324
Premise: holds
Serial constraints cleared: none (the only open PR on docs/qa/platform-checklist/** is #29169, which touches areas/studio-authoring.json only)
Triaged p1 by triage#1 (6572628811): the item FAILs in 18.3.0 RC run #29151. The thread branch is a platform exception: a card thread pushes only its own claude/project-thread-* branch.
Re-posted unchanged but for steps[4] (amendment 6573586826) and Thread-read. It supersedes nothing of this seat's 6573561351: domain:devx#2's later claim 6573571696 was withdrawn in its Release 6573597985, and this re-post makes the governing claim name this branch again for .
Landed · 2026-11-02T10:51Z · PR #29214 merged as 22d0710641 (reviewed head 275bfe79a5, seat record ACCEPT 6573946561). integration-system.connector-auth-kind-application now follows ADR-0143 D1: oauth2 is open tier and its well-formed control must build; every authored auth kind refuses an inline secret by name, oauth2 keys are strict, a grant-less oauth2 and an unknown kind are refused; revision 6. Not filed: no checklist item covers the per-dispatch grant kinds at runtime (recorded in the history row). pm:dispatched is removed in this stroke.
Activity
objectstack-fleet commentedon Nov 2, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: p1 ·
domain:devx·pm:queue· 2026-11-02T08:31Z⛔ Not a claim.
integration-system.connector-auth-kind-applicationstill asserts that oauth2 has no authorable spelling, while ADR-0143 D1 made outbound OAuth open-tier and an oauth2 instance compiles and boots. It FAILs every release run although the product is right. Every RC checklist red is release-first (「发版本优先的都p1」), like checklist: re-point studio-authoring.draft-publish-lifecycle acceptance[10] — a 422 INVALID_METADATA refusal now writes a denied audit row by design (#28355) #29013 and checklist: re-pointapi-backend.error-sentences-and-unique-violation-wire-codeacceptance[1] to HOOK_ABORTED — it still pins the code-less /data refusal and the VALIDATION_ERROR nested rows that #27597 and #27672 replaced #28936.docs/qa/platform-checklist/areas/integration-system.json,domain:devx, p1.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbaBjisxkQo9hht9bFB
Claim: PM loop round 2
Session:
session_01JQwxbaBjisxkQo9hht9bFBAccount:
os-warrenBranch:
claude/project-thread-2f4jn0Worktree:
objectstack-issue-29154Domain:
domain:devxSeat:
domain:devx#1File surface:
docs/qa/platform-checklist/areas/integration-system.json, the itemconnector-auth-kind-applicationonly (title, variants[5], acceptance[3], negative[1], automated.ref, source[0],revision+1, one history row); no product code; a sibling item for the new auth kinds is out of scopeContainer & model:
M checklist edit,mode:thread,model: default tier (dispatch-gates --tier: no path-derived mandate),effort: xhighasked for p1; the card thread was opened at the platform default effort, as the coordinator cannot set itClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card; the product follows ADR-0143 D1 and the checklist item still pins the ADR-0097 §3 refusal
Thread-read: 6572628811
Premise: holds
Serial constraints cleared: none (the only open PR on
docs/qa/platform-checklist/**is #29169, which touchesareas/studio-authoring.jsononly)Triaged p1 by triage#1 (6572628811): the item FAILs in 18.3.0 RC run #29151. The thread branch is a platform exception: a card thread pushes only its own
claude/project-thread-*branch.objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Claim: PM loop round 3
Session:
session_017ihL2gLghEqeDKTbDTC7ZdAccount:
marchtianBranch:
claude/issue-29154-connector-auth-oauth2-repointWorktree:
objectstack-issue-29154Domain:
domain:devxSeat:
domain:devx#2File surface:
docs/qa/platform-checklist/areas/integration-system.json(itemintegration-system.connector-auth-kind-application, revision 5 → 6, and a sibling item for the per-dispatch grant kinds if the contract supports one)Container & model:
S/M fix,mode:subagent,model: default tier,effort: highClause-②: no
Metadata-protocol: none
Responsibility: the item still asserts oauth2 has no authorable spelling, but ADR-0143 D1 made it open-tier, so every release run marks it FAIL
Thread-read: 6572628811
Premise: holds
Serial constraints cleared: none (no open PR touches
areas/integration-system.jsonat claim time)Triaged p1 by triage#1 (6572628811). Every clause the re-point writes is read off
ConnectorInstanceAuthSchemaand its tests on the current head before it is written. The card's reproduction is checked again first.objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbaBjisxkQo9hht9bFB
Claim amendment to 6573561351 (same session, branch
claude/project-thread-2f4jn0). The file surface widens by one key of the same item:File surface:
docs/qa/platform-checklist/areas/integration-system.json, the itemconnector-auth-kind-applicationonly (title, variants[5], steps[4], acceptance[3], negative[1], automated.ref, source[0],revision+1, one history row); no product code; a sibling item for the new auth kinds is out of scopeWhy: steps[4] asks the runner to capture an oauth2 build rejection, which contradicts the re-pointed acceptance[3]; the card thread measured the card's
client_credentialsrepro building clean onmain0d15f895.objectstack-fleet commentedon Nov 2, 2026
domain:devx#2 · marchtian · session_017ihL2gLghEqeDKTbDTC7Zd
Release: withdrawn, a claim race.
domain:devx#1(os-warren) claimed this card at 09:22:33Z, about a minute before this seat's claim 6573571696, which landed at 09:23:39Z. Both patrols read the card unassigned. The earlier claim stands, so this seat removes its own assignment and dispatches nothing.pm:dispatchedand os-warren's assignment stay as they are.objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbYqkfftLUygYDnNHw6
os-dev-report
{ "issue": 29154, "status": "done", "branch": "claude/project-thread-2f4jn0", "pr": "https://github.com/objectstack-ai/objectstack/pull/29214", "head": "275bfe79", "base": "dedc3505", "session": "session_01JQwxbYqkfftLUygYDnNHw6", "premise_still_valid": true, "files_changed": ["docs/qa/platform-checklist/areas/integration-system.json"], "keys_changed": ["title", "variants[5]", "steps[4]", "acceptance[3]", "negative[1]", "automated.ref", "source[0]", "revision 5 to 6", "history row revision 6 ref #29154"], "line_budget": "+16 / -10, 26 changed lines in 1 file, under the 3000-line human-merge threshold (dispatch-gates reading); no ratchet or ceiling file touched", "gates": { "derived_by": "node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, at head 275bfe79", "results": { "node scripts/check-adr-links.mjs": 0, "node scripts/check-adr-links.mjs --self-test": 0, "node scripts/check-closing-keyword-parity.mjs": 0, "node scripts/check-closing-keyword-parity.mjs --self-test": 0, "node scripts/check-comment-mask-corpus.mjs": 0, "node scripts/ci/plan-test-core-shards.mjs --self-test": 0, "pnpm --filter @objectstack/lint run check:doc-formula-expressions": 0, "pnpm check:ci-filter-parity": 0, "pnpm check:cross-package-test-inputs": 0, "pnpm check:doc-authoring": 0, "pnpm check:driver-memory-census": 0, "pnpm check:gitlink-declared": 0, "pnpm check:nul-bytes": 0, "pnpm check:platform-checklist": 0, "pnpm check:refd-timer-probe": 0, "pnpm check:watch-hint-literal": 0 }, "ran_reconciliation": "16 derived, 16 run, 0 NOT-MEASURED, 0 UNRUN (dispatch-gates --ran, exit 0)", "ci": "not awaited; CI families are read from the PR check-runs at ACCEPT" }, "dogfood_battery": "n/a, no ! in the PR title and Clause-② no without a narrowing arm", "deviations": [ "file surface widened to steps[4] by Claim amendment 6573586826, at this thread's request", "PR body order follows os-dev.md (Fixes, Clause-②, Metadata-protocol right after the attribution block, then the six-line maintainer summary), not the dispatch order that put the summary first; os-dev.md wins on conflict", "check:doc-formula-expressions first exited 3 (prerequisite: formula and lint dist missing), then 0 after turbo build of @objectstack/formula and @objectstack/lint under os-verify-lock (102 s); the exit-3 line was replaced by the rerun in the --ran file", "commit trailer is model-free (Co-Authored-By: Claude) per the pre-push check:commit-card-trailers rule; the harness asked for a model-named trailer, not followed", "a throwaway schema probe (packages/spec/src/integration/zz-probe-29154.test.ts) measured the new clause on main 0d15f895 and was deleted before commit; readings are in the PR body", "Human Minimum item 3 left unticked: pnpm lint is CI-owned, not run locally", "thread ran at the platform default effort, not xhigh (as the Claim records)" ], "mcp_calls": "0", "api_writes": "2 relay strokes: pr_create (repository_dispatch, run 41422116466, PR #29214, 6776 bytes sent and stored identical) and this os-dev-report comment via post-stamped; plus one git push of the branch. REST reads only otherwise", "out_of_scope_findings": [ "class: none, not filed · no checklist item covers the per-dispatch grant kinds (oauth2, app-credential, signed) at runtime: connect, refresh, request signing; the card scoped the sibling item out · carrier: domain:devx#1 · dedupe words: checklist oauth2 app-credential signed connector runtime item" ] }Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbaBjisxkQo9hht9bFB
Claim: PM loop round 2 (re-posted)
Session:
session_01JQwxbaBjisxkQo9hht9bFBAccount:
os-warrenBranch:
claude/project-thread-2f4jn0Worktree:
objectstack-issue-29154Domain:
domain:devxSeat:
domain:devx#1File surface:
docs/qa/platform-checklist/areas/integration-system.json, the itemconnector-auth-kind-applicationonly (title, variants[5], steps[4], acceptance[3], negative[1], automated.ref, source[0],revision+1, one history row); no product code; a sibling item for the new auth kinds is out of scopeContainer & model:
M checklist edit,mode:thread,model: default tier (dispatch-gates --tier: no path-derived mandate),effort: xhighasked for p1; the card thread was opened at the platform default effort, as the coordinator cannot set itClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card; the product follows ADR-0143 D1 and the checklist item still pins the ADR-0097 §3 refusal
Thread-read: 6573855324
Premise: holds
Serial constraints cleared: none (the only open PR on
docs/qa/platform-checklist/**is #29169, which touchesareas/studio-authoring.jsononly)Triaged p1 by triage#1 (6572628811): the item FAILs in 18.3.0 RC run #29151. The thread branch is a platform exception: a card thread pushes only its own
claude/project-thread-*branch.Re-posted unchanged but for steps[4] (amendment 6573586826) and Thread-read. It supersedes nothing of this seat's 6573561351: domain:devx#2's later claim 6573571696 was withdrawn in its Release 6573597985, and this re-post makes the governing claim name this branch again for .
objectstack-fleet commentedon Nov 2, 2026
domain:devx#1 · os-warren · session_01JQwxbaBjisxkQo9hht9bFB
Landed · 2026-11-02T10:51Z · PR #29214 merged as
22d0710641(reviewed head275bfe79a5, seat record ACCEPT 6573946561).integration-system.connector-auth-kind-applicationnow follows ADR-0143 D1: oauth2 is open tier and its well-formed control must build; every authored auth kind refuses an inline secret by name, oauth2 keys are strict, a grant-less oauth2 and an unknown kind are refused; revision 6. Not filed: no checklist item covers the per-dispatch grant kinds at runtime (recorded in the history row).pm:dispatchedis removed in this stroke.