Repository navigation
feat: run brokered Grok shell commands on the task clock and neutralize the engine-injected date - #46
Merged
Merged
Conversation
…anged production bytes
… a clocked Grok worker
…ose protocol mismatches and restore unclocked proxy handling
…k clock cleanup fences the slot
…the engine-injected date block
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)
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.processClock(derived by Daimon's existing helper; Daimon stays the single offset owner). The broker atomically publishes it before launch, resets to+0after 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.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=Cshared 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.