Skip to content

feat(selfdev): expose upgrade-safe build identity - #1262

Open
yansigit wants to merge 2 commits into
1jehuang:masterfrom
yansigit:feat/selfdev-upgrade-durability
Open

yansigit wants to merge 2 commits into
1jehuang:masterfrom
yansigit:feat/selfdev-upgrade-durability

Conversation

@yansigit

Copy link
Copy Markdown

Summary

Expose durable build identity and upgrade-channel information so self-dev client and shared-server binaries can be diagnosed and safely rolled back after upgrades.

Changes

  • Report source revision, build channel, and protocol identity.
  • Document immutable binary channels and promotion/rollback behavior.
  • Preserve user state and provider compatibility across application updates.

The external provider protocol and extension registry are separate concerns and are not part of this PR's intended review scope.

Validation

  • Rebasing onto current upstream/master completed successfully.
  • Focused build-support and protocol tests passed.
  • The full jcode test suite has one unrelated auth lifecycle failure in the current baseline.

Closes #1257
Refs #917
Refs #799

@greptile-apps

greptile-apps Bot commented Sep 15, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The outstanding recovery concern is non-blocking; no blocking issues were identified.

Findings

  1. P2 Rollback guarantee has gap
Fix with agent prompt
### Issue 1
docs/SELFDEV_UPGRADE.md:30-33
The guide promises that a failed reload records pending activation and restores both channels, but publication moves `current` before `PendingActivation` is durably saved. If the process stops in that interval, the new `current` remains active without the previous channel pair required for automatic rollback. This is a non-blocking documentation and recovery concern; either make publication and activation recording recoverable as one operation or document this interruption case.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

Exposes build identity through the version command and documents the self-development upgrade workflow.

  • Adds runtime-derived selfdev, release, and development build channels.
  • Reports the external-provider protocol version in plain-text and JSON version output.
  • Documents immutable binary channels, state preservation, promotion, and rollback expectations.
  • Updates CLI test fixtures for the extended version and model-route structures.

Reviews (2) · Last reviewed commit: "style(selfdev): normalize upgrade guide"

Comment thread docs/SELFDEV_UPGRADE.md
Comment on lines +30 to +33
Never overwrite an immutable version in place. A failed reload records a
pending activation and restores the previous `current` and `shared-server`
versions. Keep the previous version until the replacement has started, passed
its compatibility checks, and resumed the session.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Rollback guarantee has gap

The guide promises that a failed reload records pending activation and restores both channels, but publication moves current before PendingActivation is durably saved. If the process stops in that interval, the new current remains active without the previous channel pair required for automatic rollback. This is a non-blocking documentation and recovery concern; either make publication and activation recording recoverable as one operation or document this interruption case.

Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/SELFDEV_UPGRADE.md
Line: 30-33

Comment:
**Rollback guarantee has gap**

The guide promises that a failed reload records pending activation and restores both channels, but publication moves `current` before `PendingActivation` is durably saved. If the process stops in that interval, the new `current` remains active without the previous channel pair required for automatic rollback. This is a non-blocking documentation and recovery concern; either make publication and activation recording recoverable as one operation or document this interruption case.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

@yansigit
yansigit force-pushed the feat/selfdev-upgrade-durability branch from 41f51e0 to b7bace1 Compare September 16, 2026 01:47
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.

Self-dev upgrades should expose durable build identity across client and shared-server channels

1 participant