Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"packages/gittensory-mcp": "0.7.1",
"packages/gittensory-engine": "0.2.0"
"packages/gittensory-engine": "1.0.0"
}
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

73 changes: 73 additions & 0 deletions packages/gittensory-engine/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,78 @@
# Changelog

## [1.0.0](https://github.com/JSONbored/gittensory/compare/engine-v0.2.0...engine-v1.0.0) (2026-07-10)


### ⚠ BREAKING CHANGES

* **engine:** bound miner-goal-spec list scanning, remove the orphaned duplicate parser ([#4318](https://github.com/JSONbored/gittensory/issues/4318))

### Features

* **commands:** add the maintainer-only [@gittensory](https://github.com/gittensory) generate-tests command ([#4211](https://github.com/JSONbored/gittensory/issues/4211)) ([e3b83c8](https://github.com/JSONbored/gittensory/commit/e3b83c8e9cd4e6b5912b279f5119229605eaf484))
* **engine:** extract buildIssueRagQuery to gittensory-engine ([#4342](https://github.com/JSONbored/gittensory/issues/4342)) ([c823f9c](https://github.com/JSONbored/gittensory/commit/c823f9c5cf59fb8d596f3c93f1749127622b25a8)), closes [#4254](https://github.com/JSONbored/gittensory/issues/4254)
* **engine:** extract computeLocalScorerTokens to gittensory-engine ([#4371](https://github.com/JSONbored/gittensory/issues/4371)) ([d276cde](https://github.com/JSONbored/gittensory/commit/d276cde5ea21214b45b67a3567a2ab4289a1298a)), closes [#4253](https://github.com/JSONbored/gittensory/issues/4253)
* **engine:** extract isFailingCheckSummary to gittensory-engine ([#4256](https://github.com/JSONbored/gittensory/issues/4256)) ([#4377](https://github.com/JSONbored/gittensory/issues/4377)) ([1eeef60](https://github.com/JSONbored/gittensory/commit/1eeef606207657773734a5291ad9cbc23e7206ed))
* **engine:** extract path-matchers.ts's pure classifier family to gittensory-engine ([#4252](https://github.com/JSONbored/gittensory/issues/4252)) ([#4444](https://github.com/JSONbored/gittensory/issues/4444)) ([6a4f54c](https://github.com/JSONbored/gittensory/commit/6a4f54cc5b950b7b5293599340374fb882814725))
* **governor:** add budget/turn/termination cap calculator ([#4374](https://github.com/JSONbored/gittensory/issues/4374)) ([c8f8316](https://github.com/JSONbored/gittensory/commit/c8f83165f59458c83d1d7f72c853c0420d268ab5)), closes [#4288](https://github.com/JSONbored/gittensory/issues/4288)
* **miner-concurrency:** add git-worktree-per-attempt pool allocator ([#4297](https://github.com/JSONbored/gittensory/issues/4297)) ([#4598](https://github.com/JSONbored/gittensory/issues/4598)) ([14c3a25](https://github.com/JSONbored/gittensory/commit/14c3a2590afa54351863458f3fbd45e56cf70b4a))
* **miner-config:** parse a feasibilityGate policy block from .gittensory-miner.yml ([a6c33b6](https://github.com/JSONbored/gittensory/commit/a6c33b69a8bdec80251dd676d7531c68a4319aa4))
* **miner-config:** parse a feasibilityGate policy block from .gittensory-miner.yml ([#4275](https://github.com/JSONbored/gittensory/issues/4275)) ([f044dc5](https://github.com/JSONbored/gittensory/commit/f044dc5144ecd44915d4597e5df9a8cbeae67a52))
* **miner-discovery-plane:** add anonymized telemetry event schema for the hosted plane ([#4301](https://github.com/JSONbored/gittensory/issues/4301)) ([#4438](https://github.com/JSONbored/gittensory/issues/4438)) ([4daceaa](https://github.com/JSONbored/gittensory/commit/4daceaaa16da484d4eb55972bba0dff037fdd918))
* **miner-discovery-plane:** add the client-side soft-claim coordination request builder ([#4443](https://github.com/JSONbored/gittensory/issues/4443)) ([58e08e9](https://github.com/JSONbored/gittensory/commit/58e08e9a352bc7ad3082218fb22fc0b30db644e5)), closes [#4302](https://github.com/JSONbored/gittensory/issues/4302)
* **miner-discovery-plane:** define the public-data-only discovery-index API contract ([#4436](https://github.com/JSONbored/gittensory/issues/4436)) ([e021f2a](https://github.com/JSONbored/gittensory/commit/e021f2a06deca542ecd0ff6e448a6310d86d7694)), closes [#4300](https://github.com/JSONbored/gittensory/issues/4300)
* **miner-hands:** add coding-agent dry-run mode and driver seam ([#4313](https://github.com/JSONbored/gittensory/issues/4313)) ([#4347](https://github.com/JSONbored/gittensory/issues/4347)) ([feb2ba8](https://github.com/JSONbored/gittensory/commit/feb2ba8a2d60c03da84160364761f8eda6fbfb9f))
* **miner-hands:** add driver attempt log persistence and JSONL export ([#4294](https://github.com/JSONbored/gittensory/issues/4294)) ([#4576](https://github.com/JSONbored/gittensory/issues/4576)) ([97e91d4](https://github.com/JSONbored/gittensory/commit/97e91d44b4a30302acf8d82292c4ec7c6e028fa8))
* **miner-hands:** add pure per-attempt cost/turn metering to gittensory-engine ([564a27c](https://github.com/JSONbored/gittensory/commit/564a27c8cf7694bbd49aa140870f187b42e6d877))
* **miner-hands:** add pure per-attempt cost/turn metering to gittensory-engine ([d928849](https://github.com/JSONbored/gittensory/commit/d9288498b795c0a611ccfaf815b3000d781bf4f5)), closes [#4311](https://github.com/JSONbored/gittensory/issues/4311)
* **miner-hands:** add shared subprocess redaction/env-allowlist helper to gittensory-engine ([#4284](https://github.com/JSONbored/gittensory/issues/4284)) ([9796e9c](https://github.com/JSONbored/gittensory/commit/9796e9c282b8bfa6fde5d19a7be71c1147505ce3))
* **miner-hands:** add shared subprocess redaction/env-allowlist helper to gittensory-engine ([#4284](https://github.com/JSONbored/gittensory/issues/4284)) ([eaea6c9](https://github.com/JSONbored/gittensory/commit/eaea6c9edbb6141cc7452c7666f72764e30a05ec))
* **miner-hands:** Agent-SDK CodingAgentDriver (query() loop) ([#4548](https://github.com/JSONbored/gittensory/issues/4548)) ([8f492f2](https://github.com/JSONbored/gittensory/commit/8f492f226207aec9ec6cb3069c5fe553caa53b1e))
* **miner-hands:** CLI-subprocess CodingAgentDriver ([#4531](https://github.com/JSONbored/gittensory/issues/4531)) ([b7a4477](https://github.com/JSONbored/gittensory/commit/b7a4477f7e4caa2d8cd9963355b31237e391e942)), closes [#4266](https://github.com/JSONbored/gittensory/issues/4266)
* **miner-hands:** CodingAgentDriver factory + provider-style config resolution ([#4289](https://github.com/JSONbored/gittensory/issues/4289)) ([#4633](https://github.com/JSONbored/gittensory/issues/4633)) ([30b62ae](https://github.com/JSONbored/gittensory/commit/30b62ae47707f049851dfdaa7c917e6ea2e48465))
* **miner-hands:** compose an immutable per-attempt acceptance-criteria document ([#4449](https://github.com/JSONbored/gittensory/issues/4449)) ([861e8b7](https://github.com/JSONbored/gittensory/commit/861e8b710fc0d25990dc5be39f98a840bee11db5)), closes [#4271](https://github.com/JSONbored/gittensory/issues/4271)
* **miner-hands:** git-worktree-per-attempt isolation primitive ([#4547](https://github.com/JSONbored/gittensory/issues/4547)) ([69bd6c2](https://github.com/JSONbored/gittensory/commit/69bd6c2626c268378883878a6defef57f453ebac)), closes [#4269](https://github.com/JSONbored/gittensory/issues/4269)
* **miner-hands:** lint-guarded edit wrapper for coding-agent drivers ([#4276](https://github.com/JSONbored/gittensory/issues/4276)) ([#4486](https://github.com/JSONbored/gittensory/issues/4486)) ([ed96eca](https://github.com/JSONbored/gittensory/commit/ed96eca6435a6787d99f7633795992bcbb97f01b))
* **miner-hands:** tree-sitter-based repo map builder ([#4542](https://github.com/JSONbored/gittensory/issues/4542)) ([604d971](https://github.com/JSONbored/gittensory/commit/604d9714b2df551bc75aeb6d8617be3b91ec57a4)), closes [#4280](https://github.com/JSONbored/gittensory/issues/4280)
* **miner-plan:** issue-to-plan decomposition heuristic ([#4292](https://github.com/JSONbored/gittensory/issues/4292)) ([#4339](https://github.com/JSONbored/gittensory/issues/4339)) ([e580525](https://github.com/JSONbored/gittensory/commit/e58052599b290df32aa4e85cbc7f4118e49476c9))
* **miner-portfolio:** add pure non-convergence detector to gittensory-engine ([4ce12f8](https://github.com/JSONbored/gittensory/commit/4ce12f86856c5d44c9a938ed360a545716a69148))
* **miner-portfolio:** add pure non-convergence detector to gittensory-engine ([883c333](https://github.com/JSONbored/gittensory/commit/883c3337b499145aba3171c5717b76ce65242479)), closes [#4286](https://github.com/JSONbored/gittensory/issues/4286)
* **miner-scale:** add fleet run-manifest for multi-repo worktree scheduling ([4cf2adb](https://github.com/JSONbored/gittensory/commit/4cf2adb4151265f54c01350b71f33e40b420e7be))
* **miner-scale:** add fleet run-manifest for multi-repo worktree scheduling ([e6ef86c](https://github.com/JSONbored/gittensory/commit/e6ef86cf055c06c65a7d4162debc04c841667a96)), closes [#4299](https://github.com/JSONbored/gittensory/issues/4299)
* **miner-selfimprove:** calibration accuracy-trend view over a snapshot series ([#4639](https://github.com/JSONbored/gittensory/issues/4639)) ([2e9bbb6](https://github.com/JSONbored/gittensory/commit/2e9bbb60910e2c6110a07356a58aeca6d73889e5)), closes [#4268](https://github.com/JSONbored/gittensory/issues/4268)
* **miner-selfimprove:** engine-parity drift detector ([#4260](https://github.com/JSONbored/gittensory/issues/4260)) ([06ce0a1](https://github.com/JSONbored/gittensory/commit/06ce0a162ea54d61552408e721f39dc0a6e56250))
* **miner-selfimprove:** engine-parity drift detector ([#4260](https://github.com/JSONbored/gittensory/issues/4260)) ([df22953](https://github.com/JSONbored/gittensory/commit/df229537c83c3ad3c178aba9b218078a3c245a63))
* **miner-selfimprove:** read-only calibration dashboard view ([#4504](https://github.com/JSONbored/gittensory/issues/4504)) ([363305c](https://github.com/JSONbored/gittensory/commit/363305c297971ba2df99d710046b3584994b0cea)), closes [#4261](https://github.com/JSONbored/gittensory/issues/4261)
* **miner-selfimprove:** render prediction-calibration Prometheus metrics ([#4461](https://github.com/JSONbored/gittensory/issues/4461)) ([da9952f](https://github.com/JSONbored/gittensory/commit/da9952f13d6b65bce22e18d7b562684736affcdd)), closes [#4264](https://github.com/JSONbored/gittensory/issues/4264)
* **notifications:** config-as-code overrides for the maintainer recap cadence ([d38239a](https://github.com/JSONbored/gittensory/commit/d38239a9e2d7687cbe83bb6bb898b0b62c82cc6f))
* **notifications:** config-as-code overrides for the maintainer recap cadence ([6773ff8](https://github.com/JSONbored/gittensory/commit/6773ff8cbb3c32ee98c7e16cf68107137f59969b))
* **review:** one-shot AI review cadence, configurable globally + per repo ([#4657](https://github.com/JSONbored/gittensory/issues/4657)) ([aa1ffb8](https://github.com/JSONbored/gittensory/commit/aa1ffb8ff46c80e71bba1046cb4156a4e43ed68a))
* **review:** push generated E2E tests as a real PR-branch commit ([#4197](https://github.com/JSONbored/gittensory/issues/4197), [#4201](https://github.com/JSONbored/gittensory/issues/4201)) ([#4245](https://github.com/JSONbored/gittensory/issues/4245)) ([7b35640](https://github.com/JSONbored/gittensory/commit/7b35640a4dabf934fbb51e693cdec4f7fbd1ded1))
* **review:** register e2eTests as the sixth converged-feature key ([#4206](https://github.com/JSONbored/gittensory/issues/4206)) ([0cb6854](https://github.com/JSONbored/gittensory/commit/0cb6854aef4d54a98f3e2e978dcfc451d273e7b9))
* **review:** reuse review.instructions/pathInstructions for E2E test generation ([#4208](https://github.com/JSONbored/gittensory/issues/4208)) ([24d058a](https://github.com/JSONbored/gittensory/commit/24d058a5b9986730abf8abe42bbdc188c011ac07))
* **review:** viewport x theme completeness matrix for the screenshot-table gate ([#4545](https://github.com/JSONbored/gittensory/issues/4545)) ([afd731e](https://github.com/JSONbored/gittensory/commit/afd731ec57833a3ab6b88c56f4d7cfca8bcdbf94))
* **selfhost:** local-inference binding for advisory-tier AI capabilities (AI_ADVISORY) ([#4388](https://github.com/JSONbored/gittensory/issues/4388)) ([dc37aea](https://github.com/JSONbored/gittensory/commit/dc37aea37d204dea7071422ba7311a1e252abf44))
* **settings:** per-repo override of the global agent-freeze kill-switch ([#4375](https://github.com/JSONbored/gittensory/issues/4375)) ([1b6fa8c](https://github.com/JSONbored/gittensory/commit/1b6fa8c3ecf78261daf6c3dcbad927ad60a2a5df))


### Fixes

* **#4260:** rebase on main and address review blockers ([f256671](https://github.com/JSONbored/gittensory/commit/f25667101f1a2c1091565ce373b50b308dfb0f02))
* **engine:** bound miner-goal-spec list scanning, remove the orphaned duplicate parser ([#4318](https://github.com/JSONbored/gittensory/issues/4318)) ([d329591](https://github.com/JSONbored/gittensory/commit/d329591ce287e11a91eb25d877e41f68dd1c99a8))
* **engine:** consolidate duplicate-winner.ts byte-identical copies ([#4251](https://github.com/JSONbored/gittensory/issues/4251)) ([#4373](https://github.com/JSONbored/gittensory/issues/4373)) ([e44918d](https://github.com/JSONbored/gittensory/commit/e44918d2fe6134961f261bceafa8763ffc4719b7))
* **engine:** correct Cartfile.resolved regex and cover it with parity checks ([#4638](https://github.com/JSONbored/gittensory/issues/4638)) ([a23acba](https://github.com/JSONbored/gittensory/commit/a23acba75a1f3d1a2e648e07710241a7cf52812f))
* **engine:** defer repo-map's createRequire past module scope to unbreak the api Worker deploy ([#4590](https://github.com/JSONbored/gittensory/issues/4590)) ([8f9f2cb](https://github.com/JSONbored/gittensory/commit/8f9f2cb6272fa80a3ef266d4fc47f17ef64e1c27))
* **engine:** resync linked-issue-label-propagation comment drift ([e53472e](https://github.com/JSONbored/gittensory/commit/e53472ef35423020668e9075072a2b161fa41211))
* **manifest:** keep freeze override operator-only ([#4391](https://github.com/JSONbored/gittensory/issues/4391)) ([c52fdb9](https://github.com/JSONbored/gittensory/commit/c52fdb98f2a75bdbf14c5a37e6f7b7b1158c5c3c))
* **manifest:** restore agentGlobalFreezeOverride for the operator-private config source ([#4410](https://github.com/JSONbored/gittensory/issues/4410)) ([9ab4146](https://github.com/JSONbored/gittensory/commit/9ab41467af673575bdb768baf02969dda95495c5))
* **miner-hands:** reject malformed attempt metering numbers ([#4488](https://github.com/JSONbored/gittensory/issues/4488)) ([906d183](https://github.com/JSONbored/gittensory/commit/906d183a5dabb2e677bde2abd28503f7656c9210))
* **miner:** reject unsafe telemetry metric names ([#4487](https://github.com/JSONbored/gittensory/issues/4487)) ([c074efd](https://github.com/JSONbored/gittensory/commit/c074efd8638470d32dc77e3209c40a4e5a4f05ae))
* **review:** append the contributor skill-file link without losing the specific rejection reason ([#4556](https://github.com/JSONbored/gittensory/issues/4556)) ([39f5213](https://github.com/JSONbored/gittensory/commit/39f52130b551fcfb7d03cc7cf5ae7324089021b8))
* **review:** let a reward mapping opt into maintainer-authored-issue trust ([f13706f](https://github.com/JSONbored/gittensory/commit/f13706f54147e7729ca5b2dee89b570b5dd2d3e3))
* **review:** let a reward mapping opt into maintainer-authored-issue trust ([304e88c](https://github.com/JSONbored/gittensory/commit/304e88c7c209fcba7ce9fc35d8804d3dd339d7c7))
* **review:** per-repo review.visual.production_url override for bot-capture ([#4564](https://github.com/JSONbored/gittensory/issues/4564)) ([e063f55](https://github.com/JSONbored/gittensory/commit/e063f55ff1ebf8402da565a5034b1f5b201106bd))
* **review:** resolve dead aiReviewCloseConfidence floor with a configurable disposition ([#4656](https://github.com/JSONbored/gittensory/issues/4656)) ([3a3cd7f](https://github.com/JSONbored/gittensory/commit/3a3cd7f816b259e21923dd9e0040194da36040e3))

## [0.2.0](https://github.com/JSONbored/gittensory/compare/engine-v0.1.0...engine-v0.2.0) (2026-07-08)


Expand Down
2 changes: 1 addition & 1 deletion packages/gittensory-engine/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@jsonbored/gittensory-engine",
"version": "0.2.0",
"version": "1.0.0",
"license": "AGPL-3.0-only",
"type": "module",
"description": "Shared deterministic engine logic for the Gittensory review stack and gittensory-miner.",
Expand Down
2 changes: 1 addition & 1 deletion packages/gittensory-mcp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"build": "node --check bin/gittensory-mcp.js && node --check lib/local-branch.js && node --check lib/format-table.js && node --check scripts/gittensor-score-preview.mjs"
},
"dependencies": {
"@jsonbored/gittensory-engine": ">=0.1.0 <1.0.0",
"@jsonbored/gittensory-engine": "^1.0.0",
"@modelcontextprotocol/sdk": "1.29.0",
"zod": "^4.4.3"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/gittensory-miner/expected-engine.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.2.0
1.0.0
2 changes: 1 addition & 1 deletion packages/gittensory-miner/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"build": "node --check bin/gittensory-miner.js && node --check lib/version.js && node --check lib/local-store.js && node --check lib/cli.js && node --check lib/deny-check.js && node --check lib/run-state-cli.js && node --check lib/update-check.js && node --check lib/worktree-allocator.js && node --check lib/opportunity-fanout.js && node --check lib/ci-poller.js && node --check lib/run-state.js && node --check lib/deny-hooks.js && node --check lib/event-ledger.js && node --check lib/event-ledger-cli.js && node --check lib/claim-ledger.js && node --check lib/claim-ledger-expiry.js && node --check lib/claim-ledger-cli.js && node --check lib/claim-adjudication.js && node --check lib/portfolio-queue.js && node --check lib/portfolio-queue-cli.js && node --check lib/portfolio-queue-manager.js && node --check lib/portfolio-discovery.js && node --check lib/opportunity-ranker.js && node --check lib/plan-store.js && node --check lib/plan-store-cli.js && node --check lib/rejection-templates.js && node --check lib/governor-ledger.js && node --check lib/governor-ledger-cli.js && node --check lib/attempt-log.js && node --check lib/manage-status.js && node --check lib/manage-poll.js && node --check lib/status.js && node --check lib/laptop-init.js && node --check lib/replay-objective-anchor.js && node --check lib/replay-task-generation.js && node --check lib/calibration-types.js && node --check lib/calibration.js"
},
"dependencies": {
"@jsonbored/gittensory-engine": ">=0.1.0 <1.0.0"
"@jsonbored/gittensory-engine": "*"
},
"engines": {
"node": ">=22.13.0"
Expand Down
6 changes: 5 additions & 1 deletion test/unit/check-engine-parity-script.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,12 @@ describe("check-engine-parity script", () => {
});

it("uses default version readers against the real monorepo workspace", () => {
// Deliberately NOT a hardcoded literal (e.g. "0.2.0") -- that exact-value assertion would go stale on
// every single engine release, exactly like the sibling hand-synced values this whole file exists to
// catch drift in. The real invariant is that the reader returns a well-shaped semver AND that it
// agrees with the installed version, which runEngineParityChecks below already verifies directly.
expect(defaultResolveInstalledEngineVersion(process.cwd())).toMatch(/^\d+\.\d+\.\d+$/);
expect(defaultReadExpectedEngineVersion(process.cwd())).toBe("0.2.0");
expect(defaultReadExpectedEngineVersion(process.cwd())).toMatch(/^\d+\.\d+\.\d+$/);
const result = runEngineParityChecks({ root: process.cwd() });
expect(result.failures).toEqual([]);
});
Expand Down
Loading