Skip to content

in-lockstep 0.3.1

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Sep 16:59
· 53 commits to main since this release
83ede9a
uv tool install 'in-lockstep[anthropic]'

Provider extras: anthropic, openai, google, bedrock, all. Python 3.11 or newer.

What's Changed

  • feat(workflows): the shipped processes are framework code, not copied source by @tpouyer in #261
  • feat(cli): show-workflow replaces --eject, because reading is not forking by @tpouyer in #262
  • docs: a documented snippet raised DuplicateWorkflow, and --eject is gone by @tpouyer in #276
  • feat(detect): read Cargo.toml, go.mod, pom.xml and build.gradle, and decline by name by @tpouyer in #277
  • fix(config): probe full ref paths, so a base branch with a slash resolves by @tpouyer in #278
  • fix(review): check a finding's path and line against the change, not against nothing by @tpouyer in #279
  • fix(ci): run provision here, and stop discarding doctor's verdict by @tpouyer in #280
  • fix(record): every model call is kept, through a binding we did not build by @tpouyer in #281
  • The mission named two things no objective carried, and Policy carried five fields nothing enforced by @tpouyer in #282
  • feat(ci): the write verbs run under GitLab, and a citation that resolves by @tpouyer in #283
  • fix(status): a control refusing is not the work going wrong, and a replay is not a judgment by @tpouyer in #284
  • refactor(cli): name the composition root, and pin what it may decide by @tpouyer in #285
  • fix(eval): harvest reads the shipped sidecar, and the first case is promoted by @tpouyer in #286
  • feat(improve): the learning loop drafts one body, measures it against the corpus, and proposes it by @tpouyer in #287
  • feat(report): group by asker, so a team can see whether people get consistent results by @tpouyer in #288
  • fix(ai): a malformed structured reply is re-prompted once, with the parser's own words by @tpouyer in #290
  • docs(extending): every documented snippet type-checks under the mypy an adopter runs by @tpouyer in #291
  • fix(examples): the worked examples type-check, one invocation each, and the exemption is gone by @tpouyer in #292
  • fix(tests): the suite type-checks under strict less disallow_untyped_defs, and the override that said so matches by @tpouyer in #293
  • docs(needs): the closing section reads the ledger, and a test keeps it agreeing with the table by @tpouyer in #296
  • fix(ruff): the default path list is a typed tuple, so a string there is refused before it unpacks by @tpouyer in #297
  • feat(review): a lens is a declared object, and init --review scaffolds a lens on request by @tpouyer in #298
  • fix(retry): retire the action-level Retry middleware, which nothing constructed by @tpouyer in #299
  • fix(outcome): GATE-OUT-2 holds on the clause that is real, and SKIPPED goes with the cache nobody wrote by @tpouyer in #300
  • docs(objectives): the held gates no objective cites are counted, and the count is a two-sided ratchet by @tpouyer in #301
  • fix(registry): a verb that needs a model capability is refused a model registered without it, by name by @tpouyer in #302
  • fix(review): a mistyped --aspect is an error before the run id exists, and the marker escapes its argument by @tpouyer in #303
  • feat(ledger): an opt-in local identity, so a team's local runs can be compared (GATE-TEAM-2) by @tpouyer in #304
  • fix(ledger): a CI review's record reaches lockstep-history, or report says how many have not by @tpouyer in #305
  • fix(history): a flagged rewrite can be acknowledged by name, and only then stops being an alarm by @tpouyer in #306
  • docs(plan): the plan that completes the mission by @tpouyer in #320
  • fix(ledger): a checkout with only the remote-tracking ref reads the shared ledger, and history --pull merges it by @tpouyer in #321
  • fix(pytest): a run that reports nothing decides nothing, and run_tests refuses option-shaped paths by @tpouyer in #322
  • fix(ledger): the sweep absorbs every bundle, not one per run by @tpouyer in #324
  • fix(registry): the endpoint refusal compares what the client will dial by @tpouyer in #325
  • fix(improve): a harvested case names its provider, and the after arm is re-asked through the shipped factory by @tpouyer in #326
  • fix(docs): the documented body path resolves, doctor sees a bound body that cannot, and skills and contexts are documented by @tpouyer in #327
  • fix(init): scaffolds decline where detection declined, derive the image, and stop lagging our own workflows by @tpouyer in #328
  • fix(sandbox): model-staged tests run in a container or the run refuses by name by @tpouyer in #329
  • fix(gitlab): four verbs on GitLab, parity in both directions, and no logic in any lifecycle workflow by @tpouyer in #330
  • chore(dogfood): the Test container carries git, or no fix here can go green by @tpouyer in #331
  • fix(dogfood): what this repository's first /fix on itself found by @tpouyer in #333
  • fix(sandbox): a staged test's killed children are reaped, and the container sees the suite's tools by @tpouyer in #334
  • fix(tests): the lifecycle module's ruff check resolves ruff the way selfcheck does by @tpouyer in #335
  • fix(sandbox): the container runs as the host user, so the tree it is handed is writable by @tpouyer in #336
  • fix(sandbox): the host uid inside the container has a name by @tpouyer in #338
  • feat(ai): a session that makes no progress stops, instead of running to whichever ceiling comes first by @tpouyer in #339
  • fix(ai): the idle ceiling is doubled before the first write, so reading is not cut off by @tpouyer in #340
  • feat(ai): edit_file replaces one passage of a file and stages the result by @tpouyer in #341
  • fix(fix): red is a claim about the tests alone, and a session reads what it staged by @tpouyer in #342
  • fix(ledger): a reconcile or absorb refuses a run-id collision with different content instead of replacing the record by @github-actions[bot] in #343
  • fix(propose): a fix's cover note reaches its pull request, and the title is the ticket's by @tpouyer in #344
  • feat(review): each lens of the required check posts its own sticky comment on the pull request by @tpouyer in #345
  • chore(dogfood): the loop has closed here, and a gate keeps it closed by @tpouyer in #346
  • fix(review): the review-on-request job hands gh its token, and a gh that could not ask is not "not a pull request" by @tpouyer in #347
  • feat(core): JoinResult and in-run fan-out, machine branches only by @tpouyer in #348
  • chore(dogfood): the chat-ops review clause closed, and every bundle is uploaded under the name the sweep lists by @tpouyer in #349
  • feat(ledger): GitLedger(shared=True) provides compare-and-set over the remote ref by @tpouyer in #350
  • feat(core): ctx.park, ctx.human and the barrier tick by @tpouyer in #351
  • feat(dogfood): the required review check is one fan-out over every bound lens, and improve parks on its own draft by @tpouyer in #352
  • fix(ledger): the fixture refusal asks the remote what the branch already holds by @tpouyer in #353
  • feat(dogfood): the required check runs review/all-lenses by @tpouyer in #354
  • feat(evaluation): a rubric is parsed, and a verdict handed in settles it by @tpouyer in #355
  • feat(judge): a routed, priced, recorded judge call by @tpouyer in #356
  • feat(improve): the measuring arms judge their rubrics by @tpouyer in #357
  • fix(judge): a judge nobody could reach decided nothing by @tpouyer in #358
  • chore(evidence): the judge is routed at Haiku, and the promoted case carries its first verdict by @tpouyer in #359
  • feat(detect): read the seven manifests GATE-TOOLING-3 names, deriving only what each toolchain guarantees by @tpouyer in #360
  • feat(ledger): report --around compares the runs after a merged proposal with the runs before by @tpouyer in #361
  • fix(ledger): a fan-out's lens steps carry their own subject and bill by @tpouyer in #362
  • docs(objectives): O13 carries the mission's disciplined clause by @tpouyer in #363
  • docs(ledger): the ratchet discharges on a collected test's name, and every row says what its test proves by @tpouyer in #364
  • docs: every page says what main does now by @tpouyer in #367
  • docs(gates): three rows stop pointing at a roadmap that exists in no file by @tpouyer in #368
  • feat(report): the runs that carry a workflow id get a row each under "by workflow" by @tpouyer in #369
  • feat(ai): a model can delegate one task to a nested session over a subset of its tools by @tpouyer in #370
  • fix(adapters): a Test bound at a package directory runs there inside a materialised worktree by @tpouyer in #372
  • chore(release): 0.3.1 by @tpouyer in #374

New Contributors

  • @github-actions[bot] made their first contribution in #343

Full Changelog: v0.3.0...v0.3.1