Skip to content

feat: add copy-archive global action - #39

Open
backnotprop wants to merge 2 commits into
mainfrom
feat/copy-archive-action
Open

feat: add copy-archive global action#39
backnotprop wants to merge 2 commits into
mainfrom
feat/copy-archive-action

Conversation

@backnotprop

Copy link
Copy Markdown
Contributor

Adds a global copy-archive action next to copy-context, so the "hand annotations to the agent, then clear the list" step can be bound to one Herdr key instead of prefix+m then C.

What changed

  • Bun runtime: src/export-archive.ts mirrors export.ts and calls copyAndArchiveAnnotations with the same dependencies the manager passes. Outcomes map to notifications: archived (exit 0), nothing to copy (exit 0, same wording as copy-context), clipboard or store failure (exit 1). Archived sets remain restorable from the manager.
  • Rust Lite runtime: copy-archive subcommand in rust/src/cli.rs with the same wiring and messages; lite-rs/herdr-plugin.toml gains the action.
  • Manifests: the action is added after copy-context in herdr-plugin.toml, lite/herdr-plugin.toml, and lite-rs/herdr-plugin.toml. No existing id, command, key, or platform gate changed.
  • Parity: four process.copy-archive.* cases in scripts/parity-lite.py (empty, populated with store bytes compared, clipboard failure, missing state), plus a verify_manifests() step that compares action and pane declarations across the three manifests and asserts every entrypoint is driven. docs/rust-lite-parity-proof.md and docs/rust-lite-parity.md updated. rust-lite-ci now also runs on src/**, lite/**, and herdr-plugin.toml changes since the harness reads them.
  • Docs: README key table and suggested [[keys.command]] binding (prefix+ctrl+a).
  • Smoke suites expect the new action.

Validation

  • bun test 73 pass, bunx tsc --noEmit clean
  • cargo fmt --check, cargo clippy --all-targets -D warnings, cargo test 56 lib + 4 integration pass
  • scripts/parity-lite.sh: 459 observables, 92 screens, zero divergences / 1 deliberate
  • Live, in a disposable Herdr session on 0.8.2, for both the Bun manifest and the staged Rust Lite manifest: action listed; empty store reports "No annotations" and exits 0; a seeded store of two annotations produces Markdown on the clipboard, an empty active list, and one new archive set containing both ids. scripts/smoke-rust-lite.sh: 0 failures.

refs #36

Michael Ramos and others added 2 commits September 6, 2026 20:18
Expose copy-and-archive as a bindable global plugin action in both Lite
runtimes, so clearing the annotation list after handing it to an agent no
longer requires opening the manager pane.

refs #36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant