Repository navigation
ostler: v2.0.0
·
0 commits
to 589dfc38841eac36a651e01b330da180c9b7df42
since this release
2.0.0 (2026-09-11)
⚠ BREAKING CHANGES
- core: bump stablemate config schema to v2
- ostler:
ostler.waivers,Okf.add_doctor_waiver, thewaivedfield on doctor findings and thewaiversepoch input are gone; adocs/doctor-waivers.jsonfile is no longer read. Coverage waivers (coverage --waivers) are a different concern and stay.
Features
- core: let a power tier scale every wall-clock budget (50b5081)
- core: persist a nested config table, and groom's attend settings (3c51cca)
- ostler: add known-defect, a code-fault record with two exits (8654c88)
- ostler: add story-for-node query over code-ref trailers (9f89954)
- ostler: admit mixed candidate status for internal-and-relevant (b3e6d18)
- ostler: advance one file's watermark without rewriting the catalog (9ceae73)
- ostler: ask one question about what a book owes its code (8c9d53b)
- ostler: audit tier-1 candidates by default (6ed3e36)
- ostler: autofix a null equals into an absent check (d97e6aa)
- ostler: autofix drifted verify: test citations into tests: (51b83cd)
- ostler: carry a story-conflict finding for the operator gate (cb894a6)
- ostler: classify seed visual design (b582ed2)
- ostler: classify story acceptance criteria (1496a39)
- ostler: compile repeated families into qa obligations and plans (111a749)
- ostler: concept judgment keys — rule:, prefers:, deprecates: (bba5372)
- ostler: declare detail: on every implementation-bearing node type (c09a13d)
- ostler: delete the doctor waiver register (7f427d6)
- ostler: derive candidate links instead of echoing them in verdicts (188c7cd)
- ostler: derive owning keys from the registry (1f402e1)
- ostler: doctor checks for the judgment gap (b965a1b)
- ostler: exempt field nodes from undeclared-obligation (df451fc)
- ostler: extract PHP behavior candidates (1174c85)
- ostler: extract TypeScript and TSX behavior candidates (fb73043)
- ostler: give every declaration a content watermark (9368d3c)
- ostler: identify stories in QA context packets (ec654da)
- ostler: judgment and unspecified reach the qa context packet (ed75eee)
- ostler: key spec dirs and story identity by the minted id (14664ea)
- ostler: let a config: bullet own a declared configuration file (d87ad6f)
- ostler: let a surface declare itself not exercised (a7af68a)
- ostler: map diffs across source repositories (dea798f)
- ostler: memoize behavior verdicts in the index (d762fb3)
- ostler: migrate legacy stories on demand (c46c914)
- ostler: name the port holder when a stack bring-up fails (cd0b008)
- ostler: parse the one-per repeat grammar for generated elements (3a08fbb)
- ostler: place each step in the recording and pull its frames (2742846)
- ostler: prepare two-way behavior audit packets (efcdcbe)
- ostler: query story and OKF provenance (43e3d6e)
- ostler: read the qa stack from the book's ops nodes (ff0a324)
- ostler: record owned stack processes and reap them across runs (c9da94d)
- ostler: report duplicate-bullet instead of a locator collision (6dd7acc)
- ostler: report uncited exported files without building a packet (ed273e0)
- ostler: resolve stories by external key (51da445)
- ostler: salvage the verdicts a short reply did answer (ed807b1)
- ostler: seed reachability from the surface's root screen (4cdcb34)
- ostler: template-outside-repeat doctor check (f6bff33)
- ostler: trim audit packets to their scope and claim window (4a2abd3)
- ostler: trim rows, import-graph walk, repo declaration (7a99e80)
- ostler: unspecified bullet class with grounded citation (7b1a64f)
- ostler: verify source context freshness (e6cf1d8)
- ostler: warn unminted-claim on a claim no obligation carries (ce6bc00)
- ostler: watermark the whole book, not only its cross-repo refs (77b8049)
Bug Fixes
- ostler: adopted stacks must still pass seed and health gates (1f444c7)
- ostler: bound extract recursion and read text off the source (190495e)
- ostler: brief step failures with the exit code and stdout tail (fb58684)
- ostler: competing-implementations needs a shared symbol (592b33b)
- ostler: competing-implementations skips parts of one declared whole (dafc9e5)
- ostler: exempt a verb alternation from unstated-precondition (a42ea79)
- ostler: film a viewport recording at the viewport (0a70a5c)
- ostler: film the app under test, not the operator's desktop (77852d1)
- ostler: give every finding a ref that names one thing (35fd203)
- ostler: ground Go struct fields and interface methods (2f65f25)
- ostler: guard the member-name walk against an empty field path (3b313b3)
- ostler: hold only stack runbooks to the stack shape (5e75d5d)
- ostler: ignore state-dependent lifecycle alternatives (d53cef7)
- ostler: judge a story by its sections, not by a shape stamp (17619ea)
- ostler: keep audit packets under budget for long go functions (1bea8d9)
- ostler: let a whole and its own parts cite one symbol (cc6ef89)
- ostler: make the backlog and roadmaps configured doc roots (21a4d10)
- ostler: mint a node id from the anchor GitHub renders (8e49593)
- ostler: name the claim in an unstated-precondition finding (3f6d141)
- ostler: pin tree-sitter below 0.26 to stop the audit segfault (bd8d0fd)
- ostler: read failure names out of code spans, not raw prose (021d119)
- ostler: read the semicolon signal off prose, not code spans (973c696)
- ostler: read the semicolon signal outside parentheticals (949669b)
- ostler: refuse a named-key subscript anywhere in a QA plan (b7298cf)
- ostler: reject an excerpt whose bounds overrun its own text (29804f2)
- ostler: report the missing Xvfb once, not twice (6e9f994)
- ostler: retire pre-fix symbol tables from the index (0e8321e)
- ostler: scope extract_book's read, not just its result (8bac76d)
- ostler: skip claims under duplicate node ids in the audit (eb569d1)
- ostler: stop probing "/" when a runbook declares no entry url (86b1eda)
- ostler: stop scoring an aborted scenario as a caught defect (7058cc0)
- ostler: stop the last section advertising a line it does not carry (f7c6d1e)
- ostler: stop two detectors reporting findings no edit can clear (d3f8505)
- ostler: stop unstated-precondition firing where no edit clears it (2aafe95)
- ostler: teach the relation-subject slug shape at every surface (a2d3511)
- ostler: warn about a missing stack only where something is served (5ccdb75)
- paddock: skip .git when copying test fixtures (379271f)
- repoint the guards and this repo's install at the regrouped library (4fc4e9e)
- workhorse: keep a handoff's START in its flow, colour END apart (eb00514)
Performance Improvements
- parallelize Python test suites (ee2f9f2)
Code Refactoring
- base-library: drop the group stutter from skill sources (4681c89)
- core: bump stablemate config schema to v2 (586d593)
- core: move the clock port into shared plumbing (fa5a4f5)
- ostler: answer the findings basedpyright reports (923de54)
- ostler: expose the served-surface predicate (4820be9)
- ostler: inject daemon lifecycle timing (e98cd61)
- ostler: move "what changed since" next to the catalog (0defc23)
- ostler: own the durable QA stack, hard-cut workhorse.stack (6191e5d)
- workflows: give each okf_builder flow its own prompts (232d552)