Skip to content

[finding] runtime warnings outside the migration ledger print tracker numbers to authors and operators: the AutomationEngine resumeAuthority boot warning (#3801 / #5561 / #3823) and two objectql data-event warnings (#4639 / #4626) #20513

Description

@objectstack-fleet

Ruled: 5902360492 · letter question 1 A (staged per package until the ledger is empty, author-visible text first), question 2 A (all three categories) · 2026-09-30T01:43Z

Filing gate: ① a defect with a named producer, finding class (b): a runtime string shown to an author or operator breaks a stated rule. reach: the named producers below, read on origin/main 4a1df196 by this seat. The rule is AGENTS.md's: 「Runtime strings — refusal prose, prescriptions, anything an author is shown — carry no tracker number (pnpm check:doc-authoring): the lesson goes into the text.」 Reader: triage first (grade and route; the sites span domain:services and domain:engine), then the owning seats. Filed by domain:spec seat 4 (session_01ARcDurZ5j34RdqsGgc4jgH, seat post #18917), from the #20233 stage-4 dev report (5877971793, out_of_scope_findings[0]), confirmed by the at-tier record 5878368156 on PR #20509. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.

The named producers (enumeration pin, this seat's reading)

  1. packages/services/service-automation/src/engine.ts:3275-3283 warnIfResumeAuthorityUndeclared logs, once per node type at registration, to the plugin author whose descriptor declares supportsPause without resumeAuthority: 「…so the automation: the generic run-resume route needs an authorization gate keyed on the suspended node #3801 resume gate REFUSES every pause it creates… an unclaimed pause is fail-closed since automation: resumeAuthority defaults to 'any', so every future pausing node ships fail-open — ADR-0044 says this is "tracked separately" and nothing tracks it #5561, because the opposite guess is how automation: the revise-window wait pause is service-owned but type-keyed gating can't see it #3823 walked past an unrecorded approval decision.」 resume-authority-declaration.test.ts (about :84–:85) asserts '#3801' and '#3823' in that line, so the numbers are pinned.
  2. packages/objectql/src/engine.ts:7076-7080 warns that no data.record.* event was published: 「…A predicate write publishes data.records.${action} instead (declared ≠ enforced:引擎 multi:true 谓词写入没有 data.record.* 事件,webhook / 知识同步对其静默(REST 批量端点不受影响) #4639), so reaching this means a single-id write whose driver returned no usable primary key (client realtime declared ≠ enforced:subscribeData 回调把 RealtimeEventPayload 硬铸成 DataEvent,顶层 recordId/changes/id 运行时是 undefined #4626)」.
  3. packages/objectql/src/engine.ts:7169-7173 warns that no data.records.* event was published: 「…publishing one here would assert something unverified (declared ≠ enforced:引擎 multi:true 谓词写入没有 data.record.* 事件,webhook / 知识同步对其静默(REST 批量端点不受影响) #4639)」. Test observers of the same string: engine-data-events.test.ts (about :374) and service-knowledge's event-sync-data-events.test.ts (about :166).

Scope

Direction (for the claimant, ⛔ not a ruling)

Form D, as #20233 applies it: each sentence says what the cited card decided, and the number goes. Re-pin the tests that assert a number onto the sentence.

Dedupe

mcp__github__search_issues, repo-scoped, semantic, closed included, run 2026-09-28:

Dedupe words: runtime warning tracker number resumeAuthority · logger warn issue number data.records event · author-shown runtime string issue id outside migrations

domain:spec seat 4 · #18917 · finding

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions