Skip to content

Releases: virtualonno/papertiger

Papertiger 0.20.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 21:20

Planner schema v13 and Mise schema v10 are unchanged; no init is needed.
Upgrade as for 0.19.0: verify the archive against its published .sha256, then unpack it over the project root or run setup-project from the new binary.
Scripts that call note "text" must switch to note --text "text", and file: evidence passed to gate resolve or blocker resolve must now name an existing file beneath the project root.

Added

  • decompose <parent> --outline-file <path|-> creates all of a parent's child tasks, with dependencies between them and on existing tasks, from one papertiger.task_outline.v1 JSON outline in a single transaction.
    Outline keys wire the dependencies and are not stored; the receipt lists one task create event per child in outline order.
    --start-ready also starts the children whose dependencies are already done.
    Any invalid entry, unknown reference, repeated tag or dependency, dependency cycle, dependency that waits for the parent, or duplicate title refuses the whole outline and lists every such problem in its entries.
    An outline that repeats a JSON key in any object, exceeds 1 MiB or 256 children, or targets a finished parent or plan is refused on its own, naming the command or limit that fixes it.

Changed

  • The installed agent contract and skill teach splitting a multi-part outcome with one decompose call instead of inventing section or phase labels, writing intents that stand alone rather than citing scratch or dated plan files, and operating each authority with its own project launcher.
  • Breaking: note takes its inline text as --text <text>, paired with --text-file <path|-> like --why/--why-file; the positional text argument is gone.
    Replace papertiger note "text" with papertiger note --text "text".
    commit add --note is unchanged.
  • gate resolve and blocker resolve refuse a new file: evidence locator that is absolute, leaves the project root, separates components with \, or does not name an existing regular file beneath it, with the same path rules evidence verify applies, and with --sha256 they refuse a digest that does not match the file's current bytes, naming the actual digest to pass instead.
    The root is --project-root or the discovered project.
    With --db, PAPERTIGER_DB or the personal store there is no root, so pass --project-root <root> alongside the database override (now accepted for these two commands, as for evidence verify), or keep the text in the authority with note --text-file and resolve with a non-file locator such as note:<summary>.
    Stored locators and import are unaffected; other schemes are accepted as before.

Removed

  • Mise's readers for the provenance-free campaign shapes: papertiger-mise.campaign.v3 with Git-patch candidate material, deterministic evaluator request and output v2, trial receipts v2–v4, materialization v3, candidate identity v2, paired analysis v2, paired trial request v3, and parent promotion proof v2.
    Admission already accepted only papertiger-mise.campaign.v4, and no known Mise authority stores any of these records; one that did is now refused with the expected identifier.
    A campaign.v4 manifest must declare candidate_material and each calibration's candidate_material_sha256; campaign preflight and admission refuse a manifest that omits them or still carries candidate_patch_sha256.
    Every objective must bind a measurement contract, and every deterministic observation must carry its measurement provenance.
  • The v1 and v2 improvement-paradigm registries.
    improvement verify-brief and improvement compile read only the current built-in registry and refuse a brief bound to any other registry digest; rebind such a brief to the digest from improvement paradigms.
    These registries were rewritten at the 0.18.0 schema-id cutover, so no brief written before 0.18.0 could bind them, and no known project authority holds a brief that does.

Fixed

  • A project-install receipt naming another Papertiger release still refuses, but the refusal now names that project's own launcher, <root>/tools/papertiger/bin/papertiger[.exe] --project-root <root>, for working in the authority as it is (or says the launcher is not installed on this host), before the deliberate papertiger setup-project <root> upgrade.
  • add --dep, dep add and edit --parent refuse an edge that would leave tasks waiting on each other forever: a dependency on the task's own parent, on an ancestor of that parent, or on any task that depends on one of them, and a new parent whose completion the task already waits for.
    Previously these were accepted, and neither the child nor the parent could ever start or complete until the edge was removed by hand.
    The refusal shows the chain of dependencies and unfinished children that makes the tasks wait, and names the dep remove command for each dependency in it.
  • reopen refuses a task that would make its parent wait for it forever, for example a retired child that gained a dependency on a task downstream of its parent, or a finished task moved under such a parent.
    The refusal shows the chain and names the edit --parent, edit --clear-parent and dep remove commands that resolve it.
  • audit reports a dependency_deadlock finding for each such loop an authority already holds, since older releases accepted these edges and import restores them unchanged.
    The finding names the dep remove commands that break the loop.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Merge .agents, .claude, and tools into the project root. Skills are ready to discover; executables, documentation, licenses and the source manifest live under tools/papertiger.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.19.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 17:59

Planner schema v13 and Mise schema v10 are unchanged; no init is needed.
Verify the archive against its published .sha256, then upgrade a project by unpacking the archive over the project root or by running setup-project from the new release binary, and a personal installation with setup-user.
Scripts that pass --replace-managed or check setup result schemas need updating.

Added

  • --project-root <root> selects an existing <root>/state/papertiger.sqlite when the root has neither a project-install receipt nor a release bundle, so a personal installation can reach a project's planning history without a committed Papertiger integration.
    It still refuses when that file is absent, and discovery without --project-root still uses only receipts and bundles.

Changed

  • Installed skills, the project reference and installed binaries are release files: setup-project and setup-user overwrite them with the release version, and uninstall-project/uninstall-user remove them, whether or not they were edited.
    Keep project-specific guidance in AGENTS.md or CLAUDE.md, which setup never touches.
  • Binaries are verified once, at download, against the release's .sha256 file; Papertiger no longer hashes installed binaries when it runs.
    Project discovery, --project-root, release bundles and the personal runtime check only that the receipt or manifest names the running release (and, for the personal runtime, its home), and each refusal names the command that fixes it.
    setup-project still replaces an installed binary that differs from the release binary running it.
  • setup-project no longer writes the host-local tools/papertiger/bin/papertiger[.exe].runtime-install.json receipt, and removes one left by an earlier release.
    Its result no longer has runtime_receipt_path or runtime_install, and uninstall-project no longer lists that receipt.
  • init --json names init's plain-text report in its refusal instead of the generic "no JSON projection" message.
  • The project reference installed as tools/papertiger/agent_integration.md teaches planning use only; installation, upgrade and removal are in the README and --help.
  • Project receipts are papertiger.project_install.v3 and personal receipts papertiger.user_install.v2; neither records file or binary hashes.
    The next setup-project or setup-user rewrites a v2 project or v1 personal receipt.
    An older receipt is refused: move it aside and rerun setup to reinstall.
  • setup-project reports papertiger.project_install_result.v7, uninstall-project reports papertiger.project_uninstall.v3 and setup-user reports papertiger.user_setup.v2; update scripts that check these schemas.
    The uninstall result's only refusal action is non_file_refusal, for a symlink or non-regular file at an owned path; it replaces modified_refusal.
  • Mise refuses an unrecognized schema or protocol id by naming the id it expects.
    papertiger_mise::schema_ids is no longer public.
  • Mise command messages consistently say "paired execution" (for example paired recover on an unknown id), and refusals raised by the authority's own integrity checks no longer end with a raw SQLite error code.

Removed

  • --replace-managed on setup-project and setup-user.
  • Cleanup of files from pre-receipt project installations and release bundles with a papertiger.release_manifest.v1 manifest; reinstall such a project with setup-project from this release.

Fixed

  • setup-project no longer reports a successful upgrade that leaves the project unusable.
    When tools/papertiger/manifest.json from an unpacked release archive names another release or cannot be read, setup-project and --dry-run now refuse before writing anything.
    Before this fix, setup exited 0 and every later command refused the manifest.
    To upgrade such a project, unpack the new release archive over the project root, or move the manifest aside and rerun setup-project.
    A custom authority path stays selected either way.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Merge .agents, .claude, and tools into the project root. Skills are ready to discover; executables, documentation, licenses and the source manifest live under tools/papertiger.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.18.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 13:26

This release renames planner storage, commands, flags and JSON identifiers with no compatibility aliases.
To upgrade an authority, run papertiger --db <authority> backup --output <new-path> with the new binary, then papertiger init to migrate it from schema v12 to v13.
Until then commands that open the authority, other than init and backup, refuse it and name that command.
A Mise authority likewise needs papertiger-mise --db <database> init (schema v10).
Then update scripts for the renames below and rerun setup-project from the verified release binary so the project skill and reference match.

Changed

  • Release archives carry papertiger.release_manifest.v3 (was papertiger.release-manifest.v2); update scripts that check the manifest schema.

  • Blockers record a condition: blocker add <task> <name> --condition <text> replaces --reason, and JSON, dumps and the database column use condition.

  • Gates use the blockers' vocabulary: gate resolve replaces gate close, and status resolved with resolved_at replaces closed and closed_at.
    The migration converts stored gates.
    Stored history keeps its original event kinds, so gate resolutions recorded before the upgrade still read closed in log.

  • Exports are papertiger.dump.v10.
    import also accepts papertiger.dump.v9 and converts it; older dumps still need their matching release to migrate and re-export.

  • A raw SQLite writer now fails with papertiger_write_requires_public_api (was papertiger_write_requires_executable).
    The migration reinstalls every guard.

  • list --all-plans pages with one opaque --after-cursor taken from the previous page's next_cursor or continuation_command; --after-seq and --snapshot are removed.
    A cursor from different --status/--tag filters or from a changed authority is refused with the restart command.

  • Renamed flags and commands: focus --include-blocked (was --all), evidence verify --classification (was --outcome), and papertiger mise record (was papertiger mise project).

  • search --compact and show --no-history print JSON without --json; both are JSON-only projections and previously refused the command.

  • search --compact returns 5 results by default (full search keeps 20) and includes a continuation_command when more results match.

  • JSON ids are snake_case, with their version raised where the id or shape changed: papertiger.task_context.v8, papertiger.task_current.v3, papertiger.task_inventory.v2 (next_cursor and continuation_command replace snapshot and next_after_seq), papertiger.search_compact.v2, papertiger.evidence_verification.v3 (projection.classification replaces projection.outcome), papertiger.history_inspection.v2, papertiger.history_quarantine.v2, papertiger.mise_planner_projection.v2 and papertiger.project_install_result.v6 (was papertiger.project_setup.v5).
    Quarantine envelopes and Mise projections recorded before this release keep their original ids and stay readable, exportable and importable; papertiger mise record refuses a new projection with the retired id and names the command that regenerates it.

  • Help text names task arguments "Task number (N or #N)", no longer claims that reject prevents re-litigation (reopen accepts rejected tasks), states that export carries events and Mise projections, and documents the reference, history and personal setup arguments.

  • The project skill and reference are shorter.
    commit add omits --repo unless the commit belongs to a nested or external repository.

  • Mise commands are renamed without aliases; the old spellings are refused.
    paired run-next, show-run and list-runs become execute-next, show-execution and list-executions; improvement verify <FILE> becomes verify-registry; improvement brief-verify becomes verify-brief; promotion inspect becomes promotion rederive; projection inspect becomes projection export.
    Update scripts and agent instructions that call them.

  • Mise rationale flags are --why <TEXT> or --why-file <PATH|-> (stdin with -) instead of --reason on budget release, candidate abandon-materialization, trial cancel, trial abandon and paired cancel.
    Cancellation requests report the rationale as why, and their JSON target for a paired execution is paired_execution.

  • Mise authority schema v10 renames the recorded cancellation rationale to why and the recorded Papertiger gate time to papertiger_gate_resolved_at; promotion proofs and successor admissions report it as resolved_at.
    Run papertiger-mise --db <database> init once after upgrading; read commands refuse a v9 authority and name that command.

  • Every Mise schema, protocol and domain-separation id is papertiger-mise.<snake_case_name>.v<N> with its version advanced, and the improvement formats move from the papertiger. prefix to papertiger-mise..
    Operator-authored inputs must be reissued under the new ids: campaign manifests papertiger-mise.campaign.v4 (measurement contracts measurement_contract.v2), adapter bindings paired_adapter_binding.v2 and domain_shadow_adapter_binding.v2, fixture bundles fixture_bundle.v2 (regenerate with campaign fixture-bundle), briefs project_improvement_brief.v3, approvals project_improvement_brief_approval.v2 and registries improvement_paradigm_registry.v2.
    Deterministic evaluators must read deterministic_evaluator_request.v3 and emit deterministic_evaluator_output.v3; paired adapters receive paired_trial_request.v4.
    Rerun campaign source-binding, because the repository identity digest changed with its domain-separation id.
    The complete retired-to-current table is papertiger_mise::schema_ids::RETIRED_SCHEMA_IDS.

  • Mise containment policies are ContainmentPolicy with schema papertiger-mise.containment_policy.v3 and protocol papertiger-mise.ed25519_sealed.v3, replacing TrustedContainmentPolicy and papertiger-mise.trusted-containment-policy.v2.
    Reissue existing policy files; a retired policy is refused with that instruction.
    Promotion proofs and sealed attestations name the policy digest containment_policy_sha256.

  • Mise refuses campaigns, receipts and shadow evidence recorded before this release instead of reading them.
    Each refusal names the replacement id; reopen frozen evidence with a 0.17.x papertiger-mise, or admit a new campaign.

  • Mise --papertiger-db defaults to state/papertiger.sqlite, resolved from --project-root, for campaign admit-successor, promotion verify-parent and promotion verify.
    promotion verify previously required it.

  • Mise promotion derive and promotion verify help states that both always refuse until sealed confirmation attestation lands.

  • Planner Mise projections require candidate material papertiger-mise.candidate_material.v2; export them with this release's papertiger-mise projection export.

Removed

  • inspect-project-guidance and the project_guidance field of the setup result.
    Papertiger no longer recommends trigger text for a project's AGENTS.md or CLAUDE.md; installed skills route agents by their own descriptions.
    Delete any Papertiger trigger text you added for it.

Fixed

  • A trigger added by direct SQLite access is write-guard drift.
    Previously it passed audit and repair-guards --dry-run, then ran inside the next Papertiger mutation and could change planning data without an event.
    Writes now refuse and name it; repair-guards --why <reason> removes it and records its SQL.
    The Mise projection immutability triggers are also checked and restored.
    An authority that already contains such a trigger refuses writes after upgrading until repair-guards runs; reads, export and backup continue.
  • repair-guards --json reports each entry's state as missing, altered or foreign.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Merge .agents, .claude, and tools into the project root. Skills are ready to discover; executables, documentation, licenses and the source manifest live under tools/papertiger.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.17.1

Choose a tag to compare

@github-actions github-actions released this 22 Sep 20:44

No schema change; 0.17.0 authorities need no migration.

Fixed

  • Missing or altered write guards no longer lock an authority.
    Reads, export and backup continue, audit reports the drift, and writes refuse with the repair command.
    repair-guards --dry-run previews the drift and repair-guards --why <reason> reinstalls the guards and the canonical history view, recording what it found in an audited event.
    It cannot write planning data.
    Previously a single dropped trigger blocked status, export and init with no supported recovery.
  • The README and operating reference state the current schema as v12.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Merge .agents, .claude, and tools into the project root. Skills are ready to discover; executables, documentation, licenses and the source manifest live under tools/papertiger.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.17.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 20:14

Upgrading migrates planner schema v10 or v11 to v12.
Read commands refuse the older schema and name the init command to run; take a backup first.

Changed

  • Every planner table refuses writes from ordinary SQLite connections; use the executable or enter through the public mutation API.
    Stored events are append-only, and normal opens refuse missing or altered guards.
    This protects against raw-SQL misuse, not a filesystem owner deliberately defeating the guards.
    Public API connections are trusted after mutation entry.

Added

  • history inspect <event-id> and history quarantine <event-id> --expect-sha256 <digest> --why <reason> recover structurally invalid legacy history after explicit review.
    Original rows remain unchanged; an audited recovery event preserves every raw field through export/import.
    Unknown timestamps and associations remain unknown, and task state is not inferred.

Fixed

  • audit identifies every malformed stable event reference and reports oversized titles on terminal tasks, which can also block recovery imports.
  • Task reads identify priorities stored as text and name the recovery command.
    After preserving a backup, edit <task> --priority <integer> --why <reason> can repair that value as an isolated edit, preserving the original text in a repair_priority event.
    Reads never infer a numeric default, and other unreadable task fields roll back the repair.
  • Project skill guidance no longer points to an absent personal command binding.
    First-use diagnostics preserve the selected authority instead of instructing project users to guess a database path.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Merge .agents, .claude, and tools into the project root. Skills are ready to discover; executables, documentation, licenses and the source manifest live under tools/papertiger.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.16.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 19:15

The release archives were replaced with ready-to-use project overlays.
Download them again and verify the new checksums.
Merge .agents, .claude, and tools into the project root; executables and documentation have moved under tools/papertiger.
No setup command or project guidance rewrite is needed.
Existing configuration and planning data are not shipped or overwritten.

Added

  • setup-user installs a personal skill, native runtime and private fallback planner without changing consuming projects, AGENTS.md, shell profiles or harness settings.
    The installed runtime discovers existing project authorities before using its private fallback, without a --db argument.
    Start a fresh agent session after installation; skill discovery does not guarantee model selection.
  • uninstall-user removes matching receipt-owned runtime and skills while retaining planner history.
    Setup and removal support --dry-run; unowned or modified files require review and explicit replacement.
    Missing expected history refuses setup.
    Upgrade or repair from an external release binary.

Changed

  • Every installed skill location contains the complete short workflow generated from one template.
    Existing owned Claude routers upgrade in place, removing the extra read needed to reach executable bindings and operational guidance.
  • Direct project overlays are the default adoption path; personal installation remains optional.
    setup-project remains available for shared repository adoption and pinned runtimes; project guidance triggers are optional with skill-capable harnesses.
    Cursor project markers select the shared skill in automatic setup.
  • The planning skill carries the ordinary workflow and loads installation, migration and less common operations from its reference only when needed.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Merge .agents, .claude, and tools into the project root. Skills are ready to discover; executables, documentation, licenses and the source manifest live under tools/papertiger.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.15.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 22:38

Added

  • --session <id> and PAPERTIGER_SESSION record advisory pickup when starting or resuming work.
    focus prefers the caller's work and available alternatives over tasks last picked up by another session.
    show, focus, and status expose pickup identity and time without claiming that the agent is still alive.

Changed

  • focus is concise by default and preserves pickup, readiness, and blockers together.
    JSON v7 replaces full task records with summaries, moves pickup to entries[].pickup, and reduces plan to slug and status.
    Use show for intent, results, and history.
  • start can resume in-progress work without a release or takeover command.
    Repeated pickup by the same identified session emits no event.
    Pickup never blocks another session or guarantees exclusive execution; real dependencies, blockers, gates, and completion checks remain enforced.
  • Upgrading from 0.14.0 migrates planner schema v9 to v10 for pickup context.
    Preserve an export and standalone backup before explicitly running init; migration does not infer sessions from historical actors.
    Recovery dumps use papertiger.dump.v9.
    Changed read contracts are task context v7, current task v2, status v3, focus v7, and search v2.
    Refresh consuming installations with setup-project; keep old Mise drivers for campaigns that bind their executable identity.
  • Rust callers pass optional session context to start_task, focus, and TaskCreation; pass None when no session identity is available.
  • JSON-schema verification runs in the Rust workspace tests without Python.

Removed

  • Auxiliary Python scripts.
    The historical native-value comparison document points to its archived runner and retains the original evidence and limitations.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Each contains the version-aligned papertiger and papertiger-mise binaries, setup and operating documentation, licenses, and a release manifest.
Verify the adjacent SHA-256 asset before extraction.

papertiger 0.14.0

Choose a tag to compare

@virtualonno virtualonno released this 16 Sep 15:03

Planner schema remains v9; upgrading from 0.13.0 needs no database migration.
Run setup-project from the new release to refresh project binaries and skills.
Keep the previous Mise driver for existing campaigns that bind its executable hash.

Added

  • list --all-plans --status unfinished --json inventories open tasks across every plan state, including paused plans, with owning plan identity, exact totals and bounded continuation.
    Reuse the returned snapshot and unchanged filters for subsequent pages; changed authority history refuses continuation and requires restarting the inventory.
  • plan list --json exposes structured plan orientation; --plan SLUG selects one plan.
  • search --compact --json returns ranked task summaries and excerpts without full bodies.
    show --no-history --json returns full current context with an explicit history command.
    These opt-in projections use papertiger.search_compact.v1 and papertiger.task_current.v1; existing full JSON reads retain their schemas.

Changed

  • The installed skill uses compact discovery and current-state rechecks where appropriate while retaining full context for resumption.
    Mutation guidance distinguishes optional task summaries from full task records and uses read-only recovery after a postcommit display failure.

Fixed

  • inspect-project-guidance recognizes explicit @AGENTS.md imports and directed local Markdown links in CLAUDE.md as indirection.
    This observation does not claim that imported instructions were loaded or followed.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Each contains the version-aligned papertiger and papertiger-mise binaries, setup and operating documentation, licenses, and a release manifest.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.13.0

Choose a tag to compare

@virtualonno virtualonno released this 09 Sep 13:22

Planner schema remains v9; this update needs no database migration.
Retain the previous Mise driver for existing campaigns whose manifests bind its exact executable hash.

Added

  • Planner mutations accept --reasoning-effort or PAPERTIGER_REASONING_EFFORT alongside a known model.
    Event history and task activity preserve the reported effort separately; existing events retain null effort without a database migration.
  • Mise guide supplies the running driver's concise agent workflow; guide --reference emits its full operating reference without opening an authority.
  • Mise campaign inspect discovers candidates, trials, paired cohorts, and reservations through bounded read-only pages.
    Continuation arguments preserve project and database selection.
    Recorded state remains separate from CAS verification and execution readiness.

Changed

  • The vendored Papertiger skill contains the ordinary task workflow and loads installation, recovery, and advanced-operation detail only when needed.
    Existing durable work remains tracked when its next step is a bounded edit or read-only check.
  • Agents are instructed to resolve the exact model variant and known reasoning effort once per execution context, then reuse those values until settings change.
  • Claude skill installation uses a thin router to the canonical .agents/skills/papertiger/SKILL.md.
    Selecting Claude also installs that dependency; receipt-owned full copies upgrade automatically.

Fixed

  • Task search results report the owning plan slug in plan instead of the task status, including searches across multiple plans.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Each contains the version-aligned papertiger and papertiger-mise binaries, setup and operating documentation, licenses, and a release manifest.
Verify the adjacent SHA-256 asset before extraction.

Papertiger 0.12.1

Choose a tag to compare

@github-actions github-actions released this 05 Sep 02:11

Fixed

  • The top-level reference help describes task reference locators instead of repeating the commit command description.

Prebuilt archives are attached for Windows x64, Linux x64, Intel macOS, and Apple Silicon macOS.
Each contains the version-aligned papertiger and papertiger-mise binaries, setup and operating documentation, licenses, and a release manifest.
Verify the adjacent SHA-256 asset before extraction.