Repository navigation
feat(1.6.0): the same lifecycle words as ASC — status, refresh, uninstall - #37
Merged
Merged
Conversation
`jam status`, `jam refresh` and `jam uninstall` join `setup`, `update` and `runtime`, so a person does not have to remember which product uses which verb. status is doctor's user-facing role under the shared name: the same health gate and the same per-axis verdicts answer, so the two can never disagree. `jam doctor` keeps working and names its replacement. refresh keeps the version and re-registers what this build owns. What goes stale in JAM is a registration line; update is for a newer release, refresh is for a line that drifted from the build already here. Its scope stops at the registration — the project binding, config.yaml, the credentials and every .jira-agent/project.yaml are outside it. uninstall removes the registrations JAM wrote and the global launcher, and keeps ~/.jam in full. There is no purge: nothing yet needs a command that destroys a person's bindings, and an irreversible one nobody asked for is worse than a missing one. JAM still has no execution mode. It is the Jira access layer — no sessions, no approval path, no guard. A Jira write travels ASC's decision path and lands through jira_write_plan / jira_write_apply. Shared vocabulary, separate release trains. Co-Authored-By: Claude Opus 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
JAM 1.6.0 answers to the same lifecycle words as ASC, so a person does not have to remember
which product uses which verb.
What changed
jam status. The first place to ask what is going on. It isdoctor's user-facing roleunder the shared name, and it does not reimplement the judgement: the same health gate and
the same per-axis verdicts answer — credentials, project binding, runtime, registration,
live toolset, Jira authentication, Jira project access.
jam doctorkeeps working and namesits replacement.
jam refresh. Keeps the version and re-registers what this build owns. What goes stalein JAM is a registration line;
updateis for when a newer release exists,refreshis forwhen the line drifted from the build that is already here. Its scope stops there — the
project binding,
~/.jam/config.yaml, the credentials and every.jira-agent/project.yamlare outside it.
jam refresh checkandjam refresh planchange nothing.jam uninstall. Removes the MCP registrations JAM wrote and the global launcher when oneis installed. It keeps
~/.jamin full — the project bindings, the runtime choice — and thecredentials in the OS secret store. There is no purge: nothing yet needs a command that
destroys those, and an irreversible one nobody asked for is worse than a missing one.
entry points — with
jam servenamed for what it is: the host's launch command, notsomething a person types.
registration JAM could not read back is never reported as done.
What did not change
JAM has no Execution Mode. It is the Jira access layer: no session model, no approval path,
no guard. MANUAL/AUTO belongs to ASC, and a Jira write still travels ASC's decision path and
lands through
jira_write_plan/jira_write_apply.The two products share a vocabulary, not a release train. ASC 0.8.0 and JAM 1.6.0 are
independent; neither updates the other, and neither pins the other's version.
The Jira read/write safety contract is untouched. Writes are still plan-then-apply against
the bound project, still confirmed by reading the issue back, and a write JAM could not verify
is still never reported as done. Reads still carry
meta.complete,meta.evidenceScopeandmeta.limitationsas they did.Verification
New coverage for this change is in
packages/server/tests/unit/lifecycle.test.ts: refreshleaves a bare entry alone, skips a host with no JAM entry, removes before re-registering, and
fails rather than claiming success when the read-back still shows the old pin; uninstall
touches no path under
~/.jamand runs no removal of the person's files.Published dogfood has not run — that comes after publishing, in a fresh session.
🤖 Generated with Claude Code