Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 09:00
· 96 commits to main since this release
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.