Skip to content

feat: run brokered Grok shell commands on the task clock and neutralize the engine-injected date - #46

Merged
apresmoi merged 8 commits into
mainfrom
feat/brokered-grok-task-clock
Oct 11, 2026
Merged

apresmoi merged 8 commits into
mainfrom
feat/brokered-grok-task-clock

Conversation

@apresmoi

Copy link
Copy Markdown
Collaborator

Closes the brokered-Grok task-clock gap documented in #45 and removes a measured present-date leak.

Shell commands on task time (training slots only)

  • A pinned clocked worker-config variant adds a shell-only shell_environment_policy.set: LD_PRELOAD=/usr/local/lib/daimon/libfaketime.so.1, FAKETIME_TIMESTAMP_FILE=/run/daimon-engine-broker/task-clock/faketime, FAKETIME_DONT_FAKE_MONOTONIC=1, LC_ALL=C. No offset in the bytes, so they stay pinnable. The nine unclocked production configs and shas are byte-identical.
  • Engine-broker control protocol v3 carries the per-turn processClock (derived by Daimon's existing helper; Daimon stays the single offset owner). The broker atomically publishes it before launch, resets to +0 after every terminal path and at startup (clocked slots only); a cleanup failure fences the slot but still delivers the sealed result with a bounded diagnostic. Mixed protocol versions get a diagnostic frame.
  • Manifest v4, projection v2 (workerConfigVariant). Grok itself stays on real time.

Engine-injected date (measured)
Grok CLI 1.0.34 sends Today's date: <real date> inside a <user_info> block of the first user message on every turn request; it is a static binary, so libfaketime cannot change it (loopback-stub capture, no model calls). For clocked turns the provider proxy rewrites only that engine block to the task date (UTC, request time), refuses unrecognised formats, and records counts in sealed observations. Unclocked forwarding is byte-identical to main (differential tests incl. duplicate members and invalid UTF-8).

Review: three Codex review rounds + fixes, Claude gate (approve with P2/P3s, all fixed in the last commit). Carried: Linux bubblewrap visibility/libfaketime behaviour verified only by the documented manual check (docs/broker-task-clock.md); LC_ALL=C shared with the direct path.

Release order: this needs Spawnfile to re-vendor the contract and provision clocked training slots (spawnfile PR to follow), then a published runtime image and re-pin. Local: typecheck, verify:contract-manifest, full suite 1202/0.

@apresmoi
apresmoi merged commit 8bc9f4c into main Oct 11, 2026
1 check passed
@apresmoi
apresmoi deleted the feat/brokered-grok-task-clock branch October 13, 2026 23:00
apresmoi added a commit that referenced this pull request Oct 13, 2026
feat: run brokered Grok shell commands on the task clock and neutralize the engine-injected date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant