Repository navigation
Description
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Filing gate: ① checklist assertion defects (#32997 rule 9): each item below will score FAIL or mislead a QA run while the product is right, or names a fixture recipe that no longer works.
Parent: #32908, the v18.4.0 sweep anchor. Its §1 close-out was measured in one pass on origin/main 87330e89 (report 6881013689 on #32908): 269 parked lines, 171 of them owe an item-text re-point over 159 items. That is too large for one PR, so the seat splits it by area file into five batches with no shared file. This card is batch E.
Business reason: every stale clause costs the next release sweep a false FAIL and a re-judgement, and a stale fixture recipe costs a run its setup time.
Reader: the domain:devx seat 4 (claim follows), then QA runs reading these areas.
Dedupe: the rows below are the parked lines of #32908 that are still stale on 87330e89. PR #33273 (merged) and #33275 (in flight) re-point other items and are excluded. No other open card re-points these items.
Fix shape
For each row: re-measure on current main first (area files move under product PRs); re-point the text to the product, bump revision, add a history row citing this card and the source record. A row the re-measure finds already right is left alone and said so in the PR. pnpm check:platform-checklist green. Files: docs/qa/platform-checklist/areas/integration-system.json, docs/qa/platform-checklist/areas/automation.json and the area-level recipe text the rows name only.
Rows (from the #32908 close-out ledger; evidence read at 87330e89, not driven live)
| # | line | source record · comment | disposition | evidence |
|---|---|---|---|---|
| 45 | integration-system.job-package-key fixtures: needs OS_AUTOMATION_SCHEDULED_WORK_ENABLED=1; fixture job must be a sandboxed body (handler job refused 422 at install); functions[].effect only pure/writes; holder read from the INFO attribution line (info level) |
#32940 (body §1) · #33048 · 6846028996 · #33096 · 6851700388 | re-point owed → split batch E | r2, last history 2026-11-10 #32330; stale "handler" present |
| 49 | integration-system.push-device-registry-and-relay-boot C6/A5; leg 3: '[messaging] channel provider registered: push' prints unconditionally at info; read leg 3's exit code from a foreground run |
#32940 (body §1) · #33096 · 6851700388 | re-point owed → split batch E | r1, last history 2026-11-10 #32270; missing "channel provider registered" (gap stands) |
| 50 | automation.trigger-status-contract acceptance[5]: 'edit the paused node away' arm resumes on the pinned body (200) since #28405; only the deregistered-flow arm answers 404 RUN_NOT_FOUND; RESUME_CHILD_PENDING stageable with two runtime flows |
#32949 (body §1) · #33025 · 6844741021 · #33081 · 6850173588 · #33092 · 6850793622 | re-point owed → split batch E | r14, last history 2026-11-12 #32161; stale "edit" present |
| 51 | integration-system.notify-inbox-delivery acceptance[4]: sys_notification and sys_notification_delivery live in the telemetry DB; member cannot read sys_notification_delivery (count as admin) |
#32949 (body §1) · #33096 · 6851700388 | re-point owed → split batch E | r7, last history 2026-10-31 #27441; missing "telemetry DB" (gap stands) |
| 53 | integration-system.email-template-render knownGaps[1]; A5/S7; A6/S8: send to a non-user address fails the step by design; os dev --no-restart is no reload door (compile into a --no-watch boot reloads); S8 stray-key probe should use content (alias), not body |
#32949 (body §1) · #33096 · 6851700388 | re-point owed → split batch E | r17, last history 2026-11-08 #31499; stale "no-restart" present |
| 61 | integration-system.external-schema-introspection acceptance[2]: draft fields carry {type, label}, not {type} only |
#33025 · 6844741021 · #33081 · 6850173588 | re-point owed → split batch E | r9, last history 2026-11-03 claude/sec-hardening-d; stale "type" present |
| 62 | integration-system.connector-degraded-recovery acceptance[3]: first retry immediate at kernel-ready (~3 s), then 10->20->40 s; a metadata reload retries at once |
#33025 · 6844741021 · #33081 · 6850173588 | re-point owed → split batch E | r7, last history 2026-11-10 #32168; stale "10" present |
| 84 | fixture: scratch qa_b: scratch qa_b package needs strict:false or a dependency on qa_a to build (area recipe text) | #33025 · 6844741021 | re-point owed → split batch E | area recipe text |
| 85 | fixture: showcase_batch_reminders: showcase_batch_reminders needs a tasks input when triggered (same fact as automation-namespace-address steps[2]) | #33025 · 6844741021 | re-point owed → split batch E | area recipe text |
| 107 | automation.flow-reference-package-resolution status; acceptance[4] automated.ref: say what status scratch flows declare; A4 verify names template-loader.test.ts and declared-webhooks.test.ts missing from automated.ref |
#33048 · 6846028996 · #33096 · 6851700388 | re-point owed → split batch E | r2, last history 2026-11-10 #32330; stale "template-loader" present |
| 111 | integration-system.job-scheduled-run fixtures.requires[1]; acceptance[3]: cp -a relative-link recipe breaks under /tmp; body sandbox has no setTimeout; CPU overrun records failed not timeout; use an hour-pinned cron in a non-UTC zone |
#33048 · 6846028996 · #33096 · 6851700388 | re-point owed → split batch E | r6, last history 2026-10-31 #27441; stale "symlinks" present |
| 139 | automation.flow-node-type-matrix steps[6]: body-only webhook signature form exists; a bare hex HMAC is signature-malformed (still 401) |
#33048 · 6846028996 | re-point owed → split batch E | r14, last history 2026-11-12 #32161; stale "body-only" present |
| 140 | automation.flow-node-type-matrix steps[1]; misc: S1 'In ...custom' is the opened copy's header badge, not a rail marker; bogus-node trigger answers 400; suspending steps log 'success' while run paused; EXP-2001 needs auditor decision |
#33093 · 6850899929 · #33096 · 6851700388 | re-point owed → split batch E | r14, last history 2026-11-12 #32161; stale "rail" present |
| 162 | automation.flow-toggle-kill-switch steps[1],[5],[7]: name the task fields: title, project, status |
#33058 · 6846283471 | re-point owed → split batch E | r4, last history 2026-10-20 #25003; item unchanged since the record |
| 172 | integration-system.flow-connector-picker fixtures; acceptance[2]: fixture flow must carry a connectorConfig block and a real connectorId; typed form omits required asterisk and blocks by design |
#33058 · 6846283471 · #33093 · 6850899929 · #33096 · 6851700388 | re-point owed → split batch E | r5, last history 2026-10-16 #24036; missing "connectorConfig" (gap stands) |
| 173 | integration-system.notification-preference-suppression steps[5]/acceptance[3]; acceptance[4]: admin-global default is user_id empty (ADR-0118 D1), not '*'; notify message reaches templates as body |
#33058 · 6846283471 | re-point owed → split batch E | r4, last history 2026-10-20 #25003; stale "'*'" present |
| 192 | integration-system.datasource-admin-lifecycle acceptance[0]: catalog holds seven drivers (+oracle, mssql), not five |
#33081 · 6850173588 | re-point owed → split batch E | r8, last history 2026-10-27 #25807; stale "memory/sqlite/postgres/mysql/mongodb" present |
| 193 | integration-system.connector-declarative-boot steps[0]: 'Connector registered ... origin: declarative' lines are info level: boot with --log-level info |
#33081 · 6850173588 | re-point owed → split batch E | r6, last history 2026-10-27 #25807; missing "log-level" (gap stands) |
| 194 | recipe qa-flow-status-doors step 5: telemetry DB replaces .db with .telemetry.db (trigger.telemetry.db) | #33081 · 6850173588 | re-point owed → split batch E | area recipe text |
| 202 | recipe qa-scratch-authz step 6: qa_att_editor grants no sys_attachment.allowDelete: uploader-delete leg of attach-requires-parent-edit meets RBAC first | #33081 · 6850173588 | re-point owed → split batch E | area recipe text |
| 213 | recipe cli-18-prerelease-db knownGaps[1]: second boot read status failed, attempt_count 4 (recipe text says 2 -> 3; same class, digits differ): areas/cli.json fixtures recipe line 46 still reads 2 → 3 | #33087 · 6850382730 | re-point owed → split batch E | area recipe text |
| 235 | automation.flow-run-semantics-v18 steps[1]: qa_elevated has no recipe body |
#33092 · 6850793622 | re-point owed → split batch E | r3, last history 2026-10-26 #25840; stale "qa_elevated" present |
| 240 | fixture: admin create-user PASSWORD_RESET_REQUIRED: users from admin create-user carry mustChangePassword: fixtures should say to clear it (admin-lifecycle A4, api-key-ui-lifecycle, marketplace-install-local) | #33093 · 6850899929 · #33094 · 6852480973 | re-point owed → split batch E | area recipe text |
| 241 | fixture: local OIDC trusted origin: a local OIDC provider needs its origin in OS_TRUSTED_ORIGINS (sso-provider-groups-claim requires) | #33093 · 6850899929 | re-point owed → split batch E | area recipe text |
| 252 | automation.screen-flow-roundtrip steps[0]: run read has no current-node field (read from the screen contract); S0 app segment is the package id |
#33096 · 6851700388 | re-point owed → split batch E | r7, last history 2026-10-27 #25807; stale "showcase_app" present |
| 253 | automation.connector-dispatch-matrix acceptance[1]: connector step records no request/response echo: response on run.output, {status:'ok'} at ping.body.data.status; registry also lists showcase_status_openapi |
#33096 · 6851700388 | re-point owed → split batch E | r5, last history 2026-10-21 #25018; item unchanged since the record |
| 255 | automation.flow-runs-page-test-trigger steps[9]: flow picker is a combobox button, not a native select; Continue run reopens the dialog |
#33096 · 6851700388 | re-point owed → split batch E | r3, last history 2026-10-20 #25003; stale "select" present |
| 257 | integration-system.webhook-lifecycle steps[4]: fields= on single GET answers 400; columns are error, next_retry_at, last_attempted_at |
#33096 · 6851700388 | re-point owed → split batch E | r15, last history 2026-11-14 #33016; stale "$filter" present |
| 259 | integration-system.federation-only-driver-catalog fixtures: fixture says pnpm dev -- --fresh; canonical runner boot is equivalent |
#33096 · 6851700388 | re-point owed → split batch E | r1, last history 2026-11-10 #32269; stale "--fresh" present |
Activity
objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Claim: PM loop round 3 · 2026-11-14T17:01Z
Session:
session_01FEkQ5oXxZBdb7RnC13GV1z(card thread, dev) · seatsession_01FEkQ5ooRyyS95kdyC2dPEXAccount:
os-project-managerBranch:
claude/project-thread-2wcbefWorktree:
objectstack-issue-33331Domain:
domain:devxSeat:
domain:devx#4File surface: under
docs/qa/platform-checklist/areas/:integration-system.json,automation.json, and the area-level recipe text the rows name (the dev names its file before editing if it is outsideareas/*.json). ⛔ No other area file (siblings #33328 #33329 #33330 #33331 #33332 each own theirs), no product code.Container & model: M,
mode:thread,model: default tier,effort: defaultClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card (checklist text lags a correct product)
Thread-read: none
Premise: holds: the rows are #32908's ledger readings at
87330e89(report 6881013689); the dev re-measures each on currentmainbefore editingSerial constraints cleared: no open PR or live claim touches these area files (PR #33273 merged; PR #33327 edits only
approvals.json)Scope: one PR,
Fixes #33331,skip-changeset, a per-row disposition table. Order:/mnt/project-files/pm-orders/devx/order-33331.md. Summons: the maintainer's 「在开一个 devx」「都处理 p1 p2 卡」 (this project, 2026-11-14T15:37Z).objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5oXxZBdb7RnC13GV1z
os-dev-report
{ "issue": 33331, "status": "done", "branch": "claude/project-thread-2wcbef", "pr": "https://github.com/objectstack-ai/objectstack/pull/33359", "session": "session_01FEkQ5oXxZBdb7RnC13GV1z", "premise_still_valid": true, "summary": "All 29 rows re-measured from source on main (base 87330e89, merged up to 82838e83). 23 rows re-pointed over 21 items (12 in integration-system.json, 9 in automation.json) plus the qa-flow-status-doors recipe step 5 telemetry file (trigger.db -> trigger.telemetry.db); each item bumps revision once and adds one history row citing #33331 and its source record. 2 rows already right (259; row 85 automation.json half), 1 needs a live drive (84: a defineStack probe of a qa_b-shaped stack passes strict and non-strict, no build-time subflow check found), 4 routed to sibling batches per the seat ruling (202 B, 213 D, 240 A+D, 241 A; row 85 api-backend half C). 0 needs_decision. Head 7f3ad16b.", "tests": "No test added or changed: checklist text only, nothing ablated. Semantic JSON diff against origin/main: only the 21 items named fields, their revision, one new history row each and the recipe sequence[4] call/expect/source changed; item counts unchanged.", "gates": "16 derived by dispatch-gates --commands, 16 run, each exit 0 captured before any pipe (list in /mnt/project-files/pm-orders/devx/33331-gates-ran.txt and the PR body); check:platform-checklist OK, 16 areas, 427 items, symbol anchors 1650/1660 (base 1635/1645, residual 10 unchanged); @objectstack/lint closure built under the verify lock first (VERDICT command-exit 0); dispatch-gates --ran: 16 run, 0 NOT-MEASURED, exit 0; --tier: no path mandate. CI check-runs not yet concluded at report time; the seat reads them from the PR.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "2 — mcp__github__issue_read x2 (read-only); no MCP write tool", "api_writes": "2 — POST /repos/objectstack-ai/objectstack/dispatches (fleet-write pr_create, request fw-20261114T172647Z-a722d2, draft, label skip-changeset, no assignees, read-back identical); POST /repos/objectstack-ai/objectstack/dispatches (this report comment via post-stamped). git push is not a REST write.", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [ "class: none (not a defect) · reach: none · integration-system.notify-inbox-delivery acceptance[4] push probe: the messaging plugin now registers a lazy push provider at kernel:ready (messaging-service-plugin.ts), so whether the probe still meets the not-registered WARN is for the next live run · carrier: next live run of notify-inbox-delivery · noted in PR Acceptance notes, not filed", "class: none (doc drift outside this card rows) · reach: none · automation.json qa-flow-status-doors knownGaps[1] still says read from code, not yet re-driven live, though record #32949 drove it live · carrier: seat (next checklist batch) · noted in PR Acceptance notes, not filed" ] }Generated by Claude Code
objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
ACCEPT → PR #33359 comment 6881621095 · head
7f3ad16b· non-governed, no contract-review face · readied and auto-merge armed 2026-11-14T17:41Z.objectstack-fleet commentedon Nov 14, 2026
domain:devx#4 · os-project-manager · session_01FEkQ5ooRyyS95kdyC2dPEX
Landed · #33331 · PR #33359 · 2026-11-14T18:19Z
7b27869d4f; this card closed by itsFixesline;pm:dispatchedremoved in this stroke.