Releases: jsuvic/agent-profile
Release list
v0.5.0
- Improve interactive first-contact guidance: the bare dispatcher now offers
one consent-gated next action after each completed routed command, doctor
groups repeated actionable findings into recommendations, the upgrade menu
explains its keep/adopt-all/customize choices, and the dispatcher starts
with a neutral agent-profile wordmark. Interactive fixture differences are
limited to those new follow-up prompts, doctor recommendation lines, upgrade
labels/hints/note, and the neutral dispatcher wordmark; non-interactive
doctor and upgrade output and JSON remain unchanged.
v0.4.4
- Route interactive bare
agent-profileinvocations through a read-only
repository-state menu while preserving byte-identical non-TTY help and all
explicit subcommand contracts.
v0.4.3
-
Add Phase 29 I1 Tabnine workflow skills (implementing
docs/specs/phase-29/001-tabnine-workflow-skills.md; ADR 0013). The shared
.agents/skills/emission condition extends from "Codex enabled" to "Codex or
Tabnine enabled", so Tabnine-only setups now emit the instruction-only
workflow skills (grill-change,request-to-spec-issues,sdd-change,
tdd-change,final-review), the selected review, specialist,
mcp-fit-check, and phase-22 loop skills to the shared convention Tabnine CLI
discovers - one file per skill, guidelines unchanged. Delegation-dependent
skills (subagent-driven-change,implement-next) still require a
delegation-capable client (Claude or Codex); a Tabnine-only setup omits them
and gets an informational compile note. A single caveat note reports that
Agent Skills discovery requires a current Tabnine CLI generation. Enabling
Tabnine alongside Codex changes no existing.agents/skills/byte
(golden-proven); nothing is written under.tabnine/agent/and Tabnine
settings.jsonis never touched. ADR 0007 gains a dated note that its
"skills reach only Claude/Codex" premise is outdated; its logging-topic
decision is unchanged and is not superseded. -
Correct Phase 27 command-flow guidance: init now names the ordered
compile --writethenupgradepath; compile dry-run explicitly says that
nothing was written; compile and upgrade follow-up guidance names
compile --write; upgrade can report and apply profile-only capability
seeding without a lockfile while deferring the catalog stamp; empty import
scans skip the strategy question with the preserve default; capability
choices identify Claude/Codex-only output and Tabnine-only plans call out
selected packs with no artifacts; write-mode import results use the heading
Files report (state after write).
v0.4.2
-
Add Phase 27 I4 interactive drift reconciliation to
compile(implementing
docs/specs/phase-27/003-drift-reconciliation.md). At the point compile would
refuse a hash-mismatched lockfile-owned file, an interactive TTY now shows the
per-file drift diff (deterministically regenerated canonical bytes vs on-disk)
and a classification menu. Root instruction files (AGENTS.md,CLAUDE.md)
get a four-way menu — shared intent (relocate the user's lines into the
AGENTS.mdmanual region, restoring the generated region to canonical; the
Tabnine gap is stated inline), client-specific (relocate into the drifted
file's own manual region), accidental (restore canonical + refresh hash), and
cancel (default). All other drifted generated outputs get keep (reclassify
manual-owned) / restore-canonical / cancel. Interleaved edits that cannot be
cleanly separated from canonical bytes refuse relocation and reduce to
keep/restore/cancel. Every outcome maps only to existingmixed/
manual-owned/ rehash transitions, routes through the existing region-aware
planner and a single atomic write, and relocated user lines are byte-preserved.
Cancel at any prompt writes nothing and prints the standard refusal.
Non-interactive compile,--json, exit codes, and--forceare byte-identical
and never evaluate clack (lazy-imported behind the interactive gate). -
Add Phase 27 I3
agent-profile upgrade: catalog-version-aware reporting,
interactive keep/adopt/customize choices with preview-only defaults, and the
explicit--write --adopt-recommendedscripted mutation path. Profile edits
are insertion-only and byte-preserving through YAML Document offsets;
flow-style, anchored, or malformed targets fail closed with exact manual
lines and no partial write. Successful writes stamp the integer catalog
revision and point to (but never chain)agent-profile compile. Existing
interactive init now points to upgrade; non-interactive init remains
byte-identical. Clack remains lazy behind the interactive gate. -
Add Phase 26 WS2-I1 static presentation for
compile,doctor,ui, and
the init write phase (implementingdocs/specs/phase-26/001-clack-cli-presentation.md,
issue003-static-presentation.md). On the interactive TTY only:compile
gains the wordmark logo, a compile spinner, a colored+/~/=write
plan, a--writeprogress bar, and alog.successfile-count summary;
doctorgains the logo, a timer spinner, color-tinted[error]/[warning]/
[info]severities, a greenNo issues found., and a one-line count
summary;uigains the logo, a task log over the already-spawned server's
stdout (cleared on port bind, retained on non-zero exit), and the
url/root/posture block as anote; the init write phase renders as named
steps (create profile, generate client files, update .gitignore). Color is
applied vianode:utilstyleTextthrough the purebranding.tshelpers
(no color dependency); every clack call is dynamically imported behind the
interactive-TTY gate, so non-interactive,--json,--quiet, piped, and
generated-file surfaces stay byte-identical and never evaluate clack. The
named write steps use a spinner-based runner rather than clacktasks(),
which leaks its frame timer and blocks stdin when a step throws. -
Fix 0.4.1 import-report ownership conformance: root instruction files now
honor lockfile v1/v2 ownership before marker inspection, report generated
drift consistently with compile, refuse damaged mixed ownership, and never
offer regions adoption for lockfile-owned files (Phase 27/001).