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
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

View file

@ -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"