Compare commits

...
Sign in to create a new pull request.
Author SHA1 Message Date
Meta Vens
fd7cec4176 Merge readme-front-door: README front door
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 20:16:40 +02:00
Meta Vens
5b6ba919b7 README front door: value, problem, entry points, live versus planned
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 20:10:47 +02:00
Meta Vens
3ddc12e9f3 REC-100/REC-101: drop impossible gitlink requirement and fictitious RUST_LOG passthrough
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 <noreply@anthropic.com>
2026-09-13 14:05:19 +02:00
2 changed files with 8 additions and 2 deletions

View file

@ -5,6 +5,14 @@ subscription inference. Epiphany and Ghostlight remain separate minds. They
derive their own exact provider requests, execute their own tools, interpret derive their own exact provider requests, execute their own tools, interpret
their own results, and admit their own state. 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, The service owns authenticated caller admission, bounded transport physiology,
exact provider-request receipts, and redacted CultMesh health. A private pinned exact provider-request receipts, and redacted CultMesh health. A private pinned
official `codex app-server` child is the sole writer and refresh authority for official `codex app-server` child is the sole writer and refresh authority for

View file

@ -1,7 +1,6 @@
schema = "gamecult.idunn.target_declaration.v1" schema = "gamecult.idunn.target_declaration.v1"
target = "codex-connector" target = "codex-connector"
source_stamp_environment = "CODEX_CONNECTOR_BUILD_COMMIT" source_stamp_environment = "CODEX_CONNECTOR_BUILD_COMMIT"
required_gitlinks = ["vendor/cultcache-rs", "vendor/cultnet-rs"]
[[steps]] [[steps]]
id = "extract-codex" id = "extract-codex"
@ -85,7 +84,6 @@ required_environment = [
"GAMECULT_IDUNN_PROCESS_WRITE_LEASE", "GAMECULT_IDUNN_PROCESS_WRITE_LEASE",
"GAMECULT_IDUNN_RUNTIME_BUNDLE", "GAMECULT_IDUNN_RUNTIME_BUNDLE",
] ]
optional_environment = ["RUST_LOG"]
[service.health] [service.health]
contract = "codex-connector.runtime-health.v1" contract = "codex-connector.runtime-health.v1"