Skip to content

QA run · platform-core.lifecycle-retention-sweep (1/1) · 55a806a7 · 2026-10-17 · 1 PASS / 0 PARTIAL / 0 FAIL / 0 BLOCKED / 0 NOT-RUN #24117

Closed

Description

@objectstack-fleet

Run record for the re-run #24036 (half B) asks for after revising this item. Runner: an os-dev subagent dispatched by the domain:devx seat 2 PM (session session_016PVjjuVPte5XEJvaQx1E4t). Protocol: .claude/skills/checklist-test/SKILL.md + docs/qa/platform-checklist/RUNNER.md. Executed sequentially (no subagent tool in this runner).

Environment fingerprint

  • framework: 55a806a78c0442243a8ac22e7dbc6f7b2c4b3bb0 on branch claude/issue-24036-ledger-b, the commit the app was built from. Its product tree is origin/main 8a83cebc1; the branch adds docs/qa/platform-checklist/areas/*.json only, and its later commits touch those files alone. Built with pnpm install --frozen-lockfile and turbo run build (75/75 tasks).
  • .objectui-sha: f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56 (no browser leg in this item).
  • boot: objectstack dev --ui --seed-admin -p 41929 -d file:(run dir)/lc/data.db from examples/app-showcase (the CLI provisioned data.telemetry.db beside it — fixtures.requires[0]); one schema boot, then three boots on the same files: control and idle-heartbeat with OS_LOG_LEVEL=info, kill switch with OS_LOG_LEVEL=info OS_LIFECYCLE_DISABLED=1; each stopped by its process-group id. Fixtures hand-seeded with better-sqlite3 between boots.
  • persona(s): operator (local shell + sqlite); no API traffic touched the seeded rows
  • timestamps: 2026-10-17, 00:57Z to 01:04Z

Scope

Selector platform-core.lifecycle-retention-sweep resolves to 1 runnable item: platform-core.lifecycle-retention-sweep at revision 4, P1, surface mixed. No planned or blocked-hidden item.

Per-clause verdicts

# clause (short) verdict evidence
0 retention reaps on the real timer pass seeded into data.telemetry.db: sys_automation_run qa_run_done_1, qa_run_done_2 (completed), qa_run_failed_3 (failed), qa_run_paused, qa_run_running (all 40 d old), qa_run_recent_done (5 d), sys_audit_log qa_audit_old (100 d); into data.db: sys_inbox_message qa_inbox_old (100 d). Control boot (engine up 00:57:54Z): INFO [lifecycle] sweep: 18 policy(ies) applied, ~4 rows reaped, 2 datasource(s) reclaimed, 0 error(s), 0 alert(s) at 00:58:55Z; the three terminal runs and the inbox row are gone
1 onlyWhen spares non-terminal rows pass survivors among the 40 d runs: exactly qa_run_paused and qa_run_running (+ the 5 d control)
2 archive-declaring object never hot-deleted pass qa_audit_old survives the control sweep and the heartbeat sweep; pin lifecycle-service.test.ts green incl. the archive-pending skip. The archive-pending report itself is not in the aggregate log line
3 reap bounded and per-id pass pin lifecycle-service.test.ts (114 passed) incl. the bounded-reap cases; live reaped count ~4 = the seeded expired set
4 OS_LIFECYCLE_DISABLED=1 disarms pass reseeded qa_run_killswitch (completed, 40 d); same files, same info level: 0 sweep lines over 110 s after the engine came up, and the row survives. Bracketed by the armed control (above) and the idle heartbeat at 01:00:48Z: … 18 policy(ies) applied, ~0 rows reaped, …, survivors unchanged
5 class vocabulary matches the spec pass LifecycleClassSchema = z.enum([record, audit, telemetry, transient, event]) (packages/spec/src/data/object.zod.ts); SYSTEM_LEDGER_LIFECYCLE_CLASSES = new Set([audit, telemetry, event]) (packages/objectql/src/engine.ts)

Automated pins run (RUNNER rule 6)

  • packages/objectql/src/lifecycle/lifecycle-service.test.ts (automated.ref): 114 passed, under the shared verify lock.

Reproduction rules

No clause scored fail, so none is owed. No authentication or authorization hole was found; nothing here is withheld under the RUNNER rule-2 carve-out.

Derived item verdict

platform-core.lifecycle-retention-sweep r4: pass (6 pass of 6 clauses).

  • The revised fixture holds as written: on os dev with a file primary the telemetry/audit rows live in data.telemetry.db and the transient inbox row in data.db, and the sweep reaped each from its own file.

Checklist-accuracy findings and fixture gaps from this run close out on #24036.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 17, 2026

    @objectstack-fleet
    ContributorAuthor

    Close-out (domain:devx seat 2): every clause PASS; nothing to extract. Ruling C on #24127 (maintainer): a verification re-run of a ledger edit no longer carries a qa-run record, and the existing ones close out now. The revised item platform-core.lifecycle-retention-sweep landed with #24141 (9ffe8af094), Part of #24036; its history row names #24036.


    Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions