---
milestone: v1.7.1
milestone_name: Seamlessification II
status: shipped
shipped: 2026-05-18
deployed_version: 1.10.13
phase_count: 4
plan_count: 11
audit: v1.7.1-MILESTONE-AUDIT.md
audit_status: passed
audit_scores:
  requirements: 39/39
  phases: 4/4
  integration: 6/6
  flows: 6/6
git_range: v1.7..v1.7.1
commit_count: 94+
deferred_items_at_close: 7
---

# v1.7.1 Seamlessification II (Shipped 2026-05-18)

**Theme:** Polish round on live-agent friction — listing/picker correctness, skill hint surface, fresh-start commune prompt, auto-resume affordance, plugin-update changelog notification. Single end-of-milestone deploy cadence to avoid version-churn during in-flight binary handoffs.

**Phases completed:** 4 phases (31, 32, 33, 34), 11 plans
**Git range:** 94+ commits between 2026-05-16 and 2026-05-18
**Diff stats:** ~567 files changed (large due to retroactive CHANGELOG.md + planning artifacts), +116K / −2.4K lines
**Deployed:** v1.10.13 (cplugs marketplace 91b3e7a — single bump at end-of-milestone)
**Hotfixes folded in:** 260517-6om (silent owl-message transport), 260517-n4b (UAT defect cleanup + DEPLOY.ps1 curation gate), 260517-wpf (CHANGELOG ordering)

## Phases

### Phase 31: Picker Correctness
**Goal:** `$LIVE pick-spec` correctly reports when every known agent in the current repo is already online — emitting a new `kind:"all-live"` JSON variant instead of falsely returning `kind:"prompt-new"` with no candidates — so the calling skill can present a "fork or pick a new name" choice.
**Requirements:** PICK-01, PICK-02, PICK-04, PICK-05, PICK-06 (PICK-03 deferred to v1.8+ per D-10/D-11)
**Plans:** 2/2 complete
- 31-01 — Doc-only defer of former PICK item #3 per D-10/D-11
- 31-02 — Add `kind:"all-live"` pick-spec variant + SKILL.md dispatch row + test rewrite + integration test
**Verification:** 4/4 must-haves; 13/13 lib + 5/5 golden_live tests pass

### Phase 32: List Overhaul + Skill Hint Audit
**Goal:** `$OWL list` and `$LIVE list` default to online-only with a unified `--all`/`--offline`/`--here` flag surface, AND every `/spt:*` skill ships an accurate `argument-hint` frontmatter field. Batched together because new list flags require new argument-hints on list-* skills.
**Requirements:** LIST-01..08, HINT-01..05 (13 total)
**Plans:** 3/3 complete (Wave 1 → Wave 2)
- 32-01 — InfoJson project_history schema + repo-name derivation helpers (LIST-04, LIST-07)
- 32-02 — Extract `src/common/list_filter.rs` + `--all/--offline/--here` flags + discovery hints + golden audit (LIST-01, 02, 03, 05, 06, 08)
- 32-03 — Argument-hint audit across 17 SKILL.md files + `tests/skill_hints.rs` regression guard (HINT-01..05)
**Verification:** 13/13 truths; LIST-05 minor wording deviation noted (informational only)

### Phase 33: Fresh-Start Commune + Auto-Resume
**Goal:** A user invoking `/spt:live` against a known-new identity (or against an existing identity with empty psyche-download) is prompted with a first-commune summary BEFORE init; AND `/spt:live --auto` (plus a curated set of casual-language triggers) resumes the most-recently-active live agent with a confirmation hop and surfaces any clear next body of work.
**Requirements:** FRESH-01, FRESH-02, FRESH-03, FRESH-06 (FRESH-04/05 struck per CONTEXT D-03), AUTO-01..08 (12 total)
**Plans:** 3/3 complete (Wave 1 → Wave 2)
- 33-01 — Strike FRESH-04/05, reword FRESH-06, wire first-commune flow into live SKILL.md
- 33-02 — Auto-resume skill flow (AUTO-01, 02, 05, 06, 07, 08)
- 33-03 — SessionStart hook auto-pick emission + 6-gate allow-list predicate + test corpus (AUTO-03, 04)
**Verification:** 10/10 must-haves; 40 unit + 4 integration tests pass

### Phase 34: Version-Change Changelog
**Goal:** When a user's installed `spt` plugin version changes underneath them, the next Stop hook in an spt-bearing session surfaces an old→new changelog notice sourced from compiled-in `CARGO_PKG_VERSION` against an `$SPT_HOME/last-seen-version.json` sentinel — without firing on first install, without colliding with the SessionStart auto-pick (AUTO-03), and without racing the binary handoff (Phase 18.4/18.5).
**Requirements:** VERS-01..09 (9 total)
**Plans:** 3/3 complete
- 34-01 — Doc Amendment + CHANGELOG Genesis + DEPLOY.ps1 Extension
- 34-02 — Rust Hook + Parser + Sentinel + `version-remind` + 12 integration tests
- 34-03 — Block-body wording + UAT
**Verification:** 9/9 VERS reqs + 6/6 ROADMAP success criteria + 2/2 hotfixes (6om, n4b) verified; 61/61 tests green
**Amendment:** Original `decision:"block"` transport (Plan 02) was reworked to a silent owl-message via Stop-hook spool_message_deferred during hotfix-260517-6om; AUQ reduced from 4 options to 3 (Remind me later removed — infinite-loop pathology).

## Key Milestone Accomplishments

1. **Picker correctness for all-live repos** — Phase 31 introduced the additive `kind:"all-live"` pick-spec envelope (D5 schema freeze preserved). When every known agent in the current repo is online, the calling `/spt:live` skill now offers "fork or pick a new name" instead of falsely returning empty `prompt-new`. Closes the bug previously codified by the renamed `pick_one_online_agent_emits_all_live` test.

2. **List default-online + uniform flag surface** — Phase 32 made `$OWL list` and `$LIVE list` default to online-only and added `--all` / `--offline` / `--here` flags with consistent semantics. Extracted shared `src/common/list_filter.rs` (`live/list.rs` shrank 138 → 73 LOC). Repo-name derivation via `info.json.project_history` + `perch_has_repo_history` helper covers local `.git` basename + remote origin basename. Empty-online lists now emit a discovery hint pointing at `--all`.

3. **Skill argument-hint coverage 17/17** — Phase 32 added `argument-hint:` YAML frontmatter to every `/spt:*` SKILL.md (empty string for no-arg skills). Three previously-missing list skills gained `[--all] [--offline] [--here]`. `tests/skill_hints.rs` regression guard pins the contract (3 test functions, zero `serde_yaml` dep added).

4. **Fresh-start commune flow + auto-resume** — Phase 33 wired the first-commune AskUserQuestion summary into both the `kind:"prompt-new"` and `NO-CONTEXT:` paths so brand-new live agents get a context-priming prompt before `$LIVE start`. `/spt:live --auto` + 8 casual-language triggers (with 3 explicit non-triggers for bare ambiguous prompts) route through pick-spec; SessionStart hook emits `<spt-live-auto-pick>` JSON with a 6-gate allow-list predicate that silently rejects in subagent/wrapper contexts (no stderr leakage into researcher transcripts).

5. **Version-change changelog notification** — Phase 34 (with hotfix bundle 6om + n4b) delivers Stop-hook detection of `CARGO_PKG_VERSION` ↔ `$SPT_HOME/last-seen-version.json` mismatch, emits a silent owl-message carrying parsed CHANGELOG H2 sections (Keep-a-Changelog 1.1.0), and surfaces a 3-option AUQ. `is_informational` extension rides the calm info banner (no "STOP your current task" surfacing). DEPLOY.ps1 curation gate enforces TODO-stub-then-curate-then-deploy cycle for the version's CHANGELOG entry (hardened by quick-260517-wpf to insert-at-top instead of append-at-bottom).

6. **Single-deploy cadence honored** — Per ROADMAP decision, one `DEPLOY.ps1 -Bump patch` at end-of-milestone (v1.10.13) rather than per-phase, avoiding version-churn during in-flight binary handoffs (Phase 18.4/18.5 constraint).

## Hotfix Bundle

Quick tasks folded into milestone scope (each closed individually, listed for the historical record):

| Quick ID | Theme | Commits | Deployed |
|---|---|---|---|
| 260517-6om | Silent owl-message Stop-hook transport (replaces `decision:"block"`); drop "Remind me later" AUQ option (infinite-loop risk); deprecate `version-remind` subcommand | 5ede3d7, acbb696, 79193f1, a75583e, fadc5b8, e724a11 | v1.10.12 |
| 260517-n4b | step_count floor + info-priority + DEPLOY.ps1 curation gate | 2c19d3f, 97e5a62, c99d7c9, ce73046, 919e957 | v1.10.13 |
| 260517-q3h | Phase 34 wrap-up doc bundle (STATE ledger + UAT amendments) | 7a1bfd5, 5ff8bd0, 2375cb9, 3708497 | — (docs only) |
| 260517-wpf | CHANGELOG.md reorder newest-first + DEPLOY.ps1 curation-gate insert-at-top | 88620d6 | — (closes audit warning-1) |

Out-of-scope follow-on (not a v1.7.1 deliverable but landed in the same window):
| 260517-rhw | SPT first-install primer flow (PreToolUse direct-stdout, perch-less; Yes/Skip AUQ + 5-step blurb) | fb998b3, 504c819, 3674300 | — (separate feature) |

## Audit

`.planning/v1.7.1-MILESTONE-AUDIT.md` — PASSED. 39/39 v1 requirements wired + 6/6 cross-phase wiring checks + 6/6 E2E user-flow checks. Three non-blocking tech-debt items recorded (CHANGELOG ordering — now closed by wpf; shared-sentinel awareness; LIST-05 cosmetic wording drift).

## Known deferred items at close: 7

See STATE.md `## Deferred Items` for full disposition. Breakdown:
- 1 debug session (psyche-stale-after-clear, root_cause_found, pre-v1.7 carry-forward)
- 5 todos (capsule-scope items, pre-v1.7 carry-forward — v1.9 scope candidates)
- 1 seed (SEED-003 — tied to Phase 25 perch nesting, v1.8 candidate)
