Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or requestready-for-humanRequires human implementationRequires human implementation
Description
This was generated by AI during a grill-with-docs session.
What to do
Provision one long-lived DigitalOcean droplet that runs both factory work (Pickup and the other Passes) and Experiments, as agreed in docs/grill-with-docs/run-capacity.md (Q1.1–Q1.5, Q2.4–Q2.7). It gives #1887's process-task suite its home and adds factory capacity.
- Droplet: General Purpose, 8 dedicated vCPU / 32 GB (Q2.4). Confirm the price on DigitalOcean's pricing page first; ~$252/month was the estimate. Resize up for a large Experiment and back down after; disk only grows (Q1.4).
- OS and region: Ubuntu 24.04 LTS, in the same region as the thirdshift.app droplet (Q2.5). Check bwrap and systemd user scopes work for a Trial, as on the Lima VM.
- Account and logins: a normal user account with the same Claude and Codex subscription logins,
ghlogin and Resend key as the other factory hosts (Q2.6). - thirdshift: install a release that contains Scheduled Passes start Runs during an Experiment on the same host, so Trials time out under load #1494 (Passes skip while an Experiment is live), set up its cron like the other hosts, and serve its Console behind a sign-in. Add it to the Lima VM's
[[console.fleet]](Q1.3, Q1.5). This step is why Scheduled Passes start Runs during an Experiment on the same host, so Trials time out under load #1494 blocks this issue; steps 1–3 can go first. - Backups: turn on DigitalOcean weekly backups, and copy
~/.thirdshift/evals/to the Mac after each approved batch of Eval tasks (Q2.7).
Why a human: it needs the Day shift's DigitalOcean account and money, subscription logins, and a judgement about a production server.
Acceptance criteria
- The droplet runs Ubuntu 24.04 with 8 dedicated vCPU / 32 GB, with weekly backups on.
- A release containing Scheduled Passes start Runs during an Experiment on the same host, so Trials time out under load #1494 is installed; a scheduled Pass skips while a test Experiment is live there.
- Its Console is reachable behind a sign-in and appears in the Lima VM Console's Fleet overview.
- A Trial runs there in bwrap with a systemd scope (for example, one Eval task's single Trial).
- The copy of
~/.thirdshift/evals/to the Mac is written down in Release #1484 and build the first 20 discriminating process Eval tasks #1887 step 4 or in this issue's closing comment.
Blocks #1887 step 4 (move the suite to the new host).
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestready-for-humanRequires human implementationRequires human implementation
Activity
JacobStephens2 commentedon Nov 12, 2026
Provisioned and verified
factory.etadventures.com(jstephens@factory/conductor@factoryover Tailscale):g-8vcpu-32gb(8 dedicated vCPU / 32 GB, nyc1, droplet618505797), Ubuntu 24.04.5 LTS upgraded and booted on6.8.0-149-generic, weekly backups enabled (Sundays 04:00 UTC), adopted inEducational-Travel-Adventures/orchestrationtofu/hosts/factory.tf(Run the Security review on security.harness when it is set #932), SSH port 22 restricted to Tailscale +orchestrate, andconductoraccount configured (Report a failure with the Session log of the session its cause came from #933, Release 0.13.2 #934).thirdshift+ Scheduled Passes start Runs during an Experiment on the same host, so Trials time out under load #1494 Pass skip:thirdshift 0.30.0installed on bothfactoryand the Lima VM. Staggered crontab installed forthirdshift,manager-tourbots, andtourbot. Verified live during a test Experiment that scheduled cron Passes skip with Activity log entries (2026-11-12 09:13:01 Pickup run skipped: Experiment 0511b98aa10f8d31cea5f9c2b32473828bb6fb66cc4c48fb3eba1ea72060c95a is live on this machine) and that a starting Experiment waits on live Runs unless--no-waitis given.thirdshift-console.servicerunning behind Caddy HTTPS (https://factory.etadventures.com/) with sign-in configured; paired asfactoryin the Lima VM's[[console.fleet]](read,security,act,run,admin,reachability: ok).bwrap+systemduser-scope Trial & Grader: Verified AppArmor/etc/apparmor.d/bwrap,socat,[claude] setup_token, standalonecodexbinary (codex-code-mode-host),grok,muse,agy,kimi(kimi-k3.1-proFireworks config), andopencode. Ran a two-Arm smoke Experiment end-to-end insidebwrapandthirdshift-trial-*.scopeuser units (MemoryHigh=1G,MemoryMax=2G,MemorySwapMax=1G) through model Grading, then cleaned up the temporary smoke suite.evalsbackup procedure: Recorded on Release #1484 and build the first 20 discriminating process Eval tasks #1887 and here — after each approved batch of Eval tasks:JacobStephens2 commentedon Nov 12, 2026
Handoff: finish setting up the factory host
The issue body holds the requirements and acceptance criteria, and
docs/grill-with-docs/run-capacity.md(Q1.1-Q3.2) explains why. This comment records only what the setup session did and what is left.Already done (2026-11-12)
g-8vcpu-32gb= 8 dedicated vCPU / 32 GB, $252/month from the sizes API, Ubuntu 24.04.5, region nyc1 (same as thirdshift.app, judged by latency)/etc/apparmor.d/bwrap, fromsrc/setup/sandbox.rs). Tested:bwrap --unshare-allworks, and so doessystemd-run --user --scope -p MemoryMax=1G~/.local/bin(shell installer, sothirdshift updateworks). It contains #1494's fix, PR #1982, mergebb84c3a; 0.29.1 does not. Also Claude Code (native installer), Codex (npm, global), rustup stable with clippy and rustfmt, gh, Caddy (apt, not configured yet), Node 22, git, jq, build-essential, tmux~/.thirdshift/logs/exists. There is noconfig.tomlyet.~/repos/is emptyStill to do, in order
Security updates:
sudo apt update && sudo apt upgrade. Do not rundo-release-upgrade: this issue specifies 24.04, and that is where Trials are proven.Logins (these need the human):
claude,codex login,gh auth loginas the same GitHub account the other factory hosts use, and the Resend key (thirdshift setupcovers the email settings).User config: run
thirdshift setup, or start from an existing host's~/.thirdshift/config.tomland change:[console] addressto the factory host's nameother_accounts = "none"fleet = [][email] fromto a factory-specific senderAn existing config may also set
[harness] default = "codex", a[security] harness,[trial]memory caps of 1G/2G/1G,[resources]thresholds, and a raised[pickup] failure_limit = 6. That last one is a temporary measure for A Triage of an existing Security finding fails: security-finding is rejected as its category #2018, so decide whether it belongs here.Console behind sign-in (the guide's "Console on a server"):
The script waits until the host name resolves. One of DigitalOcean's resolvers briefly cached NXDOMAIN, so if the DNS check fails, run it again.
Fleet: on factory,
thirdshift console token create lima --scopes read,act(or whatever scopes the Lima Console needs). Then on the Lima VM,thirdshift console fleet add factory <url>and paste the token.Cron (the human decides first): which repos does factory pick up? Grill Q1.1(c) says it takes Pickup work. But personal repos (thirdshift itself) are currently kept off ETA hosts because of a fleet GitHub rate limit, and factory is on ETA's account. Settle that, clone the chosen repos into
~/repos, then write the crontab, copying the stagger pattern from the other hosts. Every Pass will skip while an Experiment is live, which is Scheduled Passes start Runs during an Experiment on the same host, so Trials time out under load #1494's behaviour in 0.29.2.Acceptance checks (from this issue):
~/.thirdshift/evals/to Mac copy (for examplersync -a factory:.thirdshift/evals/ ~/thirdshift-evals-backup/after each approved batch), in Release #1484 and build the first 20 discriminating process Eval tasks #1887 step 4 or in this issue's closing comment.Things to know