Repository navigation
Releases
Releases · agentplot/timber
v0.5.3
v0.5.2
v0.5.2 (2026-11-05)
Refactors
- Tailrace is renamed timber, and Flywheel Boomdrive (ADR 0025) (6c97610)
Documentation
v0.5.1
v0.5.0
v0.5.0 (2026-11-03)
Features
- seams: A projection answers the versions a checkout's lockfile pins (9af13c6)
- seams: The publisher's layout policy is a kind of claim (2f7cc2e)
- seams: A refusal names the claim a version is found wanting (d399889)
- fakes: The fake projection answers the pins a test sets (735e793)
- core: The history names each worktree's own git directory (3ba9ba1)
- core: A pin is found by its ecosystem, name and version alone (9d3dbeb)
- core: A layout's policy is the consumer's or its publisher's (8306e99)
- core: A version is held only when its claims satisfy the policy (f534d4b)
- policy: A file with no layout line answers the given policy for a layout (89e635e)
- bindings: The host's bindings file names the signers it trusts (db2dbd4)
- core: A publisher's layout policy counts only through a signer the host trusts (e2721c4)
- core: A layout renders the versions its policy admits, every read before any write (4c07f56)
- core: A checkout's sync fills its cache and then each layout its lockfiles pin (2a9103d)
- cli: Tailrace sync renders each layout the checkout's lockfiles pin (a77cc4c)
- core: A publish attaches the publisher's layout policy to the index (3bd6af7)
- seams: The policy for a layout says whether it is the given (59a6eca)
- policy: The policy file marks the given policy for a layout as given (c1dc3d3)
- core: A layout's policy is stacked, the consumer's line, the publisher's, the given (9680d1d)
- core: A publish attaches only the layout line its file writes (f95aa35)
- plugins: The tailrace plugin's manifest and its Bash hook (48cc34d)
- plugins: Refuse an ecosystem's own publish command (d2b31aa)
- core: A version keeps the commits it is derived from (c47e0cb)
- core: A version's notes rendered by git-cliff in one fixed form (7ae9176)
- core: No output is packed in the notes' ecosystem (520d209)
- core: A first publish puts, claims and indexes the version's notes (bbeb567)
- core: A repeat publish compares the notes and never writes them again (f2fd0ec)
- core: A publish answers the version's notes, and the command prints them beneath it (2a7d817)
- core: An entry keeps the commits its version's notes were rendered from (05238fb)
- core: A rebuild derives again the commits a version's notes were rendered from (b03ef1e)
- core: The history reads a commit's message from the local history alone (cec6188)
- core: Status shows each version's notes rendered again from git (f9c4a1d)
- core: Verify shows the notes the index names, read from the store (0acb511)
- seams: A projection answers what a held version requires and which versions satisfy a range (3bd9e34)
- seams: A required claim names the artifacts it is asked of (134, 82) (c927d5e)
- policy-file: Answer each required claim with the artifacts its kind asks (134, C.10) (fb02737)
- core: The gate tells how each artifact was made (134, 13, 29) (52507b8)
- core: The gate judges each artifact by the claims asked of its making (134, 25, 28, 95) (3b7b476)
- cli: Tailrace policy marks a claim asked of built artifacts alone (134, 56) (db81305)
- core: Status answers each channel's changelog, every version's notes rendered from git (134) (4a644e1)
- cli: Status prints each promotion's notes beneath it (134) (04bce48)
- serve: The page shows each promotion's notes and each published version's (132, 134) (b6d3a9f)
- build: Left answers what a checkout's run left, on the seam, the fake and moon (cf1ab01)
- core: Push_left writes what a checkout's run left before the landing (d290139)
- cli: A push before a landing binds with a store alone (5e3ecaa)
- cli: Tailrace push --left pushes what the checkout's run left (5bf9093)
- seams: A refusal for an output whose cache entry the store lacks (5d0f681)
- core: A publish of a landing with verdicts replays its outputs from the store (d346c2c)
- build: A revision's checkout shares the bound repository's moon outputs (cfb2c46)
- seams: A projection's serve answers one request of its client, and asks the core for a version its layout lacks (86, 115) (0999dd4)
- projection: The file, image and moon cache projections serve none, absent naming serving (86) (16f38f0)
- fakes: The fake projection serves its layouts, asking the core for a version one lacks (86, 115) (550e5bb)
- core: A served layout's address is the core's name and port with the repository and ecosystem in its path (114, 49) (18127fe)
- core: One render of a layout at a time, under a lock beside its record (48, 62) (6f97f1a)
- core: A version a served layout lacks is rendered into it on the request, under the policy a sync would use (115, 50, 47, 99, 113) (ca3b030)
- core: Sync answers each served layout's address, probing its projection once (114, 49, 86) (8b5a361)
- projection: Bind the npm projection with a store of its own and the host's serving address ([bbdbfba](https://github.com/agentplot/tailr...
v0.4.2
v0.4.2 (2026-10-27)
Documentation
- adr: Record 0018 accepted by the user (277c1e4)
- adr: Record 0019 answers what a channel may require before it moves (96c0363)
- adr: Record 0019 holds alpha/* and lts/* as families, on the user's note (a793acf)
- adr: Records 0020 and 0021 accepted by the user (880147f)
- architecture: Rules drawn from the accepted records 0015 to 0021; what stands open; record 0016's ledger binding marked superseded (7d04eae)
- adr: Record 0016's amendment goes to the user as proposed (bb7c059)
- adr: Record 0019 accepted by the user; core.44's details and _open.md follow (e3d9491)
- adr: Record 0016's amendment accepted by the user (33f2b94)
v0.4.1
v0.4.0
v0.4.0 (2026-10-26)
Features
- seams: A promotion's body, a channel's name in the store, and a chain that says how it was read (2b28ede)
- seams: The refusals a promotion gives: a claim wanting, a channel elsewhere, a version its bound channel never held (f3a5078)
- fakes: The fake keeper answers a chain as last read once it cannot be reached (693de7e)
- core: The gate's ask and answers (fc186b3)
- core: The gate judges in the order of its design (5361ad8)
- core: The gate counts each claim with acceptance's joins (630f87b)
- core: The gate counts an independent rebuild, never makes one (b56b8b4)
- signer: A KMS key named by its key ARN (dc1d6ea)
- signer: Sign and verify with a KMS key through the host's role (62b2619)
- core: A chain read as last read moves no channel's name (d95a2f9)
- core: A promotion judged under its channel's policy, held by the ledger before the store (4c0b5b3)
- ledger: The git ref ledger, a commit per claim on refs/tailrace/ledger/ (d5b0dbd)
- ledger: The store ledger, a chain walked by predecessor from the channel's name (6328a6b)
- bindings: The host's file binds the ledger with [ledger] (8b8e8c7)
- bindings: [signing] names a host key or a KMS key, read by the signer family (b0a8ca5)
- cli: Tailrace promote moves a channel, or back with --back (b144309)
- core: The gate never accepts what it offered, but on the one host (8fc1523)
- core: The channels that follow each publish, read from the policy file (6a19af6)
- core: Nothing the gate accepted is un-accepted (2f92901)
- core: The gate judges each following channel under its own policy (8c02f8f)
- policy: The policy seam lists the channels, each with its component and binding (131) (1b8d7ac)
- core: Status answers every channel from the ledger beside the host's record (31, 36, 131) (5d21ff0)
- core: The serving address and a repository's name from its remote (49, 114) (e2879e1)
- core: Status answers the environments unread and a repository's row of heads (98, 132) (c01a0e0)
- bindings: Status is bound to the landing, the policy and the ledger, and with no file as 118 binds a host (60, 118) (b0cf7b6)
- core: The gate told by a publish judges the index the publish named (95, 130) (f26b864)
- signer: The given host key is made on its first sign, its public half beside it (118, C.8; design D3) (b5e0d04)
- signer: The given signer is named by its public half, else by the host's first label (118, 11; design D4) (6a6e9f1)
- bindings: A table the file leaves out is made by its family and named as given (118; design D2) (d427c5e)
- store: The given store is the layout under the user's data directory (118, C.2; design D2) (faad480)
- landing: The given landing is sluice where HEAD holds sluice's file, a branch otherwise (118, C.5, C.6; design D2) (1f6c072)
- ledger: A file naming no [ledger] binds the git ref with no remote (118, C.13; design D2) (38890d7)
- signer: A publish or a promote naming no [signing] signs with the given host key as the host's name (118, C.8; design D2, D3, D4) (ab688f7)
- bindings: The host's file names what tells its gate with [gate] (118, 130) (fd6adad)
- cli: Publish tells the host's gate where the host's file binds it to (95, 108, 130) (e1868fa)
- cli: Status shows every channel and its chain beside the environments and the host's record (31, 36, 58 to 61) (41a7c3f)
- cli: The host's file of named repositories and the serving process found or started (62, 114, 132) (14d1e46)
- bindings: A file naming no [gate] binds the host's publish to tell its own gate (118, 130) (a49af97)
- landing: The given landing reads the checkout's origin, else its one remote, else its own refs (118; design D5) (a6bc8d6)
- bindings: A missing file or table binds the given profiles for every command, status among them (118; design D1, D2, D8) (bee4222)
- core: Where the policy names no gate, the gate's own identity is the one host (118, 108; design D7) (38c52ea)
- seams: A channel is its component and name, and the policy says how each moves (125, 131) (a2f80d0)
- cli: Tailrace serve answers each named repository's status as JSON and as a page (57, 114, 132) (a2a11c2)
- cli: The serving process answers every repository it knows together at its root (132) (b8903b3)
- cli: Status --page names the repository, finds or starts the host's process, and prints its page (114, 132) (51e218b)
- core: Status answers every channel from the ledger beside the host's record (31, 36, 131) (6828db0)
- core: The serving address and a repository's name from its remote (49, 114) (bdce0c1)
- core: Status answers the environments unread and a repository's row of heads (98, 132) (e9ba3ce)
- bindings: Status is bound to the landing, the policy and the ledger, and with no file as 118 binds a host (60, 118) (7196aca)
- cli: Status shows every channel and its chain beside the environments and the host's record (31, 36, 58 to 61) (bb2e9cf)
- cli: The host's file of named repositories and the serving process found or started (62, 114, 132) (25ad441)
- cli: Tailrace serve answers each named repository's status as JSON and as a page (57, 114, 132) (3ec4b9e)
- cli: The serving process answers every r...
v0.3.0
v0.3.0 (2026-10-25)
Breaking changes
- seams: The projection seam carries cache entries (dfc0484)
Features
- store: The registry handle, its request path, tags and referrer form (8352b4a)
- store: The registry's operations, proven against the reference distribution (258c6c4)
- bindings: [store] registry binds the registry store (eb16842)
- core: A version copied between stores with its claims (e07180f)
- core: A channel's name follows the ledger's head (725ca0c)
- core: A cache entry written under its build identity (fcea191)
- core: The newest revision of a branch a checkout descends from (89cfed1)
- core: Sync renders the entries a landed revision's verdicts name (41e0763)
- core: The push writes a landing's passing builds' cache entries (109343a)
- core: The host's record rebuilt from the store and git (8d288aa)
- projection: Moon's cache, packed by task hash and rendered from entries (81c34cc)
- bindings: Bind the moon cache over a second binding of the store (347a4ea)
- cli: Tailrace sync renders a landed revision's cache entries (d5f836a)
- store: The cache manifest's form, naming bytes a tag can name (7903f85)
- bindings: Push makes the layout with no signing, and rebuild never does (a62dc52)
- cli: Tailrace push after a landing, and tailrace rebuild of the record (1190f26)
- store: A registry names bytes through their cache manifest (523b999)
- store: A registry's tag is read again while it answers the former place, up to 30 s (7c2c72f)
- store: A registry declares that its names take no condition (ac84eb2)
Fixes
- cli: The build stamps the commit a branch is at, not the one before (c16a757)
Refactors
- store: One OCI form for both store profiles (f51af68)
Documentation
- openspec: Propose the-projection-seam-carries-cache-entries (773ddfa)
- openspec: Propose moons-cache-namespace (1e0ca8f)
- openspec: Propose the-push-after-a-landing (f7c7b0c)
- site: Pack takes a build identity, and a cache entry packs with no version (65b32c2)
- openspec: Archive the-projection-seam-carries-cache-entries (67812f5)
- openspec: Propose moons-cache-namespace (0ec31e3)
- openspec: Propose the-registry-store (00f529a)
- site: The self-hosting page binds a registry (97ffeb8)
- openspec: The-registry-store pins zot by its release build (ec7753b)
- openspec: The-registry-store runs the ECR check outside the gate (43371a5)
- site: Moon's cache is built, and tailrace sync fills it (c47f471)
- openspec: The-registry-store names a cache entry through a cache manifest and runs ECR by hand (dd23d4e)
- site: Tailrace push after a landing, and the record rebuilt (9a98c26)
- openspec: The-push-after-a-landing names a registry's cache entry through its cache manifest (39bab55)
- openspec: The-push-after-a-landing declares the fakes it touches (91fcc02)
- site: The stores page says how a registry holds what it holds (2261c8f)
- openspec: The-registry-store proves ECR by hand as the bolt's acceptance (e125021)
- openspec: A read back at the former place within the bound is no lost race (49762e5)
- adr: 0015, the registry store checks a tag before and after its put, reads it again while ECR lags, and takes the host's Docker credentials (5c2430d)
- adr: 0015 records ECR's tag reads as not monotonic, and a resolve as the answer as of when it read (34b3ac9)
- adr: 0015 records a move from a place the name has left as best effort on a registry whose tag put takes no condition (a70a6bb)
- adr: 0015 records the four ECR runs that passed at a70a6bb (4727133)
- site: The stores page marks Amazon ECR built, proven by a push on 2026-10-25 (f889896)
- openspec: The-registry-store's Touches declares the suite's store group, its tests and the layout's (acf7fb7)
- openspec: Archive the-registry-store (88eed01)
- openspec: Archive moons-cache-namespace (fb6973c)
- openspec: Archive the-push-after-a-landing (cbb3d1b)
v0.2.4
v0.2.3
v0.2.3 (2026-10-24)
Documentation
- adr: 0014 accepted by the user on their card; core.30's detail stands (121eee7)