Skip to content

Questlock v0.13.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 22:09
· 1 commit to main since this release
3b8361a

Local workflows should explain why they stopped, know which worker they reached, and catch an answer that is longer than requested.

What changed

  • Budget stops now carry safe structured evidence: the limit, count or estimate, count basis, and whether generation was called. MCP exposes budget_exceeded directly. Conservative estimates stay conservative; there is no hidden cap increase or retry.
  • questlock_status reports the connected worker's runtime, declared request root, profile, supported schemas/checks and local/paid policy without reading task files or contacting a broker or model. Doctor distinguishes a custom profile from an uninitialized managed profile.
  • Word, character and paragraph checks support inclusive bounds and observed counts. Checks without a complete valid answer are not_evaluated; incomplete, over-budget and nondurable results do not get ordinary quality scores.
  • writing init|plan|record|show builds a local-only prose workflow from an approved reference plus current evidence. Private config pins the reference hash. Changed facts produce a different snapshot; an unchanged approved task can still reuse its valid result.
  • A bounded historical index records reviewed answer metadata and source versions. It verifies new persisted request provenance before indexing, preserves existing entries, and does not extend inference TTL or claim human acceptance.

Validation

Full Go race tests, vet, 96 Python checks, workflow lint, source/history and secret checks passed before publication. Independent release review covered the concrete changes. Platform CI exercises the packaged CLI, both plugins, native Desktop bundle contents, cold retention and reuse, the source container, and a disposable real Langfuse instance.

Isolated native Codex and Claude Code checks discovered the packaged skill and MCP tools without model calls or active settings changes. Packaged writing plans retain the same identity for unchanged input and a different identity for changed evidence. Checked revision/reuse and cold-history recovery used zero model tokens. These are integration/fixture checks, not a claim of general writing quality or whole-chat credit savings. Paid fallback remained disabled and provider API spend was $0.

Questlock was used during development for 34 checked literal packaging/version edits, plus an exact repeat, with zero model calls. Investigation, implementation and final judgment remained with the development agents.

Upgrade and boundaries

Upgrade the worker runtime, then restart or reconnect its MCP process to expose questlock_status and the new checks. A working custom profile does not need to be replaced with managed defaults. Existing fingerprints, published releases and legacy inference reads remain supported. Historical jobs lacking the new request-provenance field can still be reused under their original inference rules; the writing index refuses to attest them.

The writing index is bounded to 128 metadata references and 128 KiB per reference ID. A full index stops new entries without evicting history. Human acceptance, later rewrites and effort remain explicit outcome feedback. A historical reference is not an expired cache hit; the inference reuse maximum remains 24 hours. Broker/provider readiness in worker status remains not_checked.

Writing walkthrough · Count checks and history · Discovery and setup · Budget diagnostics

Fixes #32, #33 and #34 through #35. Download the matching native archive, offline plugin ZIP, or macOS Desktop MCPB below and verify it against checksums.txt.