Repository navigation
Questlock v0.13.0
Pre-releaseLocal 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_exceededdirectly. Conservative estimates stay conservative; there is no hidden cap increase or retry. questlock_statusreports 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|showbuilds 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.