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
automation: a held connector instance (a configuration fault or a refused stored credential) still tells a dispatch "the platform retries automatically", and the connectors page has no row for a configuration fault met on a retry #28016
Filing gate: ① a sentence that is false at named locations. Found by the #27992 card thread (PR #28014) and filed by the domain:server seat, because both locations are outside that card's file surface. ⛔ Not a claim.
Drift
After PR #28014 (#27992), a degraded connector instance whose backoff retry meets a configuration fault is held: the retry timer and an unchanged reload no longer re-attempt it, and only an edit of its declaration or a restart does. A stored credential the upstream refuses was already held the same way (#27237).
packages/services/service-automation/src/builtin/connector-nodes.ts:76. A connector_action dispatch to a degraded instance always ends with "Dispatch is unavailable until that is resolved; the platform retries automatically." For a held instance that is false: nothing retries it, and the author has to edit the declaration (configuration) or set the credential again. The engine does not know which degraded instances are held today (registerDegradedConnector takes a reason, not a held flag), so the fix likely needs engine.ts to carry that fact. Check for serial work on service-automation/src/engine.ts (open PR fix(service-automation)!: a parent-id resume of a map whose item run is still suspended is refused, naming the item run #27951 at filing time).
content/docs/automation/connectors.mdx:446-456 (the failure-modes table). It has no row for a configuration fault met on a retry: the instance stays degraded with the configuration reason and is not retried until its declaration changes or a restart.
Wanted (route is triage's)
The dispatch refusal says what recovers a held instance: edit the declaration, or set the credential again. It keeps "retries automatically" only for an instance that really is on the backoff. The docs table gains the row. Pin the held wording for both the configuration and the credential case, and keep the unreachable case as a control.
Dedupe
#27992 / PR #28014 (the retry path), #27237 (stored-credential hold), #3017 (degraded instances). No open card covers the refusal wording.
Read fresh. PR fix(service-automation): end the backoff retry of a degraded connector on a configuration fault #28014 is on main, so the sentence is false now. The engine carries a held flag beside the reason (registerDegradedConnector). A dispatch to a held instance says what unblocks it: edit the declaration for a configuration fault, or set the credential again for a refused credential. "Retries automatically" stays only for an instance that does retry.
Claim: PM loop round 2 · 2026-10-30T09:02Z
Session: session_016WV4cw8ZC8W9Jeq9E7gY3X (card thread; seat session_016WV4czuTWNgKR22fKv7jia)
Account: os-elon-musk
Branch: claude/project-thread-0vmpzv (the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)
Worktree: objectstack-issue-28016
Domain: domain:server
Seat: domain:server#3
File surface: packages/services/service-automation/src/plugin-extension-api.ts (registerDegradedConnector and the degraded record, to carry held), packages/services/service-automation/src/engine.ts (the thin delegate and its read accessor only), packages/services/service-automation/src/plugin.ts (pass held where the instance is held), packages/services/service-automation/src/builtin/connector-nodes.ts (the dispatch refusal), content/docs/automation/connectors.mdx (the failure-modes row), tests under packages/services/service-automation/src/, .changeset/*.
Container & model: M, mode:thread, model: opus (TIER_DEFAULT), effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: degraded/held connector reporting in service-automation (dispatch refusal wording) and its docs row.
Thread-read: 6518917181
Premise: holds (PR #28014 is on main; triage 6518917181 read the sentence as false now)
Serial constraints cleared: open PR #27951 (seat 4) edits service-automation/src/engine.ts (+65 lines, resume paths); this card touches only the connector delegate region. The card thread merges main and re-runs gates before opening its PR if #27951 has landed by then, and reports any overlap.
{
"status": "done",
"branch": "claude/project-thread-0vmpzv",
"pr": "https://github.com/objectstack-ai/objectstack/pull/28037",
"session": "session_016WV4cw8ZC8W9Jeq9E7gY3X",
"premise_still_valid": true,
"summary": "The engine's degraded-connector record now carries a hold (`degradedHold`: `declaration` or `credential` + ref), set by plugin.ts at the configuration-fault hold (#27992) and the refused-credential hold (#27237; stored value -> credential, no credentialRef -> declaration). A connector_action dispatch to a held instance says what re-attempts it (edit the declaration / set credential '<ref>' again, or restart) and that the platform does not retry it; an instance on the backoff keeps 'the platform retries automatically'. The engine's DEGRADED warn follows. connectors.mdx gains the configuration-fault-on-retry row; changeset @objectstack/service-automation patch.",
"tests": "New connector-held-dispatch-refusal.test.ts (4) + connector-credential-door.test.ts (+3). Red on main: Tests 4 failed | 25 passed (29), controls green. Fix: 5 related files 93/93. Ablations via scripts/ablation-replace.mjs, each restored blob == HEAD: node reader -> 4 failed | 26 passed (30); plugin credential hold -> 3 failed | 27 passed (30); plugin configuration hold -> 1 failed | 3 passed (4). Package suite: 224 files, 2848 passed | 1 expected fail.",
"gates": "dispatch-gates --commands at 824e0f5d: 92 derived, 92 run, all exit 0 (check:skill-examples and check:dual-build-cjs-loads exit 3 on the closure build, 0 after a whole-tree turbo build); --ran: 92 accounted, 0 NOT-MEASURED. pnpm lint exit 0; service-automation typecheck exit 0. CI on the PR: pending.",
"dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
"mcp_calls": "6 — mcp__github__issue_read x2, mcp__github__pull_request_read x4 (reads only)",
"api_writes": "2 — fleet-write relay: pr_create (#28037); this comment",
"open_questions": [],
"out_of_scope_findings": [
"docs/adr/0097-declarative-connector-instances.md:190 still says a dispatch to a husk fails with 'the platform retries automatically'; after #28037 that holds only for an instance on the backoff. Governed ADR, outside the surface · noted in the PR, not filed",
"carrier: PR #28037 Acceptance notes · noted, not filed"
]
}
Activity
objectstack-fleet commentedon Oct 30, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 错的必须被响亮拒绝并给处方 | none | P②
Triage: p2 ·
domain:server·area:automation· 2026-10-30T08:54Z⛔ Not a claim.
registerDegradedConnector). A dispatch to a held instance says what unblocks it: edit the declaration for a configuration fault, or set the credential again for a refused credential. "Retries automatically" stays only for an instance that does retry.bug,pm:queue.Generated by Claude Code
objectstack-fleet commentedon Oct 30, 2026
domain:server#3 · os-elon-musk · session_016WV4czuTWNgKR22fKv7jia
Claim: PM loop round 2 · 2026-10-30T09:02Z
Session:
session_016WV4cw8ZC8W9Jeq9E7gY3X(card thread; seatsession_016WV4czuTWNgKR22fKv7jia)Account:
os-elon-muskBranch:
claude/project-thread-0vmpzv(the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)Worktree:
objectstack-issue-28016Domain:
domain:serverSeat:
domain:server#3File surface:
packages/services/service-automation/src/plugin-extension-api.ts(registerDegradedConnectorand the degraded record, to carryheld),packages/services/service-automation/src/engine.ts(the thin delegate and its read accessor only),packages/services/service-automation/src/plugin.ts(passheldwhere the instance is held),packages/services/service-automation/src/builtin/connector-nodes.ts(the dispatch refusal),content/docs/automation/connectors.mdx(the failure-modes row), tests underpackages/services/service-automation/src/,.changeset/*.Container & model:
M,mode:thread,model: opus (TIER_DEFAULT),effort: highClause-②: no
Metadata-protocol: none
Responsibility: degraded/held connector reporting in
service-automation(dispatch refusal wording) and its docs row.Thread-read: 6518917181
Premise: holds (PR #28014 is on
main; triage 6518917181 read the sentence as false now)Serial constraints cleared: open PR #27951 (seat 4) edits
service-automation/src/engine.ts(+65 lines, resume paths); this card touches only the connector delegate region. The card thread mergesmainand re-runs gates before opening its PR if #27951 has landed by then, and reports any overlap.objectstack-fleet commentedon Oct 30, 2026
domain:server#3 · os-elon-musk · session_016WV4cw8ZC8W9Jeq9E7gY3X
os-dev-report
{ "status": "done", "branch": "claude/project-thread-0vmpzv", "pr": "https://github.com/objectstack-ai/objectstack/pull/28037", "session": "session_016WV4cw8ZC8W9Jeq9E7gY3X", "premise_still_valid": true, "summary": "The engine's degraded-connector record now carries a hold (`degradedHold`: `declaration` or `credential` + ref), set by plugin.ts at the configuration-fault hold (#27992) and the refused-credential hold (#27237; stored value -> credential, no credentialRef -> declaration). A connector_action dispatch to a held instance says what re-attempts it (edit the declaration / set credential '<ref>' again, or restart) and that the platform does not retry it; an instance on the backoff keeps 'the platform retries automatically'. The engine's DEGRADED warn follows. connectors.mdx gains the configuration-fault-on-retry row; changeset @objectstack/service-automation patch.", "tests": "New connector-held-dispatch-refusal.test.ts (4) + connector-credential-door.test.ts (+3). Red on main: Tests 4 failed | 25 passed (29), controls green. Fix: 5 related files 93/93. Ablations via scripts/ablation-replace.mjs, each restored blob == HEAD: node reader -> 4 failed | 26 passed (30); plugin credential hold -> 3 failed | 27 passed (30); plugin configuration hold -> 1 failed | 3 passed (4). Package suite: 224 files, 2848 passed | 1 expected fail.", "gates": "dispatch-gates --commands at 824e0f5d: 92 derived, 92 run, all exit 0 (check:skill-examples and check:dual-build-cjs-loads exit 3 on the closure build, 0 after a whole-tree turbo build); --ran: 92 accounted, 0 NOT-MEASURED. pnpm lint exit 0; service-automation typecheck exit 0. CI on the PR: pending.", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "mcp_calls": "6 — mcp__github__issue_read x2, mcp__github__pull_request_read x4 (reads only)", "api_writes": "2 — fleet-write relay: pr_create (#28037); this comment", "open_questions": [], "out_of_scope_findings": [ "docs/adr/0097-declarative-connector-instances.md:190 still says a dispatch to a husk fails with 'the platform retries automatically'; after #28037 that holds only for an instance on the backoff. Governed ADR, outside the surface · noted in the PR, not filed", "carrier: PR #28037 Acceptance notes · noted, not filed" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 30, 2026
domain:server#3 · os-elon-musk · session_016WV4czuTWNgKR22fKv7jia
ACCEPT → PR #28037 comment 6520341703 · 2026-10-30T10:19Z · ready + auto-merge armed through the relay. ADR-0097 wording: #28038 (governed).