fix(deploy): the DigitalOcean installer no longer asks for a Claude token - #2867
Conversation
…oken trinity-do-create.sh prompted for a Claude subscription token and had first boot register it and assign it to the seeded agents. Connecting Claude is now the onboarding overlay's blocking step (trinity-enterprise#582), which accepts a subscription token or an API key, checks it with Anthropic before saving, and hands it to the agents that have none. The installer's copy was an unchecked duplicate that also forced every operator to run `claude setup-token` before a server existed. The installer now asks three questions (password, region, name). First boot no longer logs in, calls /api/subscriptions or needs jq, and the user-data carries only the admin password. The finish message says Claude is connected after sign-in. PROV-014, the hosted-install flow and the three user docs that described the token prompt are updated to match. New test: the installer reaches the end on three answers plus the confirmation, prints no setup-token prompt, and its user-data registers nothing (red against the previous script). Refs #2380 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Regression details (head_sha: `1db07e6f011f2e8566ca51fa021ddae7d57ec5bf`)Seed Backend unit-suite regression diffPer-XML totals
❌ New failures introduced by HEAD (2)Tests failing under HEAD that did not fail under BASE in any seed:
Legend: [F] = assertion failure, [E] = collection or fixture error. Reproduce locally: |
|
Resolve by merging |
|
merge-train: ejected from today's train — rides the next one once the docs catch up. Nothing was pushed to this branch. To be clear about why, because it isn't a criticism of the work: the coverage question passes cleanly here, and it's the best-tested PR I looked at today. What blocks it is drift
Same class, and these must not be lost to a "take ours" resolution during the conflict you already have: I left this to you rather than resolving it in-train because rewriting seven passages of a user guide is real technical writing, not a merge resolution — you'd want your own wording, and There is no issue this closes, and #2380 is not it. #2380 is CLOSED and titled "record install provenance (DO Marketplace) + first-run HTTPS/VPN hardening guide" — the branch and the Two smaller things:
|
|
merge-train: not on the 2026-09-21 train either — carried over unfixed. Nothing was pushed to this branch. This branch's last commit ( One increment worth having before you start, because a full re-sweep of
So the full must-change set on merge is: Also unchanged from yesterday: If any of yesterday's findings look wrong to you, say so on the thread and I will re-verify that specific point rather than leave it parked. |
Resolve the two docs conflicts by keeping dev's new DigitalOcean guide links and FAQ question, without the Claude token step the installer no longer has. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The installer stopped prompting for a subscription token, but the DigitalOcean guide still walked operators through claude setup-token, listed the token among the installer's questions, and named a log line the first-boot script no longer writes as the install's success signal. The guide now drops that step and its troubleshooting rows, and sends operators to the Connect Claude step on first sign-in. The install's success signal is the last log line, '=== Trinity is ready at ... ===', which the first-boot script writes only after start.sh succeeds. The docs index card and the single-server cross-link lose the token too. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Addressed in Docs drift
Issue link: the body now says Release note: rewritten against the Nightlies: both were dispatched for this PR: unit and live-instance. Uncredentialed window: no doc line is needed, because the seeded fleet has no schedules to fire. |
scripts/deploy/trinity-do-create.shasked for a Claude subscription token, and the droplet's first boot registered it and assigned it to the seeded agents. That duplicates the onboarding overlay's Connect Claude step (trinity-enterprise#582). That step is the overlay's one blocking step, and it opens on first sign-in. It accepts a subscription token or an API key, checks the credential with Anthropic before saving it, and hands it to the agents that have none.The installer's copy was worse on every count. It was unchecked until first boot, it rejected API keys outright, and it made every operator run
claude setup-tokenbefore a server even existed. It also put a second secret into user-data that the metadata service serves for the life of the machine.What changes
_Qquoting and its comments are gone.POST /api/subscriptions, no per-agent assign loop, nojq. The user-data carries only the admin password and the tag.feature-flows/hosted-install.md, and every user doc that described the token prompt:deploying/digitalocean.md,deploying/single-server.md,deploying-trinity.md,faq/deployment-and-upgrades.mdand the docs index card inuser-docs/README.md. In the DigitalOcean guide, the token step and its troubleshooting rows are gone, and Step 5 now covers Connect Claude. Its success check is the install log's last line,=== Trinity is ready at https://<droplet-ip> ===, which the first-boot script (set -euo pipefail) writes only afterstart.sh --provisionsucceeds.whats-new/v0.9.5.mdstill lists the token step, because it describes thev0.9.5installer, which asks for one.Tests
test_the_installer_asks_for_no_claude_credential: the real script, run against a stubdoctl, reaches the end on three answers plus the confirmation. It prints nosetup-token/sk-ant-prompt, and its user-data contains no/api/subscriptions. Red against the previous script, green now.pytest tests/unit/test_2380_*.py: 169 passed.Not run on a real droplet yet. The script clones by tag, so the first real run is from the tag that includes this change.
Release note
The installer URL serves the script at whatever tag it is fetched from.
v0.9.5and earlier still ask for the token, and the DigitalOcean guide says so. The first release tagged after this merges ships the installer without the prompt.Partially addresses abilityai/trinity-enterprise#622 (item 2, the token half). The admin password still travels in user-data.
🤖 Generated with Claude Code