repo-mailbox/CHANGELOG.md
Kjell Tore Guttormsen 0e6014fe98 feat(plugin): package as a Claude Code marketplace plugin
- .claude-plugin/plugin.json v0.1.0 (auto_discover, MIT)
- SessionStart hook: thin zero-dep .mjs wrapper (marketplace convention)
  around scripts/coord-inbox.sh, emitting the additionalContext envelope;
  always exits 0. Smoke-tested: empty mailbox -> bare continue, pending
  message -> injected with UNTRUSTED framing.
- coord-send skill bundled; examples and description use generic repo
  names only (coordination metadata never reaches a public surface).
- README (English; documents the deliver-until-done lifecycle correctly,
  review §7), CHANGELOG, LICENSE (MIT), CLAUDE.md, package.json +
  node --test wrapper around the bash selftest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HBbjgS5A55RVavoyjJC4FX
2026-07-24 06:46:09 +02:00

44 lines
2 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2026-07-24
First public release: extraction of a battle-tested personal mechanism into a
distributable plugin.
### Added
- Bash engine: `coord-send.sh` (directed / broadcast / reply delivery),
`coord-inbox.sh` (pending inbox + unseen broadcasts, formatted for context
injection), `coord-done.sh` (archive without reply), all bash-3.2-safe,
ASCII-only, zero dependencies.
- `coord-selftest.sh`: 48 checks against a throwaway mailbox, including
regression cover for filename sanitization, no-hang argument parsing,
prompt-injection resistance, frontmatter hygiene, and broadcast ordering.
- SessionStart hook (`hooks/scripts/session-start.mjs`): thin zero-dependency
Node wrapper that injects the repo's pending mailbox as
`additionalContext`. Always exits 0 — a broken mailbox never blocks a session.
- `coord-send` skill: natural-language front door (English + Norwegian
triggers) mapping intent to engine invocations, including bounded
multi-target loops, deferred sends, and replies.
### Fixed
- Frontmatter injection: CR/LF and control characters in `--subject`/`--from`
are collapsed before writing, so fields can no longer inject frontmatter
lines or a premature `---` terminator.
- Broadcast loss: a per-repo seen set (`_broadcast/seen/<repo>`, one delivered
filename per line) replaces the single high-water mark, which silently
dropped a same-second broadcast whose filename sorted below one already
seen. Upgrade note: a legacy watermark file is read as a one-entry seen
set, so old broadcasts may be re-delivered once.
### Changed
- Read-side protocol strings are English (`--- message:`, `-> reply:`,
UNTRUSTED DATA framing); the forgery-resistance selftest checks pin the
English tokens.