feat(drill): the staging drill, the week before each forced wipe (stage 9c, D307–D309, D317–D319) #15
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/stage-9c"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
Phase 9c of
docs/runicnpc/PLAN.mdstage 9: a Gitea job that checks each new Rust staging build in the seven days before the monthly forced wipe, so a RunicNPC fix can ship before the update does. Decisions D307–D309 (docs#324), with D317–D319 from this phase (the companion docs PR)..gitea/workflows/staging-drill.ymlis scheduled daily and stops at its first step outside the week before a forced wipe (the first Thursday, D318). A run by hand always goes ahead.tools/drill/static.shneeds no server and takes about a minute. It downloads staging's managed assemblies (DepotDownloader 3.4.0) and Oxide's staging build, then:tools/fieldlist --oxide-behind);tools/drill/drill.jshas four steps:window: is this the drill week (D318)?gate: one check per manifest of Rust's Linux depot.api.steamcmd.netwas a day stale.live:rust-stagingrunsrnt.run all. When both 6000-map rigs are running,rust-carbonis stopped and started again (D309).report: one issue per build, labelledstaging-drill, with the state kept on thedrillbranch. While Oxide is behind, a build waits up to 3 days without opening an issue (D317).tools/drill/rig-start.shis the rig's startup. It installs the branch and Oxide's build for it, and refuses to start a mismatched pair.tools/RunicNpcTest.cs0.7.2: stage 5's five fights look for a field with room for their 280 m line (D319), ands5.fight.spawnednames what did not spawn.Why Oxide's lag matters (D317)
Oxide ships its own patched
Assembly-CSharp.dll, and the plugin compiles only against it: against Rust's own copy,IAISensesis inaccessible. On 2026-10-06, Oxide's staging build was older than Rust's. The rig died at boot on "The referenced script (ItemModFoodVisual) on this Behaviour is missing!".--oxide-behindcounts the members Rust declares that Oxide's patched copy lacks:Needs from the org lead
The org secret
PTERODACTYL_DRILL_KEY.wtclaudecannot set Actions secrets (Gitea: "user should be the owner"). The key exists, namedrunicnpc staging drill CI (D309), and its value is inC:\Users\colby\RunicGateway\pterodactyl_drill_api_token(the part afteruser:). Until the secret is set, the live half reports "is PTERODACTYL_DRILL_KEY set?".How it was tested
node scripts/checkPlugin.jsok;node --test scripts/checkPlugin.test.js24/24.publicfrom this machine with the drill's own key. On the 3500 map: 264 pass, 0 fail, a 4-minute boot, about 15 minutes in all. The 2000 map gave 226/1, and then found no field at all (D319).branch: staging:drillbranch was created and pushed.reportalone: 1 day still waits, 4 days reports, 17 days starts over.rust-stagingstopped (3500/1234, 8 GB, on public from the rehearsals; the drill moves it back to staging on its next run).rust-oxideuntouched.rust-carbon, which I had stopped for room, started again.Checklist
AI-assisted contributions (required)
Claude Code (Claude Opus 5.5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY