Skip to content

Automate verified DevTools manifest updates - #1445

Open
schickling-assistant wants to merge 2 commits into
mainfrom
schickling/2026-07-18-devtools-auto-merge
Open

Automate verified DevTools manifest updates#1445
schickling-assistant wants to merge 2 commits into
mainfrom
schickling/2026-07-18-devtools-auto-merge

Conversation

@schickling-assistant

Copy link
Copy Markdown
Collaborator

Problem

Every sanitized DevTools artifact publication opens a manifest-only PR, but /release/ CODEOWNERS currently forces a manual approval even though the artifact has already passed the dedicated verification workflow.

Goal

Allow future manifest-only updates to merge automatically after the normal branch rules and required checks prove an official, forward-only artifact transition.

Decisions

  • Exempt only /release/devtools-artifact.json from the broader /release/ CODEOWNERS rule. Workflow definitions, release code, and every other release file remain owned.
  • Validate exact HTTPS assets from livestorejs/livestore-devtools-artifacts, canonical tag and filenames, full source revision, build identity, and matching lowercase SHA-256 digests.
  • Compare builtAt and build ID against the PR base manifest to reject rollback, replay, and same-build transitions.
  • Use normal gh pr merge --auto --merge; do not grant GitHub Actions a ruleset bypass.

Rejected alternatives: a broad Actions bypass could skip required checks; a machine-user token or custom GitHub App would add credential and lifecycle complexity without improving this narrow trust boundary.

Verification

  • pnpm exec vitest run scripts/src/commands/devtools-artifact.test.ts: 23/23 passed.
  • devenv tasks run lint:check ts:check --no-tui: lint passed; TypeScript passed after fixing the only new exact-optional diagnostic. Existing Effect advisory diagnostics remain non-fatal.
  • devenv tasks run release:devtools-artifact:verify --no-tui: passed against the checked-in public release.
  • devenv --refresh-task-cache tasks run genie:run --no-tui: generated workflow is current.
  • Commit hook check-quick: passed.
  • Repository settings confirm auto-merge and merge commits are enabled.

Complexity

The additional validator is kept in the existing artifact command and task. The complexity is required because removing the human approval gate must replace judgment with an explicit, testable provenance and transition policy.

Concerns

The official artifact repository remains the publication trust root. A compromised publisher there could publish a malicious newer artifact, but cannot bypass this repository's byte-integrity checks, public-content audit, or normal required checks.

Friction & bottlenecks

The previous manifest PR's pull-request verification failed independently of PR event delivery; this change keeps that verification mandatory and makes the previous-manifest input explicit from the base SHA.

Follow-ups

After this one-time CODEOWNERS governance approval, validate the next real artifact dispatch as the end-to-end proof of unattended auto-merge.

References

Closes #1444
Related: #1443

Posted on behalf of @schickling
field value
agent_name ☁️ co3-billow
agent_session_id 7f3b9666-034f-4e9e-890b-491957f7f75b
agent_tool Codex CLI
agent_tool_version 0.144.1
agent_runtime Codex CLI 0.144.1
agent_model unknown
runtime_profile /nix/store/1n76sy6i9y3ki3k4w04jksqvygw67sj0-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/jn6r0r7r59x3a525jch4pwzwykszqp60-agent-skills-corpus/share/agent-skills/manifest.json
worktree livestore/schickling/2026-07-18-devtools-auto-merge
machine dev3
tooling_profile dotfiles@4eac376

@schickling-assistant
schickling-assistant marked this pull request as ready for review July 18, 2026 10:33
@github-actions

github-actions Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

PR preview

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1445-0e9eefd, pr-1445 2026-07-18 12:16 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 12:07 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 12:07 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 12:07 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 12:07 UTC
Report history

PR 1445 · 2026-07-18 12:21 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1445-0e9eefd, pr-1445 2026-07-18 12:16 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 12:07 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 12:07 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 12:07 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 12:07 UTC

PR 1445 · 2026-07-18 10:53 UTC

Subject Status Report Details Updated
LiveStore docs preview success Docs preview deployed (livestore-docs-dev) PR aliases: pr-1445-2ce226d, pr-1445 2026-07-18 10:46 UTC
web-linearlite success web-linearlite deployed (preview) Worker: example-web-linearlite-preview.livestore.workers.dev 2026-07-18 10:37 UTC
web-todomvc success web-todomvc deployed (preview) Worker: example-web-todomvc-preview.livestore.workers.dev 2026-07-18 10:37 UTC
web-todomvc-script success web-todomvc-script deployed (preview) Worker: example-web-todomvc-script-preview.livestore.workers.dev 2026-07-18 10:37 UTC
web-todomvc-sync-cf success web-todomvc-sync-cf deployed (preview) Worker: example-web-todomvc-sync-cf-preview.livestore.workers.dev 2026-07-18 10:37 UTC

@schickling-assistant

Copy link
Copy Markdown
Collaborator Author

Superseded by the DevTools source-available migration — tracked in epic #1497.

The external-artifact machinery this PR extends is retired once @livestore/devtools-vite is built from source in livestore-contrib. Holding this rather than landing it — it's listed for closure as part of #1497's cleanup, after cutover is proven.

Posted on behalf of @schickling
field value
agent_name 🎈 cl1-swell
agent_session_id 5a1e2097-a640-400a-a2b8-be55050a58b4
agent_tool Claude Code
agent_tool_version 2.1.202
agent_runtime Claude Code 2.1.202
agent_model claude-opus-4-8
runtime_profile /nix/store/393xxjd29yx4b41rsjaglp3r47q9k7s5-coding-agent-runtime-profile/share/coding-agents/profile.json
skills_manifest /nix/store/xhnp6r3s5n46kpcq182d56ib1dia1179-agent-skills-corpus/share/agent-skills/manifest.json
worktree livestore/schickling/2026-07-19-misc
machine dev3
tooling_profile dotfiles@ab9375c

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Automate verified DevTools manifest PR approval boundary

1 participant