53 lines
2.0 KiB
Markdown
53 lines
2.0 KiB
Markdown
# Roadmap: Operator Helper Commands
|
|
|
|
## Status
|
|
|
|
Implemented.
|
|
|
|
The operator helper command set is no longer conceptual. Current behavior is documented in:
|
|
|
|
- `docs/cli.md`
|
|
- `docs/operations.md`
|
|
- `docs/config.md`
|
|
- `docs/internal/artifacts.md`
|
|
- `docs/internal/stage-archive.md`
|
|
|
|
## Implemented Commands
|
|
|
|
- `narratio session validate`
|
|
- `narratio status --manifest <path>`
|
|
- `narratio status --session-id <id>`
|
|
- `narratio session init --output <path>`
|
|
- `narratio session init --remote`
|
|
- `narratio artifacts list`
|
|
- `narratio artifacts list --remote`
|
|
- `narratio locks`
|
|
- `narratio locks add <source>`
|
|
- `narratio locks remove <source>`
|
|
|
|
## Implemented Decisions
|
|
|
|
- Helper output is text-only. No JSON schema exists yet.
|
|
- `status` remains a top-level command.
|
|
- `session validate`, `session init`, and `artifacts list` are nested helper commands.
|
|
- `locks` is the single top-level command for listing, adding, and removing archive promotion locks.
|
|
- Remote session initialization requires explicit `--remote`.
|
|
- Local session initialization requires `--output`.
|
|
- Remote artifact availability is opt-in with `artifacts list --remote`.
|
|
- Mutable locks are source-based and stored at `{session_prefix}/locks.yml`.
|
|
- The remote lock store uses strict YAML with top-level `locks`.
|
|
- Static `pipeline.archive.locks` and remote locks are merged; static locks win on duplicate sources.
|
|
- `locks remove` removes only remote locks.
|
|
- Ordinary execution `--force` does not override locks.
|
|
- Remote lock writes use existence checks and `--force` for updates; there is no compare-and-swap protection.
|
|
|
|
## Remaining Future Enhancements
|
|
|
|
These are intentionally not implemented:
|
|
|
|
- `--json` output for helper commands.
|
|
- Optimistic concurrency or ETag compare-and-swap for remote lock mutations.
|
|
- Rich remote artifact availability across historical run-local objects.
|
|
- Session-lock acquisition for remote mutation helpers.
|
|
- Broader campaign helper commands such as `campaign validate` or `campaign publish`.
|