-
Narratio v1.7.0
Stablereleased this
2026-09-05 19:24:35 +00:00 | 103 commits to main since this releaseNarratio v1.7.0
Narratio v1.7.0 completes the maintainability refactor begun after v1.6.0. It
simplifies filesystem and process handling, makes resumable work more precise,
replaces legacy local and remote state with explicit authorities, and turns
cleanup into the final ordinary pipeline stage.Summary
The session manifest is now the sole durable local progress ledger. Analyze
checkpoints successful artifacts individually, allowing an interrupted or
partially failed analysis to resume at the first incomplete artifact without
rerunning successful siblings unless forced.Remote publication now commits immutable run state before advancing one
verified current pointer. Publish locks are independent per-source objects;
locked outputs retain their previously committed declarations rather than
being overwritten or silently omitted. Local cleanup runs after notification
as a separately recorded, safely retryable stage.The release also adopts Go 1.26, simplifies ordinary file operations around
Narratio's trusted group-owned workspace model, improves subprocess lifecycle
handling, decomposes several large orchestration and validation components,
and removes mutable global test seams.Compatibility
This is a minor release with deliberate removal of compatibility paths that
were deprecated and documented as subject to removal:- Campaigns must use one versioned
narratio.party.v1party.yml. Separate
players files, session-level party overrides, and unversioned party documents
are rejected. - Session manifests must declare
schema_version: narratio.session-manifest.v1and satisfy the current strict schema. Older
unversioned state and manifests containing the retired
post_publish_cleanupobligation are rejected rather than migrated. - Remote current state must be selected by
current/commit-pointer.jsonand its referenced immutable run commit. Legacy
current-state layouts are no longer inferred. - The retired aggregate
locks.ymlobject is ignored. Publish locks now live
as independent strict objects under the session lock prefix. - Run manifests are no longer produced or consumed. The session manifest owns
durable stage progress; invocation summaries and run workspaces remain
operational data rather than a second progress authority.
The CLI and current pipeline/configuration formats otherwise remain compatible.
Building and maintaining Narratio now requires Go 1.26. Cross-built Linux,
macOS, and Windows assets remain available foramd64andarm64.Upgrade
Before upgrading a campaign that still uses compatibility data:
- Replace legacy party/player inputs with the documented
narratio.party.v1campaign roster. - If a local manifest contains an outstanding
post_publish_cleanup
obligation, complete it with the pre-upgrade binary. Otherwise verify the
remote commit, move aside or regenerate the incompatible manifest, or
restore a verified committed snapshot. Do not migrate state by manually
editing JSON. - Republish sessions that do not yet have a valid immutable run commit and
current/commit-pointer.json; legacy remote layouts are not current state in
v1.7.0. - Recreate any required publication locks with
narratio session locks add.
After verifying the new locks and publication behavior, the ignored legacy
locks.ymlobject may be removed manually.
Existing compatible session manifests and already committed remote snapshots
need no special action. Consult Operations and
Troubleshooting for recovery procedures.Changes
- Upgraded the maintained development and release baseline to Go 1.26.
- Reworked subprocess execution and Windows process-tree supervision while
preserving contextual wait and cleanup failures. - Replaced custom confined ordinary I/O and directory-promotion machinery with
simpler standard-library operations while retaining bounded reads, atomic
single-file visibility, workspace modes, validated downloads, and
root-confined destructive operations. - Removed legacy party, manifest, artifact-discovery, remote-current, and lock
compatibility paths. - Consolidated durable progress in the session manifest and removed the run
manifest domain model. - Unified runner planning and execution decisions, separated invocation
lifecycle responsibilities, and avoided creating empty run workspaces for
fully reused or cleanup-only invocations. - Added per-artifact analyze execution, checkpointing, reconciliation, and
recovery. - Decomposed configuration validation by domain and made validation diagnostics
deterministic without treating incidental ordering or wording as a contract. - Introduced immutable remote publish commits, one final current pointer,
explicit output planning, safe cross-run carried outputs, and independent
per-artifact remote locks. - Added
cleanupas the final canonical stage afternotify, with validated
publish evidence, safe retry, explicit selection, and no separate cleanup
obligation. - Replaced mutable command test hooks with invocation-scoped dependencies and
improved structural test diagnostics.
Downloads
- Campaigns must use one versioned