Repository navigation
feat(sync_env_clock): a multi env's computers follow its clock through their followers, and the arm waits for them (FD-5477) - #646
Closed
williamloo-scale wants to merge 1 commit into
Conversation
…h their followers, and the arm waits for them (FD-5477) A computer that composes the clock app is a clock follower: its app's card offers clock/v1 sync_time, which now counts for the gateway (clock_read_token looks at the computer's app cards too), so the gateway gives it a read token. sync_env_clock configures and starts each such computer's follower before the arm, as root through the sandbox's root channel (computer.utils.clock.start_follower), never through the driver: the gateway's /clock/watch as the computer's sandbox reaches it, its read token, its follower name and a config id, in a config only the follower's user can read; the clock page made for that user; and root's follow loop started. The arm then waits for the followers (wait_followers_s), so a computer still behind fails the step naming it, and each clock app's sync_time gets its config id and reports what its follower showed. A follower that can't start fails the step, or under tolerate_missing_sync_time is reported (follower_not_started) and not waited for. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Closing: superseded by #649, which puts ubuntu-24.04 computers on the gateway's clock from the base image, with core configuring the follower at deploy and after a reset. FD-5477's remaining arm-time work ( |
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.
What and why
sync_env_clockputs a multi env's computers on its clock (FD-5477). Before the arm, it configures and starts the clock follower of each computer that composes theclockapp. It does this as root through the sandbox's root channel (computer/utils/clock.py), never through the driver, which runs as the session user.agentenv-clockcan open. The clock page is made as root, owned by the follower from its first byte. Then the follower is started detached.wait_followers_s, soset_timereturns only once the computers show it. The step then calls the clock app'ssync_timewith the config id.tolerate_missing_sync_timeit is skipped and named, and the arm doesn't wait for computers._clock_read_tokenbecomes publicclock_read_token, and a computer now follows when its card or one of its apps' cards offersclock/v1sync_time.How it was tested
test_computer_clock_core.py,sync_env_clock_test.pyandtest_multi_env_computers.py.Notes
sync_env_clockstarting followers and waiting for computers, and what tolerate does to a computer that can't start.Stack: follower → this → e2e → reset.
🤖 Generated with Claude Code