Skip to content

fix(admin): refuse a published profile identity early; code profile 0.6.3; version 0.6.4 - #257

Merged
ebursztein merged 3 commits into
mainfrom
fix/code-profile-revision
Sep 25, 2026
Merged

ebursztein merged 3 commits into
mainfrom
fix/code-profile-revision

Conversation

@ebursztein

Copy link
Copy Markdown
Collaborator

Unblocks the stable code profile release.

What happened

just release-profile stable all released co-work 0.6.2 successfully (run). code then failed at its last step (run):

verified 62 immutable profile artifacts
completed immutable release title does not match qualified source:
  actual:   Capsem stable/code 0.6.2 (2368c2a8…)
  expected: Capsem stable/code 0.6.2 (0da05c6b…)

profile-stable-code-0.6.2 had already been published from 2368c2a8 on 2026-09-07 and never activated (the channel still selects code 0.6.1). Releases are immutable, so that revision is spent.

Changes

  1. chore(profiles): the code profile advances to 0.6.3 (verified unused).
  2. fix(admin): capsem-admin release checks the publication identity before dispatching. The existing ensure_revision_advances was never called outside its tests, so nothing caught this before the 40-minute lane.
    • No release, or a release from the same commit (a resume): proceeds.
    • A release from another commit: refused immediately, naming the revision bump.
    • A lookup that can't answer (network, auth): refuses rather than assuming the identity is free.
    • The gh runner moves into release_github.rs; main.rs shrinks 2182 → 2144 lines, with its ratchet lowered to match.

Verification

  • capsem-admin: clippy clean, 152 tests (4 new: free, same-commit resume, other-commit refused, unreachable lookup refused).
  • Build-system suite 6323 passed (release-site tests excluded; they need the Astro build). Citadel 1252; just fast-test ok.

🤖 Generated with Claude Code

`capsem-admin release` dispatched the hosted profile lane without asking
whether its publication identity was free. Releases are immutable, so a
taken identity was found only at publication, after the lane had built
and verified every asset: stable/code 0.6.2 had been published from
2368c2a on 2026-09-07 and never activated, and releasing the same
revision from main failed forty minutes in on a title mismatch.

Before dispatching, the release now looks up the identity's release. No
release, or one from the same source commit (a resume), proceeds; one
from another commit is refused with the fix -- advance the profile's
revision. A lookup that cannot answer (no network, no auth) refuses too
rather than being read as free.

The gh runner moves with it into release_github.rs, which takes
capsem-admin/src/main.rs from 2182 to 2144 lines.
stable/code 0.6.2 is already published, immutably, from 2368c2a (2026-09-07) and never activated; the snapshot-free rootfs needs its own revision.
v0.6.3 is published. The stable profiles built from main (co-work 0.6.2, code 0.6.3) are staged, not live: the published 0.6.3 package lacks the functional binary cohort their full gates need, so the release lane defers activation to release-binaries. This bumps the workspace to 0.6.4 via capsem-gate stamp-version so that binary release can run.
@codecov-commenter

codecov-commenter commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 14.92537% with 57 lines in your changes missing coverage. Please review.
✅ Project coverage is 65.2%. Comparing base (0da05c6) to head (8d46262).
⚠️ Report is 4 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
crates/capsem-admin/src/release_github.rs 15.3% 55 Missing ⚠️
crates/capsem-admin/src/main.rs 0.0% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##             main     #257     +/-   ##
=========================================
- Coverage    65.2%    65.2%   -0.1%     
=========================================
  Files        1451     1452      +1     
  Lines      127792   127831     +39     
  Branches    91743    91782     +39     
=========================================
- Hits        83447    83441      -6     
- Misses      39363    39405     +42     
- Partials     4982     4985      +3     
Flag Coverage Δ
integration 17.2% <ø> (-0.1%) ⬇️
linux-unit 70.5% <14.9%> (-0.1%) ⬇️
mcp-server 93.8% <ø> (ø)
python-sdk 98.7% <ø> (ø)
typescript-sdk 97.8% <ø> (ø)
unit 63.4% <14.9%> (-0.1%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
TypeScript SDK 97.8% <ø> (ø)
Python SDK 98.7% <ø> (ø)
Network 84.4% <ø> (-0.1%) ⬇️
Security 81.6% <ø> (ø)
Tooling 88.6% <ø> (ø)
Monitoring 86.9% <ø> (ø)
Virtualization 64.4% <ø> (-0.1%) ⬇️
Confined Port Router 76.9% <ø> (-0.2%) ⬇️
Private Network 77.6% <ø> (-0.4%) ⬇️
Assets 80.8% <ø> (ø)
Gateway API 96.7% <ø> (ø)
Rust SDK 96.3% <ø> (ø)
Configuration 86.8% <ø> (ø)
Credentials 80.7% <ø> (ø)
Host Foundation 76.1% <ø> (-0.1%) ⬇️
Core Platform 55.8% <ø> (ø)
Runtime 60.6% <ø> (-0.1%) ⬇️
Daemon 41.6% <ø> (ø)
Service 71.5% <ø> (ø)
Process 48.5% <ø> (ø)
Admin 63.7% <14.9%> (-0.3%) ⬇️
CLI 47.9% <ø> (ø)
MCP Server 93.8% <ø> (ø)
MCP Aggregator 61.8% <ø> (ø)
MCP Builtin 44.6% <ø> (ø)
Gateway 78.9% <ø> (ø)
TUI 68.5% <ø> (ø)
System Tray 53.2% <ø> (ø)
Guard 92.2% <ø> (ø)
UI 86.6% <ø> (ø)
Release Site 15.0% <ø> (ø)
Builder 43.5% <ø> (ø)
Mock Server 59.0% <ø> (ø)
Bench 47.8% <ø> (-0.2%) ⬇️
Files with missing lines Coverage Δ
crates/capsem-admin/src/main.rs 37.2% <0.0%> (+0.9%) ⬆️
crates/capsem-admin/src/release_github.rs 15.3% <15.3%> (ø)

... and 8 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ebursztein ebursztein changed the title fix(admin): refuse an already-published profile identity before building; code profile 0.6.3 fix(admin): refuse a published profile identity early; code profile 0.6.3; version 0.6.4 Sep 25, 2026
@ebursztein
ebursztein merged commit 48400d5 into main Sep 25, 2026
14 of 15 checks passed
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.

2 participants