Skip to content

Releases: troupe-run/troupe

troupe-vcs-git: v0.1.0

Pre-release

Choose a tag to compare

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

  • vcs: don't refuse a theatre whose commit holds a file git would normalise (#51) (526682b)
  • vcs: mark a path that holds only its base stage resolved (0b69d7c)

troupe-vcs-files: v0.1.0

Pre-release

Choose a tag to compare

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

  • vcs: don't refuse a theatre whose commit holds a file git would normalise (#51) (526682b)

troupe: v0.1.0

troupe: v0.1.0 Pre-release
Pre-release

Choose a tag to compare

@troupe-run-release troupe-run-release released this 01 Nov 05:43

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...
Read more

troupe-store-text: v0.1.0

Pre-release

Choose a tag to compare

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

  • event-store: a stopped subscription delivers nothing more (2b210e8)
  • event-store: stopping a subscription waits for its thread, bounded (1ecd201)
  • events: don't take a late or pre-watch event for a missed write (ef2142d)
  • protocol: catalogue events.subscription-polling from #74 (6da20b8)

troupe-stage-local: v0.1.0

Pre-release

Choose a tag to compare

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

Pre-release

Choose a tag to compare

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

Pre-release

Choose a tag to compare

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

troupe-run: v0.1.0 Pre-release
Pre-release

Choose a tag to compare

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

  • bundle: ship 9 component releases (96e980d)
  • packages: add troupe-run, the package that installs troupe with what it bundles (67d13cd)

troupe-identity-local: v0.1.0

Pre-release

Choose a tag to compare

0.1.0 (2026-11-01)

Features

  • identity: resolve who is acting through an ordered chain of sources (c6ab0fb)
  • workspace: add the event-store adapter packages and their import contracts (6746785)

troupe-artifacts-local: v0.1.0

Pre-release

Choose a tag to compare

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)