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
73 changes: 49 additions & 24 deletions .forge/README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,61 @@
# Numinous Forge on this fork
# Numinous Forge on Darkbloom

This fork demonstrates issue repair, prompted engineering work, and pull-request verification on isolated AWS workers. Upstream: [Layr-Labs/d-inference](https://github.com/Layr-Labs/d-inference).
Forge takes an issue, a requested change, or a pull request through isolated execution and verification. This fork shows the resulting code and the evidence behind it. [Upstream Darkbloom](https://github.com/Layr-Labs/d-inference) and its production systems are unchanged.

| Work | Result to inspect |
|---|---|
| Maintain: repair reconnect reputation | [PR #4](https://github.com/numinous-technology/d-inference/pull/4), [regression proof](evidence/issue-regression-proof.json), [task history](evidence/issue-task.json) |
| Repair CI findings: remove streaming lock dependency | [PR #5](https://github.com/numinous-technology/d-inference/pull/5), [regression proof](evidence/streaming-regression-proof.json), [task history](evidence/streaming-task.json) |
| Build: add protocol fuzz coverage | [PR #2](https://github.com/numinous-technology/d-inference/pull/2), [task history](evidence/prompted-task.json) |
| Review: reject broken code | [Closed PR #1](https://github.com/numinous-technology/d-inference/pull/1), [failing CI evidence](evidence/rejected-ci-task.json) |
| Stabilize verification: repair asynchronous test fixtures | [PR #6](https://github.com/numinous-technology/d-inference/pull/6), [before/after proof](evidence/fixture-regression-proof.json), [PR CI](evidence/fixture-ci-task.json) |
| Repeat: run a scheduled check | [Verified occurrence](evidence/scheduled-task.json), [both policy-bound occurrences](evidence/schedule-promotion.json); schedule paused after verification |

```mermaid
flowchart LR
People[Maintainers and contributors] --> Work[Issue or requested change]
Work --> Agent[Pi implementation worker]
Agent --> Checks[Fresh verification workers]
PR[Contributor PR] --> Checks
Checks --> Evidence[Tests, patch, source identity and run history]
Evidence --> Review[Human review and merge]
Review --> Learn[Reviewed updates to skills and checks]
Learn --> Agent
Learn --> Checks
flowchart TB
People[Maintainers and contributors] --> Request[Issue or requested improvement]
People --> PR[Pull request]
Clock[Configured schedule] --> Checks
Request --> Work[Pi implementation worker]
Work --> Checks[Fresh verification workers]
PR --> Checks
Checks --> Evidence[Tests, patch, source identity and task history]
Evidence --> Review[Maintainer review]
Review --> Feedback[Recorded feedback and revision]
Feedback --> Work
Review --> Merge[Merge and release decisions]
Review --> Policy[Reviewed skills and check updates]
Policy --> Work
Policy --> Checks
```

Forge runs the accepted verification policy on fresh EC2 workers. GitHub Actions only submits the commit and reports the outcome; candidate code receives no GitHub or AWS credentials. The verification status belongs to the tested PR commit. Changes to verification policy are promoted by the Forge operator and affect future tasks; existing task evidence retains its original policy.
Maintainers choose scope, resolve behavior questions, and review merges and releases. Contributors bring issues, improvements, and PRs. Forge implements scoped work, runs accepted checks, records attempts, and cleans up workers. Agent output is a candidate until separate verification passes.

The repair demonstrates review as part of the process: the first candidate passed its initial tests but review found a history-selection flaw. Recorded feedback led to a revised candidate and additional tests against memory and real PostgreSQL. Those lessons become versioned checks and skills for future tasks; existing tasks retain their original policy.

CI also exposed a separate pre-existing streaming lock dependency. We retained the failed CI result, reproduced the lock ordering, and submitted a focused repair through the prompted-work lane. When the fork advanced during that task, an explicit continuation carried its reviewed patch and feedback onto the new source; [the superseded task](evidence/streaming-superseded-task.json) remains recorded. A later implementation timed out before exporting its candidate; [the recovery record](evidence/streaming-recovery.json) identifies the successful edits reconstructed from its retained transcript and the new task that verifies them. The platform now preserves unfinished patches on agent deadlines, with a deployed timeout regression in its qualification. CI does not automatically rewrite arbitrary failed PRs; an operator scopes the repair.

## Review the checks and agent instructions

The demo covers Linux coordinator/protocol checks, regression repair, and durable scheduling. Native Apple Silicon, browser, and Rust-specific coverage are explicitly unsupported in the current policy and block affected PRs. A green result does not mean that those unsupported environments were tested. Inherited upstream workflows are disabled in this fork; deployment and release permissions remain with upstream maintainers.
The [accepted policy snapshot](policy/darkbloom.json) lists profiles and required checks. [Engineering instructions](policy/skills/engineering.md) and [reputation instructions](policy/skills/reputation.md) carry reviewed lessons into future tasks. Their [manifest](policy/manifest.json) binds the files to the qualified deployment. Changes can be proposed in this fork; Numinous reviews and deploys them before they affect future work. A candidate PR cannot replace its own accepted checks.

## Operator entry points
## Inspect the evidence

[Infrastructure qualification](evidence/qualification.json) records the tested build and deployment scope. [Qualification history](evidence/qualification-attempts.json) retains failed attempts and their corrections. [Repair PR CI](evidence/issue-ci-task.json) and [prompted PR CI](evidence/prompted-ci-task.json) record verification of each PR's merge with the target branch.

With operator access to the installed CLI:

```sh
forge issue solve https://github.com/Layr-Labs/d-inference/issues/747 --profile reputation --reproduction-check reconnect
forge work submit --prompt-file request.md --profile protocol
forge task list
forge task watch TASK_ID
forge task export TASK_ID ./evidence
forge task publish TASK_ID
forge schedule list
numinous-forge task list
numinous-forge task get 66257843079c685ec7a310c33395c780
numinous-forge task export 66257843079c685ec7a310c33395c780 ./repair-evidence
numinous-forge schedule runs qualification-protocol
```

Issue tasks must first demonstrate their accepted regression test failing. Agent output then goes through fresh verification. Publication checks the candidate tree against the verified tree and opens a draft PR in this fork. Human review decides whether it should merge or be proposed upstream.
Public receipts omit credentials and private infrastructure details. Operator exports contain the complete input, review notes, attempts, logs, and artifact manifests. The platform source is [Numinous Forge](https://github.com/numinous-technology/numinous-forge), currently private.

## Deployment boundary

This deployment covers one project and two concurrent Linux workers. Native Mac/provider, Rust sidecar, and browser-specific coverage are unavailable and block affected CI work. Slack is not installed. Schedules use explicitly pinned commits. The controller is a single instance; durable state and evidence live in Aurora and S3.

The platform is maintained in [Numinous Forge](https://github.com/numinous-technology/numinous-forge). The platform repository is currently private; this fork's CI results and repair PRs are public evidence.
GitHub Actions submits work through a restricted AWS OIDC role; candidate code receives no GitHub or AWS account credentials. Verification uses accepted policy and the pinned PR merge. Inherited upstream deployment and release workflows are disabled in this fork. This demonstration does not claim that all upstream issues are fixed or that unsupported environments were tested.
99 changes: 99 additions & 0 deletions .forge/evidence/fixture-ci-task.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
{
"id": "2f545a2d315f36b1532dffa3fce35976",
"lane": "ci",
"state": "verified",
"policy_digest": "f6b77f17eafcfc1feefc4567319da0e564d02ed90cc71129956ec97444f4781d",
"created_at": "2026-09-06T01:54:37.074538617Z",
"updated_at": "2026-09-06T02:06:38.03952068Z",
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "9a2a01b34c226873ff46bd1aff1633793f6337e2"
},
"verified_tree": "51806b699c11cb766fd004a7ca5a97631d19a172",
"verification_run_ids": [
"adc4073a8a7c57e34c93cb1805a96163",
"6a4911e76767402cbc924b0865089b75",
"1afc01f1726c1bbd2ae1a276314ddd05"
],
"base_sha": "bb28702624322b07e189aa7cb532cd068881b665",
"pr_number": 6,
"verification_source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "a52f1c2ba5cd382766ad0c716db8d4f1f12689fc"
},
"runs": [
{
"id": "adc4073a8a7c57e34c93cb1805a96163",
"stage": "verify",
"attempt": 1,
"run_state": "succeeded",
"check": "protocol",
"outcome": "passed",
"exit_code": 0,
"tree_sha": "51806b699c11cb766fd004a7ca5a97631d19a172",
"tree_after_sha": "51806b699c11cb766fd004a7ca5a97631d19a172",
"input_sha256": "fd80c88e0c0457eca572288264eda3413379eeb17bf27d72f78819556796d34f",
"required_tests": {
"github.com/eigeninference/d-inference/coordinator/protocol::TestCapacityProbeRoundTrip": "pass",
"github.com/eigeninference/d-inference/coordinator/protocol::TestCapacityQuoteRoundTrip": "pass",
"github.com/eigeninference/d-inference/coordinator/protocol::TestInferenceFailureCodeClosedVocabulary": "pass"
},
"tests_completed": 259,
"elapsed_seconds": 15.452413558959961,
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "a52f1c2ba5cd382766ad0c716db8d4f1f12689fc"
},
"result_sha256": "a8569eb4dec93c7e17e2f070cda3e90830126dbc96b83d6544b1d4fa6c6bbdff",
"result_collected": true
},
{
"id": "6a4911e76767402cbc924b0865089b75",
"stage": "verify",
"attempt": 1,
"run_state": "succeeded",
"check": "docs",
"outcome": "passed",
"exit_code": 0,
"tree_sha": "51806b699c11cb766fd004a7ca5a97631d19a172",
"tree_after_sha": "51806b699c11cb766fd004a7ca5a97631d19a172",
"input_sha256": "48bd71f3c60258d15d6242b856f2bd06d709be79a57b74fe3c49e28fe53f599a",
"required_tests": {},
"tests_completed": 0,
"elapsed_seconds": 3.9318313598632812,
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "a52f1c2ba5cd382766ad0c716db8d4f1f12689fc"
},
"result_sha256": "093ebc5158b594e43b9018631d8161c5cfc4591899c5755d74779205cd93ae55",
"result_collected": true
},
{
"id": "1afc01f1726c1bbd2ae1a276314ddd05",
"stage": "verify",
"attempt": 1,
"run_state": "succeeded",
"check": "coordinator",
"outcome": "passed",
"exit_code": 0,
"tree_sha": "51806b699c11cb766fd004a7ca5a97631d19a172",
"tree_after_sha": "51806b699c11cb766fd004a7ca5a97631d19a172",
"input_sha256": "c9d4c3360782d1d0b2bd62b5146a010e818e080bb0831ecf5784ad2278e77062",
"required_tests": {
"github.com/eigeninference/d-inference/coordinator/store::TestPostgresProviderRecordStatsPersisted": "pass"
},
"tests_completed": 4831,
"elapsed_seconds": 264.5525097846985,
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "a52f1c2ba5cd382766ad0c716db8d4f1f12689fc"
},
"result_sha256": "e9fe45fe70d76184cd69be6b0670bb2bf9901d8c460a4619ab2e22b7b5a519b9",
"result_collected": true
}
],
"notes_recorded": 0,
"events_recorded": 6,
"distinct_worker_count": 3,
"verification_tree_consistent": true
}
40 changes: 40 additions & 0 deletions .forge/evidence/fixture-regression-proof.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"base": "9ad2aa17bcb13598804d074c3cdada2aeed80b72",
"patch_sha256": "95aa9db513bed66fd4873229a69dde4fb690b8b009ea379f10ed76af1b4e330a",
"patch_bytes": 4333,
"files": [
"coordinator/api/failover_integration_test.go",
"coordinator/api/me_delete_test.go"
],
"production_files_changed": false,
"baseline_focused_exit_code": 1,
"baseline_delete_failures_of_20": 6,
"fixed_focused_exit_code": 0,
"negative_cleanup_exit_code": 1,
"commands": [
{
"command": "go test -race -json ./coordinator/api -run '^(TestDeleteMyProvider_OnlineConflict409|TestServiceReasoningPolicyTracksAliasCapacityFallback|TestRecoverMiddlewareCatchesPanic)$' -count=20",
"target": "unchanged base",
"log": "base-focused.jsonl",
"exit_code": 1
},
{
"command": "go test -race -json ./coordinator/api -run '^TestFailoverProviderCleanupJoinsActiveScript$' -count=1",
"target": "unchanged base plus new regression only",
"log": "base-cleanup-regression.jsonl",
"exit_code": 1
},
{
"command": "go test -race -json ./coordinator/api -run '^(TestDeleteMyProvider_OnlineConflict409|TestServiceReasoningPolicyTracksAliasCapacityFallback|TestRecoverMiddlewareCatchesPanic|TestFailoverProviderCleanupJoinsActiveScript)$' -count=20",
"target": "fixed test fixtures",
"log": "fixed-focused.jsonl",
"exit_code": 0
}
],
"fixed_race_repetitions": 20,
"evidence_sha256": {
"base-focused.jsonl": "bdea574c862c8309a04d4c025d033120f0234a0bbe1c51dd666d5148d3c832ed",
"base-cleanup-regression.jsonl": "e5b2b2079a2cb6769a8b5efe3a75b877bbacdf669b2c4f7f70498b4f0e1b28ab",
"fixed-focused.jsonl": "bc2ae27e86937f1d3fbfc2d478ab1835b0c500b84c09b11740dff073dc4cfec0"
}
}
99 changes: 99 additions & 0 deletions .forge/evidence/issue-ci-task.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
{
"id": "2024d2136b28a2ffd56d89ead9ac74ff",
"lane": "ci",
"state": "verified",
"policy_digest": "f6b77f17eafcfc1feefc4567319da0e564d02ed90cc71129956ec97444f4781d",
"created_at": "2026-09-06T00:17:30.04642831Z",
"updated_at": "2026-09-06T00:30:34.710979635Z",
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "c5bdd4230bebc58615b4160d5939e94033c5f358"
},
"verified_tree": "1ee18fef5e15958a1c06f21d34b341805f8279c3",
"verification_run_ids": [
"3394e6d9d5a585fabb9961ce3bb765a6",
"b75a0684e375a8451eba29e3af76cca9",
"557f24e5a1f0bc38468f78e48289335a"
],
"base_sha": "ab9e8aa7a9143a7864349618fbdcae94094c93a6",
"pr_number": 4,
"verification_source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "deb9d0e49fa03172975d3e600626941863305c5e"
},
"runs": [
{
"id": "3394e6d9d5a585fabb9961ce3bb765a6",
"stage": "verify",
"attempt": 1,
"run_state": "succeeded",
"check": "protocol",
"outcome": "passed",
"exit_code": 0,
"tree_sha": "1ee18fef5e15958a1c06f21d34b341805f8279c3",
"tree_after_sha": "1ee18fef5e15958a1c06f21d34b341805f8279c3",
"input_sha256": "4c2cdedd7cd26fd15012866058945494b1a2954b28fe9b2b13823637e9ad92e8",
"required_tests": {
"github.com/eigeninference/d-inference/coordinator/protocol::TestCapacityProbeRoundTrip": "pass",
"github.com/eigeninference/d-inference/coordinator/protocol::TestCapacityQuoteRoundTrip": "pass",
"github.com/eigeninference/d-inference/coordinator/protocol::TestInferenceFailureCodeClosedVocabulary": "pass"
},
"tests_completed": 259,
"elapsed_seconds": 16.655038833618164,
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "deb9d0e49fa03172975d3e600626941863305c5e"
},
"result_sha256": "b5bc4907524447e9fec85a39959b4b561ad6064c040d45fd5be62f33820d045f",
"result_collected": true
},
{
"id": "b75a0684e375a8451eba29e3af76cca9",
"stage": "verify",
"attempt": 1,
"run_state": "succeeded",
"check": "docs",
"outcome": "passed",
"exit_code": 0,
"tree_sha": "1ee18fef5e15958a1c06f21d34b341805f8279c3",
"tree_after_sha": "1ee18fef5e15958a1c06f21d34b341805f8279c3",
"input_sha256": "9deb32315570d7a1035cf461efe857a7856bbb332dc7bb4fd0efcba7939650e9",
"required_tests": {},
"tests_completed": 0,
"elapsed_seconds": 4.1011528968811035,
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "deb9d0e49fa03172975d3e600626941863305c5e"
},
"result_sha256": "fde8dcda571f609cb298d688b82b4a8c2f2f79aa3945022f71d1fc5d5eae70fe",
"result_collected": true
},
{
"id": "557f24e5a1f0bc38468f78e48289335a",
"stage": "verify",
"attempt": 1,
"run_state": "succeeded",
"check": "coordinator",
"outcome": "passed",
"exit_code": 0,
"tree_sha": "1ee18fef5e15958a1c06f21d34b341805f8279c3",
"tree_after_sha": "1ee18fef5e15958a1c06f21d34b341805f8279c3",
"input_sha256": "f6c9851a1424fae0c870db78d900bec5fa7fb68979519d21bee707cea93a58ff",
"required_tests": {
"github.com/eigeninference/d-inference/coordinator/store::TestPostgresProviderRecordStatsPersisted": "pass"
},
"tests_completed": 4817,
"elapsed_seconds": 282.5478456020355,
"source": {
"repo": "https://github.com/numinous-technology/d-inference.git",
"commit": "deb9d0e49fa03172975d3e600626941863305c5e"
},
"result_sha256": "a3725e4f09257d34a7d96ee234b8bdf95cea0fedae422584e978d96ab1949843",
"result_collected": true
}
],
"notes_recorded": 0,
"events_recorded": 6,
"distinct_worker_count": 3,
"verification_tree_consistent": true
}
Loading
Loading