From 3ddc12e9f3bebda55574b5abe650dbe8d392490f Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 13 Sep 2026 14:05:19 +0200 Subject: [PATCH 1/2] REC-100/REC-101: drop impossible gitlink requirement and fictitious RUST_LOG passthrough MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit deployment/idunn/recipe.toml declared required_gitlinks = ["vendor/cultcache-rs", "vendor/cultnet-rs"], but HEAD (6519289, "Consume the core stack from CultLib instead of forking it") already deleted both vendor directories and .gitmodules. Idunn's TargetDeclaration::admit() (F:/Projects/Idunn/src/ deployment.rs:1390-1399) requires the operator's bound gitlink set to match required_gitlinks exactly, so with no vendor dirs left to bind, this recipe cannot currently be admitted at all — a live deployment defect, not just dead text. required_gitlinks is #[serde(default)] (deployment.rs:26-27), so dropping the line is a valid empty declaration, not a schema violation. Also drops optional_environment = ["RUST_LOG"]: the recipe declares Idunn may forward an operator-set RUST_LOG into the child process, but src/provider_backend.rs:634 unconditionally overwrites it with .env("RUST_LOG", "warn") right before spawn. The declaration currently promises a passthrough the code never honors. Kill attempts that failed to find a live consumer of the removed lines: - git ls-tree origin/main -- vendor/: empty. No .gitmodules file exists. - git grep -n "RUST_LOG" over the whole repo: only the two lines touched here (the recipe declaration and the hardcoded overwrite). - Read F:/Projects/Idunn/src/deployment.rs to confirm both fields are optional (serde default) before cutting, per the assignment's instruction to understand Idunn's parser before touching recipe fields. Collision check: git diff --stat origin/main...codex/ghostlight-release-binding and ...codex/ghostlight-model-allowlist over deployment/idunn/recipe.toml and src/provider_backend.rs: both empty, no in-flight work touches these lines. Validated deployment/idunn/recipe.toml still parses as TOML after the edit (python tomllib load succeeded). Not touched: the RUST_LOG overwrite in provider_backend.rs itself is a behavior question (should the child honor an operator override?), not a dead-code cut, so it stays as-is per the subtraction-only mandate. REC-100, REC-101 Co-Authored-By: Claude Sonnet 5 --- deployment/idunn/recipe.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/deployment/idunn/recipe.toml b/deployment/idunn/recipe.toml index 06bcce0..f46a4b5 100644 --- a/deployment/idunn/recipe.toml +++ b/deployment/idunn/recipe.toml @@ -1,7 +1,6 @@ schema = "gamecult.idunn.target_declaration.v1" target = "codex-connector" source_stamp_environment = "CODEX_CONNECTOR_BUILD_COMMIT" -required_gitlinks = ["vendor/cultcache-rs", "vendor/cultnet-rs"] [[steps]] id = "extract-codex" @@ -85,7 +84,6 @@ required_environment = [ "GAMECULT_IDUNN_PROCESS_WRITE_LEASE", "GAMECULT_IDUNN_RUNTIME_BUNDLE", ] -optional_environment = ["RUST_LOG"] [service.health] contract = "codex-connector.runtime-health.v1" From 5b6ba919b7d6fbb31a1b49908740cbec460537f6 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 22 Oct 2026 20:10:47 +0200 Subject: [PATCH 2/2] README front door: value, problem, entry points, live versus planned Co-Authored-By: Claude Opus 5.5 --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 946c69f..550db9c 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,14 @@ subscription inference. Epiphany and Ghostlight remain separate minds. They derive their own exact provider requests, execute their own tools, interpret their own results, and admit their own state. +**Valuable here:** the consumer ABI in `src/lib.rs`. It holds the v2 typed contracts (`CodexProviderRequest`, `CodexTransportInvocation`, `CodexTransportReceipt`), exact Responses lowering (`canonical_responses_body`), AES-256-GCM envelopes (`encrypt_invocation`, `decrypt_result`) and the one-request client (`CodexConnectorClient`). The daemon behind it (`src/daemon.rs`, `src/provider_backend.rs`) is the only process that ever holds the Codex credential. + +**Problem it solves:** several minds (Epiphany, Ghostlight) need Codex-compatible subscription inference, but must not each hold or refresh the credential, copy wire law, or hand cognition to a transport service. The connector isolates the credential and transports exact provider requests with receipts, and decides nothing about prompts or tools. + +**Entry points:** library `src/lib.rs` (no daemon code, safe to depend on); daemon feature `--features daemon`, binary `codex-connector` (`src/main.rs`); Idunn declaration `deployment/idunn/recipe.toml`, deployed with `idunn up codex-connector`; verification commands are listed below. + +**Status:** live as the library plus the daemon and its Idunn recipe, last changed 2026-09-13. This repo records no planned work; changes to the contract below are the open surface. + The service owns authenticated caller admission, bounded transport physiology, exact provider-request receipts, and redacted CultMesh health. A private pinned official `codex app-server` child is the sole writer and refresh authority for