Commit Graph

723 Commits

Author SHA1 Message Date
216bbf9c54 Merge pull request 'docs(runicnpc): plan RunicNPC, our own Rust NPC plugin (D214–D220)' (#298) from docs/runicnpc-plan into main
Reviewed-on: #298
2026-09-30 01:47:49 +00:00
aec01342d5 docs(runicnpc): record the org lead's answers, D221-D228
Standalone use too (D221), placements live on the server (D222), our own
scientist subclass and brain (D223), installer and egg ship it plus a
Gitea release and possibly other download sites (D224), per-profile
kills public and in titles (D225), edge to main (D226), no default caps
but a measured cost warning wherever NPCs are added (D227), and the
names RunicNPC, /rnpc, runicnpc.* (D228). The sections they change are
updated: standalone profiles, the console profile verb, cost warnings,
stage 1's measurements, and publishing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 20:38:28 -05:00
97be4fb5ab docs(runicnpc): plan RunicNPC, our own Rust NPC plugin (D214-D220)
The PLAN_REDESIGNS §6 spike ran on the Oxide rig on 2026-09-30. Route A
kept its kit and fought with it but cannot be named; HumanNPC counted its
NPCs as players in the killfeed and tallies; NpcSpawn worked but costs a
boot hitch, a phone-home and an unbundleable dependency. The org lead
chose to write our own API-style plugin in runicnpc-rust.

runicnpc/PLAN.md records the spike, the decisions, the features, the API,
the chat commands, and stages 0-10 with how each is tested, plus eight
questions. PLAN_REDESIGNS §6, §9 and §10 point at it; the index lists it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 20:31:57 -05:00
71ab0c01af Merge pull request 'docs(rust): the map's monument labels as built and walked — PLAN_REDESIGNS 4.1, D213' (#297) from docs/rust-map-markers into main
Reviewed-on: #297
2026-09-30 00:17:04 +00:00
d7b178fb8b docs(rust): the map marker labels as walked
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 18:19:31 -05:00
3bd7a22bc6 docs(rust): the minor labels read from a 6000 map, and D213
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 18:12:08 -05:00
637a11326e docs(rust): the map's monument labels as built (PLAN_REDESIGNS §4.1, D196)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 12:10:47 -05:00
75a45b51a1 Merge pull request 'docs(rust): the chat-title conditions as built — PROTOCOL 19.10, PLAN_REDESIGNS 5.8 and D209' (#295) from docs/rust-title-conditions into main
Reviewed-on: #295
2026-09-29 17:00:40 +00:00
6ed4021c12 Merge main into docs/rust-title-conditions: §3's docs
PROTOCOL.md: §19.10 (titles) and §19.11 (zones) both kept, in order.
PLAN_REDESIGNS: the D210-D212 table moved from the end of the file, where
docs#296 appended it by mistake, into §10 after D209.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 11:36:45 -05:00
381d8ee5b6 Merge pull request 'docs(rust): zones and the dome as built and walked — PROTOCOL 19.11, PLAN_REDESIGNS 3.4, D210-D212' (#296) from docs/rust-zones-domes into main
Reviewed-on: #296
2026-09-29 16:27:52 +00:00
baef8f27eb docs(rust): §3's site half as walked — the presets page, a step from a preset, a run on Carbon
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 09:54:53 -05:00
4056e5a14d docs(rust): §3 walked on the rigs, and D212 (the full dome is the default)
PLAN_REDESIGNS §3.4: the rig rows as walked 2026-09-29 without a player,
the dome types, D212, and the in-game rows deferred to the later in-game walk.
PROTOCOL §19.11: dome type 0 when absent; walk status.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 09:42:25 -05:00
7f9026c9e7 docs(rust): zones and the dome as built — PROTOCOL 19.11, PLAN_REDESIGNS 3.4, D210, D211
PROTOCOL §19.11: world.zone's seven new fields, bad-option and
dome-unavailable, the bridge-said zone messages, the domes helper and
OnRgDomesReady, hello's zoneManager and integrations.zoneDomes.

PLAN_REDESIGNS: §0.6 corrected (ZoneFieldListRaw exists), §3.4 as built,
D210 (flags ticked on a presets page, the step copies a preset's line) and
D211 (the bridge reads the flag list). INSTALL names the new helper.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 05:25:45 -05:00
e8f0ff2407 docs(rust): §5 compiled on both rigs, and what the item-list probe corrected
PLAN_REDESIGNS 5.8 records the probe's lists and the three members it corrected; PROTOCOL 19.10 names the crafter, the mission assignee and the heal target as built.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-29 02:07:30 -05:00
e3c5d7128c docs(rust): the chat-title conditions as built — PROTOCOL 19.10, PLAN_REDESIGNS 5.8 and D209
PROTOCOL.md §19.10 documents player.tally's new fields and the ten hooks
behind them. PLAN_REDESIGNS §5.8 records what the build settled (the
category ids, where each is read from, the empty-text rule, the admin
API, the plugin's counting choices) and what is left before the walk.
D209: a title rule's "NPC kills" ranks human NPCs only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-28 23:32:59 -05:00
18a4a561e3 Merge pull request 'docs(rust): the RaidableBases spikes, and D203-D208' (#294) from docs/rust-raidablebases-spike into main
Reviewed-on: #294
2026-09-29 00:18:35 +00:00
664d2b2144 docs(rust): D206-D208, the org lead's answers to the helper spike
Lock-to-first-attacker per event via a BypassUseOwners patch; a step places
its base where RaidableBases picks or at an admin-given spot with a height
adjustment or exact height; a blocked spot is refused with the reason.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-28 12:20:30 -05:00
a34b5fdbf0 docs(rust): record the RaidableBases helper spike (§11.4.4)
One base despawns alone; overrides go in at OpenEvent through a deep copy;
lock-to-first-attacker is main-config only; an admin-given spot and height
work through a copied profile (Clone() is shallow and leaked); the area
check misses water; reloads drop Harmony patches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-28 12:18:33 -05:00
6684ea5c60 docs(rust): the RaidableBases spike, and D203-D205
The free edition (3.2.0) on both rigs with CopyPaste: its public API, the
17-argument lifecycle hooks, spawning only through `rbevent` at a spot the
plugin picks, base ids always "0", despawn only all-at-once, the boot
hitch and grid wait, and the profile options. Section 11.4.2 is left for
the paid edition the org lead supplies later in the week.

D203 RaidableBases picks where; D204 a helper despawns only the event's
base; D205 profile + difficulty + per-event overrides, and the site edits
RaidableBases' profiles as a named exception.

Refs RunicGateway/Module-Rust#21

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-28 11:56:38 -05:00
5328ff35b5 Merge pull request 'docs(rust): perm.inventory in PROTOCOL 19.9, and the permission manager as built' (#293) from docs/rust-perm-manager into main
Reviewed-on: #293
2026-09-28 16:38:28 +00:00
52658ce2c1 docs(rust): perm.inventory in PROTOCOL 19.9, and the permission manager as built
PROTOCOL.md 19.9 specifies perm.inventory (owners, groups with parents,
holders, leased pairs; sliced, paged, one snapshot) and perm.sync's
protocol-13 changes (parents, titles and ranks written, absent means
leave it, managed and foreign gone). PLAN_REDESIGNS 1.9 records what the
build settled and the walk on both rigs.

Refs RunicGateway/Module-Rust#21

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-28 11:25:58 -05:00
4c996e270f Merge pull request 'docs(rust): first-class optional plugins in the redesign plan (D199-D202)' (#292) from docs/rust-optional-plugins into main
Reviewed-on: #292
2026-09-28 11:37:11 +00:00
23ce47c6ad docs(rust): first-class optional plugins in the redesign plan (D199-D202)
Economics, Backpacks and RaidableBases become optional, supported
integrations; Kits stays required. PLAN_REDESIGNS.md gains section 11 with
what each plugin exposes, what the site does with it, the spikes each build
starts with, and the org lead's four answers.

Refs RunicGateway/Module-Rust#21

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-28 06:35:04 -05:00
a9981f59bc Merge pull request 'docs(rust): plan the six step-3 redesigns, and D188-D198' (#291) from docs/rust-step3-plan into main
Reviewed-on: #291
2026-09-27 08:58:52 +00:00
fa53526079 docs(rust): record the org lead's answers to the step-3 plan (D188-D198)
Groups are per server unless an admin shares them (D189); an in-game
change affects that server only, as an exception or a split (D190);
ZoneDomes stays, made safe by a domes helper (D194); presets are the
admins' own (D195); zone and reward messages get the popup choice
(D193); the NPC spike tries both routes (D197). The rest confirm the
plan: D188, D191, D192, D196, D198.

Refs RunicGateway/Module-Rust#21

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-27 03:56:43 -05:00
a430666f94 docs(rust): plan the six step-3 redesigns in one document
PLAN_REDESIGNS.md plans PLAN_FIXES §6 step 3 in detail, before any code:
the permission manager, the event step editor and kit weekend, zones and
domes, map marker types, the 23 title conditions, and NPCs. Checked on
both rigs first: the public owner lookup for permissions, the mission
hooks both frameworks already raise, and ZoneDomes' null-player throw.
Eleven questions for the org lead (§10) become D188 onward.

Refs RunicGateway/Module-Rust#21

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-27 03:45:44 -05:00
180d6a85d9 Merge pull request 'docs(rust): the step-2 player walk, and D186-D187' (#290) from docs/rust-step2-player-walk into main
Reviewed-on: #290
2026-09-27 08:26:29 +00:00
1891f4f6fd docs(rust): the step-2 player walk, and D186-D187
PLAYER_WALK's step-2 rows 3-9 walked with the org lead in the game on
both rigs (2026-09-27). Records the results, corrects four rows (the
helper is unloaded, not deleted; no enter message can show; sleepers do
not score; ZoneManager's own entry counted the player anyway), and adds
D186 (a link code's second pass skips servers known down) and D187 (no
permission sync to a server the poll saw go away) with F6, F7 and F12's
as-walked notes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-27 03:18:40 -05:00
9aba725ca2 Merge pull request 'docs(rust): protocol 13 step 2 — expiry, plugin loads, the zone helper, the tally (§19.4-19.8, MODULE_API 1.11.0)' (#289) from docs/rust-protocol-13-step2 into main
Reviewed-on: #289
2026-09-27 06:09:43 +00:00
383f3bdbe5 docs(rust): the step-2 site walk, and the run it found stuck pending
Walked on a core running Module-Rust#22 on website#209 against rust-oxide:
F8, F13/F14, F7, F5/F6 and the helper's state all pass. The expiry walk found
a run left cleanup-pending for ever when its last resource expires while it
runs; website#209 now settles it, and EVENTS.md §L says so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-27 01:05:35 -05:00
a199823513 docs(rust): say which half of the step-2 walk rows was walked
Rows 1-2 of PLAYER_WALK's step-2 section had their game side walked on both
rigs; their site side (the servers-page warning, a grant landing within a
minute) needs a walk core running Module-Rust#22 on website#209, which the
first commit claimed as walked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 21:48:18 -05:00
1a7f52743f docs(rust): protocol 13 step 2 — expiry, plugin loads, the zone helper, the tally (§19.4-19.8, MODULE_API 1.11.0)
The spec for PLAN_FIXES §6 step 2, as built (D181-D185):

- PROTOCOL.md §19.4 world.expired's `what` and the website recording an
  expiry (amends §15's "maps it to nothing"); §19.5 plugin.loaded /
  plugin.unloaded with the permission diff; §19.6 the ZoneManager helper and
  `zoneHelper` at hello; §19.7 what the tally counts (F1, F3, F4); §19.8 the
  website (F7 hold, F5/F6 link fleet, F2 names).
- MODULE_API.md 1.11.0 and ctx.events.expired; EVENTS.md §L the `expired`
  status, terminal and green, and `resource.expired`.
- rust-link/INSTALL.md: the helper in the tarball, by hand, and in doctor.
- PLAYER_WALK.md: events step 6 can pass now; a step-2 section whose rows 1-2
  were walked on both rigs without a player and 3-9 need one.
- PLAN_FIXES §6: step 2 as built, with its PRs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 21:47:42 -05:00
e7551cbf8f docs(rust): plan fixes — D181-D185, how step 2 is built
Step 2 of PLAN_FIXES §6 had four open choices; the org lead answered them
before any code:

- D181/D182: F12 is a ZoneManager helper that Harmony-patches
  Zone.InitializeZone, ships in the overlay, and the bridge falls back to
  IsPositionInZone for scoring without it.
- D183: F14's expiry is core's: an `expired` ledger status and
  ctx.events.expired (MODULE_API 1.11.0), without disturbing Module-uo.
- D184: F8 is plugin.loaded / plugin.unloaded with the permission diff.
- D185: F2 is the site's labels; no wire change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 20:41:08 -05:00
697e00b2c4 Merge pull request 'docs(rust): protocol 13 — the reload as the rigs showed it (W1-W5, D180)' (#287) from docs/rust-protocol-13-carbon-reload into main
Reviewed-on: #287
2026-09-27 01:23:35 +00:00
b8d9740ed0 docs(rust): protocol 13 — the reload as the rigs showed it (W1-W5, D180)
PROTOCOL.md §19.1: how the reload is asked for (Carbon: c.reload on the
server console), which log is read (Carbon.Core.log on Carbon), the pinned
failure lines on both frameworks, a load confirmed by a log read, and the
compiler's give-up retried once. PLAYER_WALK.md: the Carbon reload path and
failure words as walked. PLAN_FIXES.md: D180.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 20:21:26 -05:00
cfa37c44e3 Merge pull request 'docs(rust): plan fixes — D176-D179, how step 1 is built' (#285) from docs/rust-plan-fixes-step1 into main
Reviewed-on: #285
2026-09-26 22:22:21 +00:00
259049bdc0 Merge pull request 'docs(rust): protocol 13 opens — the configuration save that answers first (PROTOCOL.md §19)' (#286) from docs/rust-protocol-13-config into main
Reviewed-on: #286
2026-09-26 22:21:37 +00:00
b9d8689061 docs(rust): protocol 13 opens — the configuration save that answers first (PROTOCOL.md §19)
§19 starts protocol 13 with its first piece: config.write answers pending
with a writeId and ceilingMs, a reload fails on the framework log's evidence
under a 30 s ceiling judged by what is loaded, a rollback waits for the
restore, and the outcome is a staff-class config.outcome event (F9, F10,
D178). F15's UTF-8 decode rides in the same release. §11.4 points at the
amendment; §2 says 13. PLAYER_WALK.md's configuration steps now expect
"Saved. Reloading…", add a cold-compile save and a non-ASCII save, use
Kits' chat command instead of a ZoneManager setting that does not exist
(D-2), and name Carbon's failure wording as the thing step 4 pins.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 17:19:14 -05:00
d72ccd56dd docs(rust): plan fixes — D176-D179, how step 1 is built
F15 waits for protocol 13 (D176); F9 and F10 open that bump on edge in all
three repos (D177); a reload fails on the log's evidence under a 30 s
ceiling with a loaded check before any restore (D178); the configuration
page polls the write until it settles (D179).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 16:55:23 -05:00
f015772425 Merge pull request 'docs(rust): plan fixes — D173 quests, D174 title rules, D175 admin-owned titles' (#284) from docs/rust-plan-fixes-quests into main
Reviewed-on: #284
2026-09-26 21:36:12 +00:00
e5255f021a Merge pull request 'docs(rust): plan fixes — D169-D172, the org lead's answers' (#283) from docs/rust-plan-fixes-answers into main
Reviewed-on: #283
2026-09-26 21:35:56 +00:00
0319f6b26e docs(rust): plan fixes — D175 titles are defaults admins can replace
The twenty-three title names in §4.6 are the module's defaults. An admin
can set their own title per category, once for the site, and it
supersedes the default on every server; clearing it restores the
default. A rule's own text still wins over both. §4.6 describes the
three layers on top of phase 17's rust_title_rules (stat grows from
three values to the twenty-three categories).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 16:34:54 -05:00
7743cec1fb docs(rust): plan fixes — D173 quests are Rust's own missions, D174 title rules
D173: "Quests completed" (Wayfarer) counts the missions Rust's NPCs
already hand out; no quest plugin. uMod's catalogue names no mission
hook and CARBON.md lists none, so the detailed plan starts with a rig
spike: a framework hook if one exists at build time, else reading the
player's mission list at each tally flush, else a D168 helper patch.
D174 adopts §4.6's recommended title rules (best columns for kill
distance, weapon-class kills count every credited kill, killing-blow
credit for APC/heli, heals of others only).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 16:32:38 -05:00
7834ef1a88 docs(rust): plan fixes — D169-D172, the org lead's answers
D169 every fix and redesign lands before Module-Rust's cutover. D170 an
expired zone is marked expired on the site (F14 moves from "by design"
to a fix, amending D96). D171 Steam sign-in moves to the website's own
plan as part of the base website. D172 chat titles use all twenty-three
listed conditions under new names: §4.6 is now a table of condition,
title and the hook that feeds it, plus what the detailed plan must
settle (best-value columns, weapon classes, vehicle-kill credit, heals
of others, quests). PLAN.md §35 and the rust README follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 16:27:52 -05:00
dc6c5a72fd Merge pull request 'docs(rust): plan fixes — the first player walk's findings, gating the cutover' (#282) from docs/rust-plan-fixes into main
Reviewed-on: #282
2026-09-26 21:26:49 +00:00
8afe53b3db Merge pull request 'docs(modules): a site runs one module (decision 35)' (#263) from docs/one-module-per-site into main
Reviewed-on: #263
2026-09-26 21:26:20 +00:00
96fb7e1807 Merge pull request 'docs(tree): sync installer/PROJECT_TREE.md' (#280) from chore/sync-installer-tree into main
Reviewed-on: #280
2026-09-26 21:26:01 +00:00
c0d6cab0e9 docs(rust): plan fixes — the first player walk's findings, gating the cutover
PLAN_FIXES.md plans what the Oxide pass of PLAYER_WALK.md found on
2026-09-26: fifteen fixes (F1-F15, F15 corrupts every non-ASCII
site-to-game string including config saves; F9 rolls back valid config
edits on a cold compile), the interface and walk-doc corrections, and the
org lead's decisions D159-D168 (D160 reverses D31: the site owns every
permission and group). Recommends the fixes land before Module-Rust's
cutover (phase 19) and the redesigns follow it.

PLAN.md gains a pointer in its status line and §35; the rust README lists
the new file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-09-26 16:20:42 -05:00
runic-docs-bot
6a61e66f9f docs(tree): sync installer/PROJECT_TREE.md from RunicGateway/installer@3a3676a [skip ci] 2026-09-26 15:46:48 +00:00
7bd4eaec76 Merge pull request 'docs(rust): phase 18 as built — the Rust operator guide, bundle schema 2, D154-D158, and the walk' (#281) from docs/rust-phase-18-built into main
Reviewed-on: #281
2026-09-26 15:40:58 +00:00