Repository navigation
Releases: troupe-run/troupe
Releases · troupe-run/troupe
Release list
troupe-vcs-git: v0.1.0
0.1.0 (2026-11-01)
⚠ BREAKING CHANGES
- protocol: error and notice detail keys that were snake_case are now camelCase (exitCode, limitBytes, waitedSeconds and the rest), and events.unknown-format's format detail is JSON text. Nothing outside this repository reads them.
Features
- config: project config to files under .troupe/, replacing only the files troupe wrote (#60) (e2ac5c1)
- protocol: catalogue every error and notice code with closed details (36f8241)
- vcs: cache the branch and HEAD behind a token that sees every move (#75) (cceeee4)
- vcs: make, fill, diff, apply and remove a run's worktree, and snapshot shared git state (#51) (6ba3ac5)
- vcs: mark a merged path resolved through the VCS port (eabe7a1)
- vcs: read branch, HEAD and what is committed through a VCS port (4729252)
- vcs: read the branch and HEAD again just after a change (#75) (54d9a94)
- vcs: report the sides a merge combined into a path (#141) (dbc699f)
- workspace: add the event-store adapter packages and their import contracts (6746785)
Bug Fixes
troupe-vcs-files: v0.1.0
0.1.0 (2026-11-01)
Features
- vcs: make, fill, diff, apply and remove a run's worktree, and snapshot shared git state (#51) (6ba3ac5)
- vcs: mark a merged path resolved through the VCS port (eabe7a1)
- vcs: read branch, HEAD and what is committed through a VCS port (4729252)
- vcs: report the sides a merge combined into a path (#141) (dbc699f)
- workspace: add the event-store adapter packages and their import contracts (6746785)
Bug Fixes
troupe: v0.1.0
0.1.0 (2026-11-01)
⚠ BREAKING CHANGES
- events: segments written before this change have no "protocol" in their header and are refused as malformed records.
- perform: troupe perform's --runner, --runner-options, --expect and --no-effect-check are removed, with no overrides, and --instructions is now --direction. perform --rehearse shows what would run and exits 3. Run.Started's payload drops instructions and options.
- runs: segments, run events and client messages no longer carry nulls, and readers refuse them; there are no theatres to migrate.
- lineage: lineage written before this omits nothing and won't validate; there are no theatres to migrate.
- cli: usage.invalid and usage.unknown-flag details now carry the command (null before one is chosen). Nothing outside this repo reads them.
- runners: the runner contract is version 0, the draft
- protocol: error and notice detail keys that were snake_case are now camelCase (exitCode, limitBytes, waitedSeconds and the rest), and events.unknown-format's format detail is JSON text. Nothing outside this repository reads them.
- runner-protocol: a run event carrying native is a protocol violation. Only this repository's scripted runner and fixtures used it.
Features
- cli: --rehearse on config set, config unset and flush, exiting 3 when it would change something (#60) (c726dce)
- cli: a structured code for each usage shape, naming the command (c0161a5), closes #53
- cli: add --version, flags anywhere, the -- rule and structured errors (74cbf20)
- cli: add troupe perform, status and logs (b691f98)
- client: define perform, status and logs as client protocol messages, and one dispatcher (3063cb5)
- cli: troupe config set, unset and get, and troupe flush (#60) (5741671)
- config: an actor's workspace, worktree by default or theatre to run in place (#51) (fdf718c)
- config: build a command's change from its values, and check config before recording it (#60) (b53ce3a)
- config: mark a rewritten conflicted config file resolved (2684390)
- config: project config to files under .troupe/, replacing only the files troupe wrote (#60) (e2ac5c1)
- config: rewrite a config file git merged from troupe's versions (#141) (a16b65e)
- config: the actor and Config.Changed schemas, with pydantic models generated from them (#60) (a33468d)
- config: work out config across branches by each line's net change, and settle with the next write (#60) (c207cb2)
- core: add a conformance suite any runner can be checked against (2022a60)
- core: add a content-addressed artifact store (3ff0ff4)
- core: add runner limits, error codes and protocol types (a63228d)
- core: derive run outcomes, check effects, and read JSON strictly (610b5b5)
- core: find the theatre from the working directory, and name runners from an interim table (5974bc8)
- core: read policy through one seam, with an interim environment source (1eeed3f)
- core: run actors through a supervised runner (0cfea69)
- docs: generate the CLI, exit-code, event and config reference from their sources (5870168), closes #123
- event-store: give each event troupe records a payload schema by topic (12b1275)
- events: detect forked streams and settle them with an event that names every head (b33eb25)
- events: let an aggregate read a forked stream whole and settle it with its next change (#60) (6a5696f)
- events: name the protocol that wrote a segment in its header, and report it in --version (#140) (ddf0c0b)
- events: record every event with lineage, correlation and cause (3bcfe5c)
- events: record the stage and whether effects were enforced in lineage (0bbcdde)
- events: subscriptions deliver other writers' events as they're recorded (f8f9416)
- identity: resolve who is acting through an ordered chain of sources (c6ab0fb)
- lineage: leave absent lineage fields out instead of null (0f3e59c), closes #76
- perform: take the actor's runner, options, effect check and character from config (#60) (514c788)
- platform: add atomic replace, lock-file locks and friendly paths (8d48325)
- platform: build child environments from declared policies (ceb444f)
- platform: catch Ctrl-C through one hook on every OS (8edaa79)
- platform: clone a file copy-on-write, falling back to a plain copy (#51) (4dc3edf)
- platform: decide whether a process has ended from one table per platform (6a91e57)
- platform: run a short command to completion within a bound (a9c00da)
- platform: say whether troupe's kill is what ended a child (141da77), closes #86
- platform: start and kill child processes on all three platforms (18b988b)
- platform: watch a directory for changes on Linux, macOS and Windows (1d857fe)
- protocol: catalogue every error and notice code with closed details (36f8241)
- protocol: define lineage and event records as JSON Schema (04efe9c)
- protocol: define the runner contract as JSON Schema (f3b8043)
- protocol: mark the JSON-RPC error id as the one null (5244b9a), closes #76
- protocol: read the protocol version troupe carries from its one record ([#140](#140...
troupe-store-text: v0.1.0
0.1.0 (2026-11-01)
⚠ BREAKING CHANGES
- events: segments written before this change have no "protocol" in their header and are refused as malformed records.
- runs: segments, run events and client messages no longer carry nulls, and readers refuse them; there are no theatres to migrate.
- protocol: error and notice detail keys that were snake_case are now camelCase (exitCode, limitBytes, waitedSeconds and the rest), and events.unknown-format's format detail is JSON text. Nothing outside this repository reads them.
Features
- events: detect forked streams and settle them with an event that names every head (b33eb25)
- events: let an aggregate read a forked stream whole and settle it with its next change (#60) (6a5696f)
- events: name the protocol that wrote a segment in its header, and report it in --version (#140) (ddf0c0b)
- events: subscriptions deliver other writers' events as they're recorded (f8f9416)
- protocol: catalogue every error and notice code with closed details (36f8241)
- runs: record and report runs without nulls (9cc2f37), closes #76
- schemas: troupe carries the protocol's schemas, and reads a runner's from the installed runner (#60) (5ea49b2)
- store: encode and read segment lines with content-hash ids (955f753)
- store: record events in per-session segments with a local order (1c82430)
- theatre: keep troupe's patterns in .gitignore and .gitattributes without touching a person's lines (#60) (ca2b154)
- vcs: read the branch and HEAD again just after a change (#75) (54d9a94)
- workspace: add the event-store adapter packages and their import contracts (6746785)
Bug Fixes
troupe-stage-local: v0.1.0
0.1.0 (2026-11-01)
Features
- stages: add the stage port and a local stage that refuses unless policy allows it (9908c0c)
troupe-runner-scripted: v0.1.0
0.1.0 (2026-11-01)
⚠ BREAKING CHANGES
- runners: the runner contract is version 0, the draft
- runner-protocol: a run event carrying native is a protocol violation. Only this repository's scripted runner and fixtures used it.
Features
- plugins: add the scripted runner (297fd72)
- protocol: mark the JSON-RPC error id as the one null (5244b9a), closes #76
- runner-protocol: close run events, results and runner errors (613ca5b)
- runner-protocol: runner options are an extension point the runner fills (84b46c3)
- runner: run/start carries the run's direction and the actor's character (#60) (7eece31)
- runners: the runner contract is version 0, the draft (69d6c27)
- schemas: troupe carries the protocol's schemas, and reads a runner's from the installed runner (#60) (5ea49b2)
- scripts: declare which paths need which part of the check (e9f7db5)
Bug Fixes
- runner-scripted: play a script's instant steps before answering troupe (0e6ac17)
troupe-runner-claude-code: v0.1.0
0.1.0 (2026-11-01)
Features
- runner-claude-code: build Claude Code's command line from fixed flags and private files (#55) (3d51844)
- runner-claude-code: map Claude Code's stream-json onto run events (#55) (08ec6d6)
- runner-claude-code: publish and check the runner's options (#55) (fbefd70)
- runner-claude-code: run Claude Code through the runner contract (#55) (64acc78)
- runner-claude-code: scaffold the plugin and its OS seam (#55) (d5df603)
- runs: perform runs the Claude Code runner, with only the variables it needs (#55) (5df903a)
Bug Fixes
- runner-claude-code: give the fixtures' results the cache counters the contract maps (#55) (a5f365d)
- runner-claude-code: start Claude Code suspended on Windows, so its children are in its job (#55) (9fac2f6)
- runner-claude-code: wait for Claude Code's job to empty after terminating it (#55) (b417db2)
- runner-claude-code: wait on each of the job's processes after terminating it (#55) (e16d5c8)
troupe-run: v0.1.0
0.1.0 (2026-11-01)
⚠ BREAKING CHANGES
- bundle: troupe 0.1.0 and troupe-artifacts-local 0.1.0 and troupe-runner-scripted 0.1.0 and troupe-store-text 0.1.0 and troupe-vcs-git 0.1.0 have breaking changes: see packages/troupe/CHANGELOG.md and packages/troupe-artifacts-local/CHANGELOG.md and plugins/runner-scripted/CHANGELOG.md and packages/troupe-store-text/CHANGELOG.md and packages/troupe-vcs-git/CHANGELOG.md.
Features
troupe-identity-local: v0.1.0
troupe-artifacts-local: v0.1.0
0.1.0 (2026-11-01)
⚠ BREAKING CHANGES
- protocol: error and notice detail keys that were snake_case are now camelCase (exitCode, limitBytes, waitedSeconds and the rest), and events.unknown-format's format detail is JSON text. Nothing outside this repository reads them.
Features
- protocol: catalogue every error and notice code with closed details (36f8241)