Skip to content

Releases

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 14:04
ac9b3d9

Changelog

Added

  • With review.mode: critic, the review-thread leg asks the critic once per pull
    request head to sort the unresolved bot threads. It answers and resolves those it
    calls invalid, duplicate or out of scope, quoting the critic's evidence.

  • The threads the critic would apply become one round, judged by the touched modules'
    paired tests and the type checker.

  • Under review.mode: critic an attempt runs one to three candidates, by the unit's
    size, each in its own worktree. The critic reviews the green ones in a fixed order
    until one passes, and torve why and night show list the candidates.

  • A dsh seat's candidate whose battery convicted three tests or fewer, or only mypy,
    gets one more turn in its own session with the gate output before it is judged.

  • Each unit that ran through selection writes a unit.closed telemetry record.

  • unit: document in a document's phasing.yaml mints one contract for the whole
    document, and is the default for three phases or fewer; unit: phase keeps one
    contract per entry. A whole-document contract's landing completes every phase.

  • An agent profile's finish command runs in the sandbox after the agent stops and
    before its tree is judged, for example a formatter's fixes. Its exit status never
    fails the attempt.

  • torve abort --claim … --evidence … [--row <id>] stops a task from inside its attempt
    when the rows, the intent and the tests cannot all hold. A halt on a LOCKED row goes
    to the owner; any other goes back to the author as underspecified.

  • review.mode: critic reviews a gate-green candidate with the critic: a frozen prompt
    over the diff, the base tree and what the engine measured. The engine blocks on its
    located findings and violated rows, never its stated verdict. classic stays default.

  • A gate pass the critic will read writes .torve/review/evidence.yaml: changed tests
    run on the base and the head, a status per owned row, unrun acceptance, edits to
    existing tests, and flags for gaming or text aimed at a reviewer.

  • torve review corpus --mode classic|critic replays the corpus through either seat and
    reports whether each case would have blocked. Three cases join: a weak test, a test
    edited to pass, and code that special-cases PYTEST_CURRENT_TEST.

  • Upgrade: upgrade every host that shares a store together: a contract 0.9.0 mints
    is version 3, and a night it closes on --passes names a reason 0.8.0 does not know.

  • Upgrade: torve init refreshes .torve/schemas/ for version 3 contracts, a phasing
    file's unit, a profile's finish and review.mode. A seat whose harness image names
    {torve} runs the 0.9.0 images the tag's publish workflow builds.

Changed

  • A contract row's check runs only when its document completes, on the document branch
    or at the local landing that completes it, never on an attempt or a rebase. Standing
    invariants' checks no longer run in the lane, and a gate manifest's rows key is
    ignored with a warning.

  • A task contract's scope is now files, tests, fence and contingent. Only an
    edit inside the fence fails the scope gate or meets the pre-write hook; one outside the
    files and their tests is listed as evidence. Version 2 contracts load for this release.

  • torve plan licenses each scoped module's existing paired tests in the contract,
    fences the manifest's scope.deny and the engine's own .torve paths the phase does
    not own, and adds up to ten LOCKED rows of other documents the scope touches.

  • The dsh image moves to dsh 0.2.1-rc.5. It now shuts out project instruction files
    and the default skill roots, gives a shell command up to 900 s in the foreground,
    and reports usage and tool calls from dsh's v4 session log.

  • A dsh seat's attempt runs as a session the engine drives through dsh's --json
    events, which give its tool calls, their results and each step's usage. A turn past
    the seat's timeout is now killed inside the sandbox instead of left running.

  • The context pack carries the files a task changes and their paired tests first and
    whole, in the contract's order, and names its contingent files without carrying them.
    A neighbour that sorted first can no longer push the task's own files out of the
    prompt.

  • The context pack no longer carries gates.json, contended.json or coverage counts,
    and a retry is handed only the reds that blocked.

  • An attempt is no longer asked for attestation entries: torve log divergence refuses
    decided and resolved, the prompt and AGENTS.md sections name no owed entry, and
    the finish hook runs only the acceptance. Logs written before still read.

  • torve log divergence without --attempt files its entries under the attempt the
    engine pinned in the worktree, not attempt 1.

  • A review no longer sees what earlier reviews of the same task found: touched.json
    drops prior_reviews, which anchored each review to the last one's reading.

Removed

  • torve log owed is gone.

  • torve eval and torve shadow are gone, with the eval arms and shadow replays they
    launched. A dispatch no longer refuses an image digest no eval verdict measured.

  • torve fleet is gone. Serve each repository with its own torve manager serve; a
    report's default partition is now the configuration's scm.repo, and
    ~/.config/torve/fleet.yaml is no longer read.

  • torve serve, the web dashboard and the serve extra are gone.

  • torve survey is gone.

  • The verify role is gone: torve plan mints no verify tasks, and the torve:verifier
    skill no longer ships. Finish any document planned with the verify pilot on before
    upgrading: its verify tasks no longer load, and the tasks waiting on them never start.

  • The mutation, held-out, verify-tests, decisions-reported, self-audit,
    user-facing-text, source-layout, red-on-base and evidence gates are gone. A
    gate manifest entry naming one loads with a warning and is ignored.

  • A document's pull request no longer shows the Tests, Check, Survivors and Findings
    columns in its decisions table.

  • Standing jobs under .torve/standing/ no longer run, and escalations are no longer
    sent to a webhook.

  • The OpenSandbox runtime and the opensandbox extra are gone; runtime.adapter takes
    docker only.

  • The mimo, codex and opencode sandbox images are no longer defined or published.

  • The configuration keys notify, verify, unmeasured_images, runtime.opensandbox
    and loop.standing_max_per_tick, and a seat on the mimo, codex or opencode harness,
    still load in this release: torve ignores them and warns.

Fixed

  • torve why counted only blocker findings as a review's blockers, so a review that
    blocked a candidate on a major finding under review.blocks_at: major read as having
    none.

  • The dsh seat's door against AGENTS.md, CLAUDE.md and the default skill roots had
    no effect: it patched keys dsh does not read, so those files reached every attempt.

Security

  • The gates read the gate manifest committed at the attempt's merge base, and the
    contract from the root or the store, never from the attempt's worktree. An attempt
    could previously edit both and change which gates judged it. A root edit after the
    cut no longer moves an attempt in flight.

  • The gate battery, the lane's included, mounts a cache volume of its own
    (<cache_volume>-<slot>-gates) and a nested Docker daemon's state volume of its
    own. Code a gate ran could previously leave files or images there for the next
    attempt to read.

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 15:15
12eee99

Changelog

Added

  • night.engine_paths names the files that make up the engine. When a chained night's
    fast-forward between nights changes one of them, the chain plans nothing, records
    chain_engine_moved and exits with code 6, so a launcher loop can install the new engine
    and start the chain again. The operating guide ships that loop.

  • With intake.issue_label set, the manager's and the fleet's pass draft task contracts
    from one labelled GitHub issue per pass, through the same drafting run torve intake
    starts. The issue is filed as a source first, and torve never writes to it.

  • An issue is drafted only when the account that last applied its label holds triage or
    more on the repository, and its title and body were not edited after that.

  • torve spec check warns, for each phase of a document nothing has landed from, about
    the files outside the phase's scope that import what it changes, and about the tests
    importing them that no acceptance command runs.

  • torve manager serve <partition> --night --chain runs nights back to back in one
    process. Between nights it fast-forwards a clean checkout on the base branch and plans
    every accepted, unimplemented document that has minted no task, except in the checkout
    its own engine runs from.

  • Under --chain, the night budget bounds a UTC day, and each night opens with what the
    day has left.

  • A seat may name a revision_variant, a configured tier. The revision that follows a
    surviving review blocker runs on that tier before the task escalates. Empty, the
    default, keeps the revision on the seat.

  • A gate manifest may name @suite. It runs the whole suite once, and a failing test
    convicts only when that test is still red at the head and not red on the merge base. A
    red the base also carries is recorded as inherited and never convicts; no command, an
    uncollected file or a red naming no test fails.

  • Every battery the lane runs is recorded as a lane.judged event, and torve why
    shows it with its failing gates' output.

  • A document's header may list fixes, the issues it fixes: a number, or owner/repo#N
    in another repository. Its pull request's body ends with one Closes line per entry,
    so the merge closes them, and torve spec check refuses an entry that is not an
    issue reference.

  • A shadow gate, evidence, names each decision row no changed test proves: one that
    cites the row and fails on the base tree but passes on the candidate. A document's
    pull request shows each row's proving tests, check, survivors and findings, and the
    reviewer asks whether each proving test exercises its row.

  • Upgrade: upgrade every host that shares a store together: 0.7.0 cannot read the
    lane.judged record a 0.8.0 battery writes.

  • Upgrade: torve init refreshes .torve/schemas/ for revision_variant,
    intake.issue_label, night.engine_paths, a document's fixes and @suite. A seat
    whose harness image names {torve} runs the 0.8.0 images the tag's publish workflow builds.

Changed

  • The review-thread leg refuses a thread as asking for a command only when it names one:
    a run, execute, invoke or install verb with a code span beside it, or a shell code block.
    The word alone in prose, as in "before a run starts", no longer sends a finding to a
    person.

  • An open document's pull request is rebased, and its battery run again, only when the
    base's new commits conflict with it or change a file it changes. A merge that touches
    neither leaves it as judged.

  • The lane's re-gate after a rebase and its completion battery run only blocking and
    decision gates, plus evidence and mutation on the completion battery. A rebased
    candidate whose only failing tests also fail on its base lands.

Fixed

  • A contract that inherits rows from an accepted document nothing has landed from carries
    them without their checks. Those checks select code that does not exist yet, so they
    failed on every review round and draft that touched the row's paths.

  • torve log land run with no execution log on disk records the work commit's parent as
    the landing's base. It used to record the work commit as its own base.

  • A task whose document was merged on the forge is not landed again, even when the
    served checkout's own tree has not caught up. The lane used to cut the document branch
    again from main and try to land the merged tasks onto it.

  • A document pull request's merge is recorded once. While its branch stayed on the
    remote, a served night used to record the same merge again on every pass.

  • torve intake and torve adopt run git with repository hooks off, as the rest of
    torve does. A drafting run's own refusal is no longer reported as a configuration error,
    and an issue whose drafting run never started is tried again on the next pass.

  • A decision row's check runs only when the diff touches the row's paths or a file the
    check names. A row that a later phase of the same document builds no longer fails its
    check in each earlier phase, and those attempts no longer owe a log entry.

  • The review-thread leg answers a refusal once per thread. It used to reply to its own
    replies, and could loop with a review bot.

  • A document whose contracts were minted into the record, with no contract file in the
    checkout, completes. The lane reads each task's contract from the files it landed, and
    a verify holdout no landing placed turns the completion battery red.

  • A requeued task whose document branch moved past its checkpoint starts from the
    branch's tip. It used to resume a tree without what had landed since, and fail on its
    absence.

  • A phase's contract lists, among its contingent paths, the files the manifest's
    scope.derived map pairs with its sources.

  • Two manager workers on one checkout no longer escalate a task when both cut
    a worktree at once. The second waits for the first, and a cut no longer
    writes .git/config, so a lock another git holds there cannot refuse it.

  • A document that names another in after: no longer waits forever on the named
    document's review records, which never land. Its first phase waits on the
    implement, verify and revert tasks alone, and a task already minted with such an
    edge starts once those tasks land.

  • The review-thread leg takes a new thread beside an answered one as a new finding when
    another reviewer opened it. Only the answered reviewer's own thread there is escalated
    as a re-raise.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 09:00
fc29f30

Changelog

Added

  • torve spec check warns, for a document nothing has landed from, on each LOCKED
    row of a depends_on document that one of its phases' scopes touches. A phase that
    contradicts such a row shows before the document is accepted, not when its executor
    halts on it.

  • torve spec check warns when a document's title is too long for its typed
    pull request title, naming its length and the room after <gitmoji> <type>(<scope>): . Shortened before acceptance, the title is the squash
    subject as written. The · n/m phases count gives way rather than cut it.

  • torve ledger prices a subscription seat's attempts from their token counts
    when its provider record names the model's list_price, and marks the figure
    ~: what the tokens would cost, not an amount billed. The attempt's own cost
    stays unreported, and a night's dollar budget does not count it.

  • torve manager note --urgent halts a running attempt: a Claude seat under a
    broker stops at its next tool call, any other when its session ends. The task
    escalates as killed, its gates never run, and its tree stays on its branch.

Changed

  • torve runs on forze 0.16.2, whose durable run tables are unchanged, so no
    migration is owed. The configuration hash moves with the pin, so telemetry
    starts a new regime, and this release's seat images carry the new forze.

  • The spec-writer skill and the adopting reference say how a phase gets more time or
    the stronger model: a seat variant with its own agent_timeout and
    sandbox_timeout, named by the phase's tier_variant or reached through
    character_routing.

  • The scope gate names a file outside the scope whose change is whitespace alone,
    such as a final newline or trailing spaces, as outside allow, whitespace only.
    It still fails, and the retry is told to undo the change rather than widen the scope.

  • Upgrade: upgrade every host that shares a store together, and run the 0.7.0
    seat images: 0.6.4 cannot read an urgent note's record, and only the new claude
    image hands the provider's context window to the seat.

  • Upgrade: the implement hooks gain urgent_note.py, run before every tool call.
    A profile equipping torve:hooks/implement gets it with the package; a repository
    with its own copy of .torve/agents/hooks/implement/ copies it again. torve init
    refreshes .torve/schemas/ for the provider record's list_price.

Fixed

  • A document pull request whose last phase lands green is published ready even
    when the forge does not list the new completion status yet. A forge that
    refuses to mark it ready is recorded as lane_pr_refused, no longer silently.

  • The next phase of a document whose remote branch was rebased onto a moved
    base no longer escalates merge_conflict when this checkout still holds the
    old hashes. A copy whose landings the remote already has is reset to the
    remote, and the phase lands onto it.

  • A served night no longer closes as drained while a task that can still run is
    queued or escalated, such as work waiting on an escalation. It keeps polling
    until its wall-clock end, so the work runs once the escalation is resolved.

  • A task whose manager was killed mid-attempt no longer stays running after
    torve reap expires its run. The next pass escalates it lease_expired, so
    torve manager resolve and torve plan --refresh reach it.

  • torve manager board shows a review row its run already concluded as
    consumed, as torve status does, instead of queued forever. The JSON
    board is unchanged.

  • The night guide and the operator skill name torve plan --partition as the
    step that puts a freshly accepted document on the board. The manager's import
    pass reads contract files and never plans a document.

  • A task minted into the store no longer answers "no task" from torve why
    without --partition. With a store configured, why, status, context,
    serve and mcp read the fleet manifest's partition for the root, else
    scm.repo, and fall back to the files when that record lacks the task.

  • An attempt's work commit is titled by its phase, not by its intent cut
    mid-word, and a review round's names a lone finding's file with the path
    whole. A subject still too long is cut between words, never inside backticks
    or a path, and the commit body keeps the whole text.

  • A phase's contingent paths, the context pack and a review round's paired tests no
    longer take in copies from a git worktree or clone nested in the repository, such as
    an agent harness's under .claude/worktrees/.

  • The intake lint reads the drafting worktree's files. It read none, because that
    worktree sits under .wt/, so a draft that left out its module's test file passed.

  • Git works inside an attempt's Docker sandbox: git status, diff and log
    read a read-only copy of the attempt's HEAD and index. The copy carries none
    of the host's git config or other branches, and nothing in the sandbox can
    write a ref.

  • A Claude seat running a non-Claude model compacts at the window its provider
    record states instead of at 200,000 tokens. Rebuild the claude sandbox image
    to pick it up.

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 23 Oct 20:07
78e0f50

Changelog

Fixed

  • A red gate's clipped output keeps pytest's failure report from where it
    opens, as far as the bound allows, and the summary. The gate's output, the
    recorded result and the retry's context each kept only the tail, where the
    coverage table had pushed every traceback out.

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 22 Oct 21:22
c88340b

Changelog

Fixed

  • A task whose gates outlast the 15-minute lease is no longer released and
    escalated by another worker: the pass records gates.started with its
    longest run, and the lease waits that out. Upgrade every host together;
    0.6.2 and earlier cannot read that fact.

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 10:11
84f7f8c

Changelog

Fixed

  • A phase is cut from its document branch with the landings held locally, so it
    no longer conflicts with them on every attempt. A second conflict at the same
    branch tip escalates for a person instead of requeueing to the attempt ceiling.

  • A document branch holding landings for its wave no longer overwrites a hand
    commit pushed to its pull request. The held landings are replayed onto it
    before publishing, and a conflict escalates for a person instead of pushing.

  • The implement finish check names the projections a task owes as torve spec project --only <file>, so an attempt no longer rewrites AGENTS.md files
    outside its scope and fails scope. torve spec project gains --only.

  • A review round is no longer judged by a guessed uv run pytest when the
    acceptance gate names no commands; the round is refused by name. torve doctor is red while threads.enabled is on and the commands are missing.

  • A document pull request no longer stays a draft when its last phase lands by
    hand, or when publishing it ready failed. The lane runs the completion battery
    over a hand-completed tip once, and republishes a green tip still in draft.

  • The nested Docker daemon and the seat images' Docker CLI run 29.7.2, as hosts
    and CI do, instead of 27.5.1, where a directory COPY --chmod created got
    another mode. Warm torve-dind-<slot> volumes are upgraded in place.

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 21 Oct 19:07
ba082e5

Changelog

Fixed

  • A scope glob may start with /, the root anchor: /README.md is the root's
    README alone, so a phase naming it no longer blocks every other task as
    overlapping. torve spec check warns when a phase names a root file with no
    slash.

  • A release retries an image push the registry refuses, and a rerun after a
    partial push publishes only the images still missing. 0.6.0 published no
    codex, dsh, mimo or opencode seat image.

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:10
fed65b8

Changelog

Added

  • An attempt that writes ignored files outside the toolchain caches gets an
    ignored-writes shadow result naming them, in its record and in torve why. It changes
    no verdict.

  • An opt-in verifier, verify.enabled in the runner configuration, off by default. A
    feature or fix phase that touches source gets a verify task first: an agent on the
    verify seat writes the phase's tests from its decision rows. The implement task must
    pass them and cannot edit them.

  • A verifier can also write held-out tests that never enter the implementer's sandbox.
    The held-out gate runs them in the gate checkout and reports only the failing row and
    message. When the document's last phase lands, the lane commits them to its branch.

  • The verify-tests gate rejects a verify candidate whose tests do not collect, leave a
    settled decision row without a test citing it, or already pass before the
    implementation exists.

  • torve eval --task <id> --verifier replays a task with and without its verifier, and
    --oracle records which arm let a known bug through.

  • torve doctor fails when the verifier is on and its seat runs the executor seat's own
    model.

  • torve init --starter writes a verify agent profile beside the implement, revert and
    review ones.

Changed

  • Every gate battery judges a standalone checkout of what the attempt would commit,
    inside a sandbox. Ignored files, the attempt's .venv among them, no longer reach a
    gate, so a gate that leaned on one the attempt built now fails.

Fixed

  • A gate whose output is not valid UTF-8 reports its own verdict when it runs in a
    sandbox. It was recorded as an infrastructure error, with its output lost.

  • A shell gate that runs git, such as coverage-delta's diff-cover --compare-branch,
    judges the candidate in the sandbox. The battery's checkout is a repository of its own
    whose history reaches the attempt's base.

  • A run whose attempt raises, such as a seat image that does not start, ends escalated
    instead of running. Requeueing the escalation now dispatches the task again, without a
    torve reap first.

  • A served night records on the board a candidate the lane escalates, such as one red
    again at the same base and head. The board no longer shows it as ready while the
    night waits on it, and torve manager resolve can answer it.

Security

  • The lane's re-gate of a rebased candidate and the whole-document battery run their
    shell gates in a gates sandbox under the default executor seat's image. They ran the
    candidate's tests on the host, in the manager's environment.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 21:36
6733bbd

Changelog

Added

  • runtime.docker: nested gives each sandbox of a role in runtime.nested.roles
    (default [gates]) a Docker daemon of its own, in a privileged side container from
    runtime.nested.image. Tests that start containers or compose stacks run in the
    sandbox.

  • A nested daemon keeps its images in the worker slot's cache volume and starts each
    task with no container, volume or network a previous task left. One that does not
    answer within runtime.nested.ready_s seconds fails the sandbox's creation.

  • The review role, OpenSandbox, sealed broker mode and every fleet trust class but
    own refuse a nested sandbox.

  • An acceptance command may name docker when the configuration nests the gates role;
    the mint-time lint refuses it otherwise.

  • torve doctor checks, whenever any role is nested, that a proxy on the host's
    loopback answers from the bridge gateway a nested sandbox reaches it through. A proxy
    that listens on 127.0.0.1 only fails every image pull inside a nested sandbox.

  • The base sandbox image carries the Docker CLI with its compose and buildx plugins,
    just and openssl. The seat images need rebuilding.

  • Each release publishes the base and seat images to ghcr.io/morzecrew, tagged with
    its version, after checking that each one runs that version of torve. An adopter
    pulls them instead of copying torve's image definitions.

  • {torve} in a harness manifest's image or in runtime.image resolves to the
    installed torve's version, so an upgrade moves the images with the engine. torve's
    own manifests name their images that way.

  • torve doctor accepts a published seat image with no local definition when its
    labels name torve's repository and the host's torve version.

  • torve manager resolve --resolution requeued --note adds the note to the task's
    feedback record, so the next attempt reads it.

Changed

  • just images tags every image, the base included, with the version it stamps, and
    no longer writes :latest.

  • An invariant gate whose check selects no test fails as "the check selected nothing",
    as a decision gate does. It stays shadow.

Fixed

  • torve spec check in a sandbox, where git cannot run, reads the host's list of
    tracked files instead of reading the tree as empty and passing. With no list, it
    warns that the scan did not run.

  • The lane checks citations on the host before a fast-forward, so a candidate that
    cites a row no document defines goes back instead of landing.

  • torve manager board --until-change holds one store connection pool for its whole
    wait, and every store a command opens closes when the command ends.

  • torve manager return moves the candidate's run state back to queued under the
    lane's lock, so the lane no longer lands a candidate an operator sent back.

  • torve review corpus replays reach their seat through the configured broker, so a
    credentialed route no longer fails as logged out. A seat that gives no verdict is
    reported as a seat error.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 14:36
595a2b0

Changelog

Added

  • .torve/config.yaml can name the torve release a repository needs, engine: "X.Y.Z",
    meaning that release up to the next minor. A command that loads the configuration
    under a torve outside the range stops and names the install command for one inside
    it; torve --version, guide and doctor still run.

  • torve doctor goes red when a seat image carries another torve version than the
    host's. just images stamps each image with the version the host's torve reports
    for the same tree.

  • gates.yaml can declare a Python project under a subdirectory, layout.root, and
    top-level directories that ride with any change, layout.carried. The source-layout
    gate, citation scan, spec quality report, coverage and default test paths read the
    project root; the sizer counts a carried directory as no module.

  • torve manager board --until-change waits until a task's state, attempts or
    escalation changes, or the night closes, then prints the changed rows and exits.
    --document narrows the wait to one document's tasks.

  • The base sandbox image carries CPython 3.14 beside 3.13, so a project on Python 3.14
    runs its gates in a seat image without deriving one.

  • torve guide torve upgrading states the upgrade, and the adoption reference covers a
    tool install, engine, a nested layout and the shipped hooks.

Changed

  • Breaking: torve's git commands no longer run the repository's git hooks; every
    commit, rebase, checkout and push it makes sets core.hooksPath=/dev/null. A
    repository that relied on a hook running on torve's commits moves that check into
    its gates or its CI.

  • Breaking: a repository installs torve as a uv tool rather than locking it as a
    dependency, and the stub torve init writes calls bare torve. A repository that
    keeps torve only in its lock installs it as a tool too, or the stub finds no torve.

  • torve runs on forze 0.13.0. Its configuration hash moves with the pin, so telemetry
    starts a new regime, and the seat images need rebuilding.

  • Upgrade: the implement hooks ship in the package as torve:hooks/implement, and
    the starter implement profile equips them. torve init leaves an existing profile
    alone: a repository that copied .torve/agents/hooks/implement/ points its profile's
    hook item there by hand and deletes the copy.

  • For a project under a subdirectory, coverage reads its source prefix from the
    report's Cobertura <sources>, the reviewer collapses every rider file
    scope.derived names as it does uv.lock, and the context pack leaves out paths
    tests.patterns names.

Fixed

  • The sizer no longer counts a glob whose first segment is a wildcard, such as
    **/x.py, as a module named **.

  • A review, thread round or standing task minted during a served run no longer takes
    the id of a task only the store holds, which removed that task's worktree and
    crashed the night. torve intake, decompose, adopt and review pr take
    --partition to number past the board's ids by hand.

  • The served lane lands a task planned with torve plan --partition. It read the task's
    contract from .torve/tasks/, which such a plan never writes, so every pass failed
    with "No such file or directory".

Security

  • The dsh seat image runs dsh 0.1.2-rc.1. Earlier releases trusted the Host header on
    dsh's local control-plane API, so code in the sandbox could run commands with full
    access and lift the seat's approval policy. Rebuild the dsh image.