diff --git a/docs/triage/issues.json b/docs/triage/issues.json
index 56d5a9e81..145751b98 100644
--- a/docs/triage/issues.json
+++ b/docs/triage/issues.json
@@ -1,13 +1,14 @@
{
- "updated_at": "2026-09-05 07:03 UTC",
- "base_revision": "b1c0f9400a31a2522b9385f6870a9eb8f8f92c76",
- "status_note": "All 88 issues are assessed. Aura rollback and fixture cast protection are merged. Motion diagnostics are merged; the reported long-running freeze remains unverified. The second wave is underway.",
+ "updated_at": "2026-09-07 13:04 UTC",
+ "base_revision": "b4c17c481f66784fd24677f583e0368fc3ac8c95",
+ "status_note": "77 open issues assessed; 12 closed issues retained for history. Finishing existing PRs and implementing the next independent checks.",
"monitoring_note": "Monitoring is active while this work session runs. The JSON source and published report preserve the next actions for a resumed session. No unattended scheduler has been installed.",
"focus": [
- "#63: prevent duplicate active loot-roll promotion and preserve existing votes.",
- "#367: enforce the existing lock Gate before GOOBER effects.",
- "#398: count generated Package Deltas in CLI Trust Review, then update the core pin.",
- "#80: complete teleport cleanup review. Maintain the report and drive each PR through CI and comments."
+ "Finish current-head reviews for core PRs #438, #439 and #440.",
+ "Implement #50 to catch Character state omitted from cleanup or Transfer.",
+ "Finish CLI PR #56 for #398 and publish the core pin update.",
+ "Refresh every issue assessment and prepare the next independent tasks.",
+ "#105: repair suite dispatch and distinguish startup failures before relying on more Headless Client runs."
],
"issues": [
{
@@ -19,7 +20,7 @@
"confidence": "high",
"disposition": "done",
"rationale": "A creature death can remove a due aura before the scheduler advances its old snapshot. The fix advances only rows that still exist, so death and unrelated periodic effects commit together.",
- "next_action": "Merged after coordinating review and passing CI. No remaining acceptance check for this issue.",
+ "next_action": "Closed on GitHub. Preserve the recorded implementation evidence.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/425",
@@ -33,7 +34,7 @@
"url": "https://github.com/LyraCoreProject/LyraCore/issues/425",
"updatedAt": "2026-09-04T06:20:59Z",
"github_state": "closed",
- "owner": "GPT-6, Codex"
+ "owner": "Codex"
},
{
"number": 424,
@@ -68,7 +69,7 @@
"confidence": "high",
"disposition": "done",
"rationale": "The shared creature identifier policy exists on main through PR #405. The casts entry points do not consistently apply it, so this small fix protects fixtures and Package testing.",
- "next_action": "Merged in PR #434. Coordinating review caught partial-update and retarget-away bypasses; durable regressions now prove both are refused.",
+ "next_action": "Closed on GitHub. Preserve the recorded implementation evidence.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/404",
@@ -82,7 +83,7 @@
"url": "https://github.com/LyraCoreProject/LyraCore/issues/404",
"updatedAt": "2026-09-03T08:19:36Z",
"github_state": "closed",
- "owner": "GPT-5.6 Sol, Package Delta agent"
+ "owner": "Codex"
},
{
"number": 399,
@@ -91,9 +92,9 @@
"gain": 3,
"effort": 1,
"confidence": "high",
- "disposition": "verify",
+ "disposition": "done",
"rationale": "Current CLI main reads target provenance before resolving client data. The script-only no-op test already runs without client data. The original control-flow complaint appears fixed by the replay work.",
- "next_action": "Run the empty-inventory/no-client regression against the pinned CLI, then close with evidence if it passes.",
+ "next_action": "Closed on GitHub. Preserve the recorded implementation evidence.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/399",
@@ -107,7 +108,7 @@
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/399",
"updatedAt": "2026-09-02T18:01:19Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -117,20 +118,21 @@
"gain": 4,
"effort": 2,
"confidence": "high",
- "disposition": "implementing",
+ "disposition": "review",
"rationale": "Runtime Script names already landed in CLI PR #55. The remaining Datascript line falsely says nothing reads them. It obscures what an Operator installs.",
- "next_action": "Implement generated Package Delta counts in an isolated CLI worktree. Test through fake adapters, publish the CLI PR, then make a core pin PR after reviewed merge.",
+ "next_action": "Fix CLI PR #56 to count all Package Delta Import Families, then verify fake-adapter tests, complete review and publish a core pin PR.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/398",
"lyracore-cli/src/cmd/packages/review.rs: render still prints the stale datascripts line.",
- "https://github.com/LyraCoreProject/lyracore-cli/pull/55"
+ "https://github.com/LyraCoreProject/lyracore-cli/pull/55",
+ "https://github.com/LyraCoreProject/lyracore-cli/pull/56"
],
"related_prs": [],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/398",
"updatedAt": "2026-09-03T07:36:06Z",
"github_state": "open",
- "owner": "GPT-5.6 Sol, CLI review agent"
+ "owner": "GPT-5.6 Sol, CLI completion agent"
},
{
"number": 373,
@@ -166,10 +168,8 @@
"confidence": "high",
"disposition": "ready",
"rationale": "Subscribed-table parity leaves other generated definitions unchecked. A reproducible generation check would catch drift before unrelated schema work encounters it.",
- "next_action": "Build a deterministic offline generation check using the documented exceptions, after the active CI cleanup settles.",
- "blockers": [
- "Coordinate workflow changes with active PRs #419 and #426."
- ],
+ "next_action": "Build a deterministic offline generation check using the documented exceptions. The prerequisite CI PRs are merged.",
+ "blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/368",
"gateway/tests/schema_parity.rs checks subscribed tables.",
@@ -191,19 +191,21 @@
"gain": 4,
"effort": 2,
"confidence": "high",
- "disposition": "implementing",
+ "disposition": "review",
"rationale": "The Defias Cannon can trigger without its required item. Current GOOBER dispatch skips locked_shut, while CHEST and DOOR/BUTTON apply it.",
- "next_action": "Prove locked refusal has no effects, then apply the existing lock Gate and verify unlocked and lockless use.",
+ "next_action": "Complete the current-head review audit of PR #440, fix valid findings, and check CI. Preserve any remaining live-client acceptance.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/367",
"module/src/gameobject.rs: apply_use_gameobject GOOBER arm directly invokes quest credit."
],
- "related_prs": [],
+ "related_prs": [
+ 440
+ ],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/367",
"updatedAt": "2026-08-28T12:22:50Z",
"github_state": "open",
- "owner": "GPT-5.6 Sol, GOOBER agent"
+ "owner": "GPT-5.6 Sol, PR completion agent"
},
{
"number": 366,
@@ -237,22 +239,21 @@
"gain": 5,
"effort": 3,
"confidence": "high",
- "disposition": "review",
- "rationale": "PR #419 already implements the cleanup and blocking checks. Its branch conflicts with current main and is under active review in another worktree.",
- "next_action": "Monitor the existing owner, rebase after the other open PRs, and require fresh blocking checks.",
- "blockers": [
- "Existing PR #419 must rebase after the earlier open PRs."
- ],
+ "disposition": "done",
+ "rationale": "PR #419 is merged. The blocking clippy, formatting and Rust jobs passed on main b4c17c4; the GitHub closure cites that run.",
+ "next_action": "Closed with the merged PR and passing main workflow as evidence.",
+ "blockers": [],
"evidence": [
- "https://github.com/LyraCoreProject/LyraCore/issues/353",
- ".github/workflows/rust.yml still uses continue-on-error for fmt and clippy."
+ "https://github.com/LyraCoreProject/LyraCore/pull/419",
+ "https://github.com/LyraCoreProject/LyraCore/actions/runs/34103823042",
+ ".github/workflows/rust.yml runs blocking formatting and clippy without continue-on-error."
],
"related_prs": [
419
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/353",
"updatedAt": "2026-08-28T12:23:40Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -262,12 +263,10 @@
"gain": 5,
"effort": 3,
"confidence": "high",
- "disposition": "review",
- "rationale": "The claim that no workflows exist is stale. Rust tests and wasm checks now run; formatting and clippy remain advisory until PR #419. PR #426 adds durable tests.",
- "next_action": "Finish the existing CI PRs and record which preflight coverage remains before closing this umbrella issue.",
- "blockers": [
- "PR #419 and PR #426 are already owned and under review."
- ],
+ "disposition": "done",
+ "rationale": "PRs #419 and #426 are merged. Reassess the original checklist against current workflows rather than starting another workflow.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
+ "blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/346",
".github/workflows/rust.yml",
@@ -279,7 +278,7 @@
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/346",
"updatedAt": "2026-08-28T12:23:39Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -799,13 +798,10 @@
"gain": 5,
"effort": 3,
"confidence": "high",
- "disposition": "dependency",
+ "disposition": "implementing",
"rationale": "The current pin is still v0.1.0-alpha.3 at the exact reported commit. Its wire-suite.sh contains the broken relative calls, and no newer release exists. This undermines confidence in every live suite claim that uses the pin.",
- "next_action": "Fix every scenario call to use ADAPTER_DIR, add subset arguments and a distinct spawn-failure summary in wire-harness, then publish a release and bump the LyraCore pin.",
- "blockers": [
- "The change must land and be released in LyraCoreProject/wire-harness before the core pin can move.",
- "A maintainer must publish or approve the new harness release."
- ],
+ "next_action": "Fix all scenario paths in wire-harness, prove dispatch from distinct roots and startup-failure accounting offline, then review a PR and update the released core pin.",
+ "blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/105",
"https://github.com/LyraCoreProject/wire-harness/blob/219f8cd1670f4b783892388f110d233722892bb3/adapters/lyracore/wire-suite.sh",
@@ -816,7 +812,7 @@
"url": "https://github.com/LyraCoreProject/LyraCore/issues/105",
"updatedAt": "2026-08-11T08:20:54Z",
"github_state": "open",
- "owner": "Codex"
+ "owner": "GPT-6 Astra, Codex"
},
{
"number": 104,
@@ -1017,7 +1013,7 @@
"confidence": "high",
"disposition": "review",
"rationale": "The exact outlier remains in current code. teleport_player drops only game_entity_motion_pending, then deletes game_world_entity in the cross-map branch. Other teardown paths delete the public motion row.",
- "next_action": "Coordinating review and all CI checks passed. CodeRabbit is rate-limited; request its review after the window reopens at about 07:18 UTC.",
+ "next_action": "Complete the current-head review audit of PR #438, fix valid findings, and check CI. Preserve any remaining live-client acceptance.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/80",
@@ -1030,7 +1026,7 @@
"url": "https://github.com/LyraCoreProject/LyraCore/issues/80",
"updatedAt": "2026-08-11T08:19:03Z",
"github_state": "open",
- "owner": "GPT-5.6 Sol, teleport agent"
+ "owner": "GPT-5.6 Sol, PR completion agent"
},
{
"number": 79,
@@ -1089,15 +1085,17 @@
},
{
"number": 77,
- "summary": "The reported per-Character AOI query cost and roughly 525-seat result describe the retired connection model, while its follow-up concerns are tracked by narrower capacity issues.",
+ "summary": "The old connection model is retired; the stated capacity target is unmeasured",
"importance": 4,
"gain": 5,
"effort": 1,
"confidence": "high",
- "disposition": "superseded",
- "rationale": "The Gateway now uses shared per-Shard Coordinators, an in-memory viewer index, call pipes, and batched movement. Issue 88 records 1,735 seats after batching, contradicting the original ceiling. The remaining blocking-thread cap is documented and bounded under issue 76's work.",
- "next_action": "Close this broad diagnosis as superseded by issues 76, 82, 86, and 88. Keep future capacity work tied to fresh acceptance runs rather than its old numbers.",
- "blockers": [],
+ "disposition": "verify",
+ "rationale": "Shared Coordinator connections and movement batching change the reported bottlenecks. The issue still requires a comparable run beyond roughly 525 seated Characters and a movement-cost breakdown. Code changes alone cannot satisfy that result.",
+ "next_action": "Use #59 to record the current seated capacity and movement cost on comparable hardware. Update or close this parent from that measured result.",
+ "blockers": [
+ "Fresh current-revision capacity evidence from #59."
+ ],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/77",
"https://github.com/LyraCoreProject/LyraCore/issues/81",
@@ -1121,9 +1119,9 @@
"gain": 4,
"effort": 1,
"confidence": "high",
- "disposition": "superseded",
+ "disposition": "done",
"rationale": "Current code and PR 410 go beyond the original acceptance criteria by sharing a non-waiting capacity across both listeners. The title's old 477 and 535 observations remain historical evidence, not an open implementation request.",
- "next_action": "Close the issue against the current configuration, startup log, architecture documentation, and PR 410 admission bound. Track new capacity failures from fresh measurements in narrower issues.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/76",
@@ -1137,7 +1135,7 @@
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/76",
"updatedAt": "2026-08-11T08:18:45Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -1199,10 +1197,12 @@
"gain": 3,
"effort": 3,
"confidence": "high",
- "disposition": "ready",
+ "disposition": "decision",
"rationale": "The row contains is_completion, is_interrupted, delay_ms, and is_proc_log alongside ordinary START and GO fields. The Gateway decodes them in ordered branches, while comments state which fields must be the only active signal. Typed signal constructors reduced literal duplication but do not enforce mutual exclusion. An additive kind would make the union explicit, but schema publication and generated bindings make this more than a local refactor, and the unused is_completion field needs a compatibility choice.",
- "next_action": "Approve an additive event-kind contract and is_completion policy, then stamp every constructor, regenerate Gateway bindings, switch decoding to the kind, and publish all fixture databases before removing reliance on the old fields.",
- "blockers": [],
+ "next_action": "Define an additive event-kind contract and compatibility for old rows, then implement constructor stamping and Gateway decoding. Schema changes need human review before shipping.",
+ "blockers": [
+ "Define old-row decoding and the is_completion compatibility policy."
+ ],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/72. The issue inventories five logical signals and calls for an additive discriminator.",
"https://github.com/LyraCoreProject/LyraCore/blob/a6e7119484e35c8779f0f013af7dadafbc293ce7/module/src/spell/tables.rs#L329-L450. SpellCastEvent carries the boolean and zero-value conventions in one subscribed row.",
@@ -1249,9 +1249,9 @@
"gain": 5,
"effort": 1,
"confidence": "high",
- "disposition": "superseded",
+ "disposition": "done",
"rationale": "The issue's product goal, showing Sharding out of the box, is shipped in an evolved form. dev up publishes Eastern Kingdoms, Kalimdor, an Instance Pool, and Realm-core, so contributors exercise both continental and instance routing. The same docs explicitly record removal of the second Elwynn database and walkable Northshire seam. Keeping the exact original issue open would reverse a later Operator decision.",
- "next_action": "Close as shipped in revised form: retain the four-database fixture and cite the documented retirement of the Northshire region seam.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/70. The requested outcome is a sharded default fixture with a region seam and continent split.",
@@ -1266,7 +1266,7 @@
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/70",
"updatedAt": "2026-08-11T08:22:48Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -1434,9 +1434,9 @@
"gain": 4,
"effort": 3,
"confidence": "high",
- "disposition": "implementing",
+ "disposition": "review",
"rationale": "The current Gateway still promotes a staging roll on Realm-core and only then clears the World Shard copy. Both periodic and synchronous promotion paths can run in different Gateway processes. Realm-core's game_loot_roll has only an auto-increment primary key and insert_roll_rows always inserts a new roll and vote set. Module reducers serialize calls, so an idempotent Realm-core check or a compatible uniqueness key can close the race at its authoritative side.",
- "next_action": "A private concurrent START test reproduced two rolls and now passes with one complete vote set. Finish validation and review. Delayed replay after a resolved roll is deleted remains a separate lifecycle gap.",
+ "next_action": "Complete the current-head review audit of PR #439, fix valid findings, and check CI. Preserve any remaining live-client acceptance.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/63. The issue gives the two-Gateway race and requires exactly one durable roll and vote set.",
@@ -1444,11 +1444,13 @@
"https://github.com/LyraCoreProject/LyraCore/blob/a6e7119484e35c8779f0f013af7dadafbc293ce7/module/src/loot/rolls.rs#L45-L78. game_loot_roll has no unique corpse_guid and slot key.",
"https://github.com/LyraCoreProject/LyraCore/blob/a6e7119484e35c8779f0f013af7dadafbc293ce7/module/src/loot/rolls.rs#L326-L355. insert_roll_rows unconditionally inserts a new roll and a new vote row per recipient."
],
- "related_prs": [],
+ "related_prs": [
+ 439
+ ],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/63",
"updatedAt": "2026-08-11T08:17:48Z",
"github_state": "open",
- "owner": "GPT-6 Astra, loot-roll agent"
+ "owner": "GPT-5.6 Sol, PR completion agent"
},
{
"number": 61,
@@ -1532,14 +1534,14 @@
},
{
"number": 58,
- "summary": "The curl-to-shell local bootstrap is already present as install.sh and is the documented first-run path.",
+ "summary": "The source installer shipped; the requested binary installer did not",
"importance": 3,
"gain": 4,
"effort": 1,
"confidence": "high",
- "disposition": "superseded",
- "rationale": "The repository root contains a POSIX installer with the exact raw-GitHub curl command. It checks prerequisites, offers user-local tool installs, clones the repository, installs the checkout-resolving CLI launcher, and points the user to lyracore dev up. README and quickstart both lead with it. The implementation evolved from fetching a Gateway binary to a source-first, pinned-CLI checkout, but it satisfies the bootstrap outcome.",
- "next_action": "Close as shipped under the current source-first installer; optionally record one clean Linux and one clean macOS smoke before closure.",
+ "disposition": "decision",
+ "rationale": "install.sh clones the source and installs a pinned CLI launcher. The original issue instead requires both CLI and Gateway binaries in the installation folder. Treating the source-first flow as full completion would hide that difference.",
+ "next_action": "Decide whether the supported source installation replaces this binary-distribution request. If binary distribution remains wanted, define supported targets and release artifacts before implementation.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/58. The requested outcome is a curl bootstrap into a working local LyraCore checkout.",
@@ -1560,9 +1562,9 @@
"gain": 1,
"effort": 3,
"confidence": "high",
- "disposition": "superseded",
+ "disposition": "done",
"rationale": "Abrupt range-leave presentation and repeated crossings were properties of the removed Northshire-to-Elwynn region handoff. Current fixture Shard crossings are escrowed continent or instance transfers, not an overlapping walkable view merge. Keeping this issue open implies an active feature that the current topology deliberately removed.",
- "next_action": "Close with the region tier retirement; restore or rewrite the issue only if a walkable region seam returns.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/56. The issue is scoped to range-leave behavior and repeated crossings at a walkable seam.",
@@ -1572,7 +1574,7 @@
"related_prs": [],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/56",
"updatedAt": "2026-08-11T08:17:17Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -1610,17 +1612,16 @@
"effort": 5,
"confidence": "high",
"disposition": "human",
- "rationale": "Recent work closed two unauthenticated denial-of-service paths, and an open PR adds proof limits and Session expiry. Those changes cover part of the security section, but the issue also requires a named host, TLS and network policy, durable backup and restore, monitoring, restart practice, and a real Internet client drill. This is an Operator project rather than one source change.",
+ "rationale": "Pre-auth limits and Session Expiry shipped in merged PR #416. A public demo Realm still needs a named host, backup and restore procedures, operational ownership and an approved deployment.",
"next_action": "Split the remaining work into a reviewed public-host runbook and reversible automation, then have an Operator name the host and approve the first deployment and restore drill.",
"blockers": [
"No named public host or deployment target is authorized.",
- "Backup and restore behavior has not been demonstrated.",
- "PR #416 is still under review."
+ "Backup and restore behavior has not been demonstrated."
],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/53. The issue spans host hardening, deployment, backups, monitoring, and real-client operation.",
"https://github.com/LyraCoreProject/LyraCore/pull/410. Merged pre-auth deadlines, bounded blocking capacity, and fixed-field world authentication decoding.",
- "https://github.com/LyraCoreProject/LyraCore/pull/416. The open PR caps proof attempts and expires Session keys.",
+ "https://github.com/LyraCoreProject/LyraCore/pull/416. The merged PR caps proof attempts and expires Session keys.",
"https://github.com/LyraCoreProject/LyraCore/blob/a6e7119484e35c8779f0f013af7dadafbc293ce7/deploy/systemd/spacetimedb-standalone.service. The repository contains a standalone SpacetimeDB service unit, but that is only one part of the requested operated realm."
],
"related_prs": [
@@ -1639,9 +1640,9 @@
"gain": 4,
"effort": 1,
"confidence": "high",
- "disposition": "superseded",
+ "disposition": "done",
"rationale": "The issue targets ensure_away and fold_home_shard, neither of which exists. The Gateway now keeps shared Shard connections and selects visible peers through WorldView. ViewerGates carries the viewer's ghost state, and peer creation consults ghost and stealth state before sending CREATE. A later merged fix also restores a peer's aura state when stealth ends.",
- "next_action": "Close the issue as superseded by the shared connection model and the current visibility gates; retain the existing WorldView coverage.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/51. The requested changes name the removed ensure_away and away-feed design.",
@@ -1655,7 +1656,7 @@
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/51",
"updatedAt": "2026-08-11T08:22:18Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -1665,7 +1666,7 @@
"gain": 4,
"effort": 2,
"confidence": "high",
- "disposition": "ready",
+ "disposition": "implementing",
"rationale": "The source scanner still recognizes only character_guid, player_guid, and owner_guid. Existing manual cleanup for aura, melee, threat, and combo state shows that unit-keyed tables remain a real transfer blind spot. This is a localized Architecture Test change that prevents future cross-database state loss without changing runtime behavior.",
"next_action": "Extend character_owned_tripwire to inventory unit-guid columns and require each discovered table to have character_owned markers or an explicit exclusion with a reason; add a scanner fixture that fails on an unclassified target_guid table.",
"blockers": [],
@@ -1679,7 +1680,7 @@
"url": "https://github.com/LyraCoreProject/LyraCore/issues/50",
"updatedAt": "2026-08-11T08:16:50Z",
"github_state": "open",
- "owner": "Codex"
+ "owner": "GPT-5.6 Sol, ownership check agent"
},
{
"number": 49,
@@ -1688,9 +1689,9 @@
"gain": 1,
"effort": 5,
"confidence": "high",
- "disposition": "superseded",
+ "disposition": "done",
"rationale": "The fixture and production topology no longer activate region assignments. Current documentation explicitly retires the walkable region seam and keeps continental and instance routing. Building the requested editor now would put a large UI around inert topology data. Shard load telemetry can support a smaller future operations surface after #73 selects one.",
- "next_action": "Close this issue as retired with the region tier; file a smaller load-telemetry issue only after #73 chooses the CLI or remote console surface.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
"blockers": [
"The region tier was retired.",
"Issue #73 has not selected an operations surface."
@@ -1704,7 +1705,7 @@
"related_prs": [],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/49",
"updatedAt": "2026-08-11T08:22:15Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -1714,9 +1715,9 @@
"gain": 1,
"effort": 1,
"confidence": "high",
- "disposition": "superseded",
+ "disposition": "done",
"rationale": "The repository removed sub-map regions and mid-walk warm handoff. All recorded angle tests also passed before that removal, so further work on the old hysteresis design would target code that no longer exists.",
- "next_action": "Close the issue with links to the retired region-sharding design and current architecture.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/48",
@@ -1726,7 +1727,7 @@
"related_prs": [],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/48",
"updatedAt": "2026-08-11T08:16:42Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -1735,10 +1736,10 @@
"importance": 4,
"gain": 4,
"effort": 1,
- "confidence": "high",
+ "confidence": "medium",
"disposition": "verify",
- "rationale": "PR #384 implements the missing cleanup while preserving Transfer safety. The workaround named in the issue is no longer present, so this open issue appears stale and needs a focused regression check before closure.",
- "next_action": "Run the existing party cleanup and Transfer tests against main, then close the issue if both pass.",
+ "rationale": "The Character disappearance Relay exists, but its current Architecture Tests check call names rather than proving deletion and Transfer outcomes. The generic read signature can fail, although the production cache read currently returns Ok. A source scan alone is insufficient closure evidence.",
+ "next_action": "Verify the actual Character disappearance callback and its read-failure behavior before closure. Existing tests only scan its source; add behavior coverage for deletion and Transfer if needed.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/46",
@@ -1760,9 +1761,9 @@
"gain": 2,
"effort": 1,
"confidence": "high",
- "disposition": "superseded",
+ "disposition": "done",
"rationale": "PR #421 removed the fan-out pattern that motivated the table-collapse decision. Its 2,000-Character benchmark reduced queued jobs from 4,000,000 to 336,124 in the distributed case, so the proposed comparison would measure an obsolete architecture.",
- "next_action": "Close the issue as superseded by PR #421 and retain future performance work under a benchmark that exercises the current viewer-audience path.",
+ "next_action": "Closed with current-source evidence. See the GitHub triage comment.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/45",
@@ -1774,7 +1775,7 @@
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/45",
"updatedAt": "2026-08-11T08:16:28Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex"
},
{
@@ -1972,7 +1973,7 @@
"confidence": "high",
"disposition": "decision",
"rationale": "PR #397 closed the package API and lint slice, and the cross-repository CLI workflow is established. The unresolved Server manifest is a product and deployment design choice, while issue #58 and fresh-machine verification are separate executable slices.",
- "next_action": "Decide the minimum Server manifest contract, then delegate issue #58 and a separate fresh-machine Gate in the lyracore-cli repository before returning here for the pin bump.",
+ "next_action": "Decide the minimum deployment manifest and binary-distribution contract. #58 has a source installer but its requested binary distribution is unresolved.",
"blockers": [
"A decision on the Server manifest contract",
"Open issue #58 for the installer",
@@ -2290,6 +2291,31 @@
"updatedAt": "2026-08-24T07:48:15Z",
"github_state": "open",
"owner": "Codex"
+ },
+ {
+ "number": 441,
+ "summary": "A delayed START can recreate a resolved Loot Roll",
+ "importance": 5,
+ "gain": 4,
+ "effort": 4,
+ "confidence": "high",
+ "disposition": "decision",
+ "rationale": "PR #439 deduplicates active rolls. Resolution deletes that identity. A durable generation must distinguish retries from a later valid kill before changing storage.",
+ "next_action": "Design a stable promotion identity and cleanup rule. Prove old START replay is refused while a later roll on the same corpse and slot succeeds.",
+ "blockers": [
+ "PR #439 must settle first; any schema change needs human review before shipping."
+ ],
+ "evidence": [
+ "https://github.com/LyraCoreProject/LyraCore/issues/441",
+ "https://github.com/LyraCoreProject/LyraCore/pull/439"
+ ],
+ "related_prs": [
+ 439
+ ],
+ "url": "https://github.com/LyraCoreProject/LyraCore/issues/441",
+ "updatedAt": "2026-09-05T15:37:16Z",
+ "github_state": "open",
+ "owner": "Codex"
}
],
"pull_requests": [
@@ -2298,27 +2324,27 @@
"url": "https://github.com/LyraCoreProject/LyraCore/pull/426",
"title": "ci(module): run the durable test suite and drop its fixed sleeps",
"owner": "Existing PR review owner; Codex monitors",
- "status": "Durable CI failed on current head",
- "next_action": "Existing owner fixes the durable CI failure and refreshes review.",
- "head": "3677964044969f8012e05f6963a312f9ec7d222f"
+ "status": "Merged",
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
+ "head": "87664f92a802d8100d952d38b94490ea04973ff5"
},
{
"number": 419,
"url": "https://github.com/LyraCoreProject/LyraCore/pull/419",
"title": "ci: make fmt and clippy blocking, and clear the workspace to match",
"owner": "Existing PR review owner; Codex monitors",
- "status": "Test failed on current head",
- "next_action": "Existing owner fixes the failing test and rebases after the other changes.",
- "head": "bdb9d00843a72eb163baeff4847182710dbde22d"
+ "status": "Merged",
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
+ "head": "b24a5c2f06c141e31cd6fb7c5d2e2d2072fd19dc"
},
{
"number": 416,
"url": "https://github.com/LyraCoreProject/LyraCore/pull/416",
"title": "fix(logon): cap proof attempts per peer and expire session keys",
"owner": "Existing PR review owner; Codex monitors",
- "status": "Current CI passed; security and human review remain",
- "next_action": "Existing owner handles security review. The new schema requires human review before shipping.",
- "head": "27b8cb8af8232711b77b6eddb338b7c95c0631a0"
+ "status": "Merged",
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
+ "head": "39e454c488066d4711936942187e09363caf8b07"
},
{
"number": 415,
@@ -2326,15 +2352,16 @@
"title": "refactor(auction): let the Module own the auctioneer interaction Gate",
"owner": "Existing PR review owner; Codex monitors",
"status": "Merged",
- "next_action": "Complete; preserve the reviewed result."
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
+ "head": "f0aed9b2ba3cf2380996b75dd369b36555cad4fb"
},
{
"number": 434,
"url": "https://github.com/LyraCoreProject/LyraCore/pull/434",
"title": "Protect fixture creatures from cast Claims",
"owner": "GPT-5.6 Sol, Package Delta agent",
- "status": "Merged; all CI checks passed",
- "next_action": "Complete. Coordinating review passed with no unresolved findings.",
+ "status": "Merged",
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
"head": "1b120cc85e741188bee221c2bab973f2f555f3da",
"merge_commit": "2365075fdb0b110ad4bd56668f8c629fdfb5d14a"
},
@@ -2343,8 +2370,8 @@
"url": "https://github.com/LyraCoreProject/LyraCore/pull/435",
"title": "Keep periodic deaths from rolling back the aura tick",
"owner": "GPT-6, Codex",
- "status": "Merged; all CI checks passed",
- "next_action": "Complete. Coordinating review passed with no unresolved findings.",
+ "status": "Merged",
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
"head": "7ef874dbf22cc5944433f2834b98af8eef531361",
"merge_commit": "8f3a8a78b69f701bb078cf54920722785d27c9af"
},
@@ -2353,27 +2380,207 @@
"url": "https://github.com/LyraCoreProject/LyraCore/pull/436",
"title": "Maintain the issue order and delivery report",
"owner": "GPT-6, Codex",
- "status": "Addressing CodeRabbit publisher finding",
- "next_action": "Pin the local publisher and lock its dependencies, update the report, then finish review and CI."
+ "status": "Merged",
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
+ "head": "7a63f5dd86eb2336b64df5de28ed97f3249b9202"
},
{
"number": 437,
"url": "https://github.com/LyraCoreProject/LyraCore/pull/437",
"title": "Measure motion delivery at each Shard callback",
"owner": "GPT-6 Astra, motion diagnosis agent",
- "status": "Merged; CI and review passed",
- "next_action": "Diagnostic fix complete. Issue #424 remains open until the reported freeze is reproduced and resolved.",
+ "status": "Merged",
+ "next_action": "Complete. Reassess linked issues for any remaining acceptance.",
"head": "4ec3ecd47b4e43854d48e696c1e54521e1160f24",
"merge_commit": "b1c0f9400a31a2522b9385f6870a9eb8f8f92c76"
},
{
"number": 438,
"url": "https://github.com/LyraCoreProject/LyraCore/pull/438",
- "title": "Remove public motion after cross-map teleport",
- "owner": "GPT-5.6 Sol, teleport agent",
- "status": "CI and coordinating review passed; CodeRabbit rate-limited",
- "next_action": "Request CodeRabbit review after 07:18 UTC and resolve any findings before merge.",
- "head": "97ea5b2349dfb5e836b8bd87ca0c8d88e8e5d74e"
+ "title": "fix(world): remove motion after cross-map teleport",
+ "owner": "GPT-5.6 Sol, PR completion agent",
+ "status": "Open; fresh review audit assigned",
+ "next_action": "Read all reviews and threads, address valid findings, and verify current-head CI. Merge policy pending.",
+ "head": "97ea5b2349dfb5e836b8bd87ca0c8d88e8e5d74e",
+ "checked_at": "2026-09-07 13:04 UTC",
+ "checks": [
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ]
+ },
+ {
+ "number": 440,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/440",
+ "title": "fix(gameobject): require opener for locked goobers",
+ "owner": "GPT-5.6 Sol, PR completion agent",
+ "status": "Open; fresh review audit assigned",
+ "next_action": "Read all reviews and threads, address valid findings, and verify current-head CI. Merge policy pending.",
+ "head": "c668015c66bfae3e9928611f2a9e118850636914",
+ "checked_at": "2026-09-07 13:04 UTC",
+ "checks": [
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ]
+ },
+ {
+ "number": 439,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/439",
+ "title": "fix(loot): keep concurrent promotions on one live roll",
+ "owner": "GPT-5.6 Sol, PR completion agent",
+ "status": "Open; fresh review audit assigned",
+ "next_action": "Read all reviews and threads, address valid findings, and verify current-head CI. Merge policy pending.",
+ "head": "7b11e682ee0581c47432d0d23539105dbbd69f5f",
+ "checked_at": "2026-09-07 13:04 UTC",
+ "checks": [
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ]
+ },
+ {
+ "number": 56,
+ "url": "https://github.com/LyraCoreProject/lyracore-cli/pull/56",
+ "title": "fix(packages): count Package Deltas in trust review",
+ "owner": "GPT-5.6 Sol, CLI completion agent",
+ "status": "Open in lyracore-cli; review audit assigned",
+ "next_action": "Resolve review findings, verify CLI tests and MSRV, then publish the core pin update.",
+ "head": "9830550c14af4049941a1931e09e2795d1cfe3ee",
+ "checked_at": "2026-09-07 13:04 UTC",
+ "checks": [
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ]
+ },
+ {
+ "number": 444,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/444",
+ "title": "docs(triage): refresh issue order and resume PR ownership",
+ "owner": "GPT-6 Astra, Codex",
+ "status": "Addressed three CodeRabbit findings; durable CI rerun underway",
+ "next_action": "Refresh stale evidence and recorded heads, finish the failed-job retry, and verify the revised commit.",
+ "head": "a8d3dabd33d3766d0daf1a42ff30df66cae56047",
+ "checked_at": "2026-09-07 13:04 UTC",
+ "checks": [
+ {
+ "name": "durable",
+ "result": "IN_PROGRESS"
+ },
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ]
+ },
+ {
+ "number": 6,
+ "url": "https://github.com/LyraCoreProject/wire-harness/pull/6",
+ "title": "fix(suite): run scenarios from the adapter directory",
+ "owner": "GPT-6 Astra, Codex",
+ "status": "PR open; CI running",
+ "next_action": "Complete independent review and CI, then publish a release tag and core pin.",
+ "head": "9da18425cf099bcd66d1f193f7fabac44f174e9e",
+ "checked_at": "2026-09-07 13:04 UTC",
+ "checks": [
+ {
+ "name": "test (ubuntu-latest)",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test (macos-latest)",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "coverage",
+ "result": "SUCCESS"
+ }
+ ]
}
],
"history": [
@@ -2396,8 +2603,22 @@
{
"at": "2026-09-05 07:03 UTC",
"text": "Merged #435 aura rollback, #434 fixture cast protection and #437 motion diagnostics after review and green CI. Kept #424 open because the long-running freeze is unverified. Assigned #63, #367 and #398. CodeRabbit found the report publisher was unpinned; replacing it with a locked local dependency."
+ },
+ {
+ "at": "2026-09-07 12:53 UTC",
+ "text": "Resumed report ownership. Refreshed 86 open issues, recorded new lifecycle issue #441, and found four existing PRs to complete. Assigned isolated review, ownership-check and CLI work."
+ },
+ {
+ "at": "2026-09-07 12:55 UTC",
+ "text": "Current main passed all workflows. Closed shipped CI work and retired region work with linked evidence. Corrected #58 and #77: the binary installer and measured capacity targets are not proved by the existing source changes."
+ },
+ {
+ "at": "2026-09-07 13:04 UTC",
+ "text": "Opened wire-harness PR #6 for #105 after a failing path repro and 55 passing Rust tests. CodeRabbit found three stale report records; corrected CI evidence, the merged security dependency and missing PR heads."
}
],
"postplan_draft": "1u1gh8ximdga",
- "report_url": "https://1u1gh8ximdga.postplan.dev"
+ "report_url": "https://1u1gh8ximdga.postplan.dev",
+ "merge_policy": "Codex takes the final merge after current-head checks pass and review findings are resolved. Explicit human review requirements and real-client acceptance remain separate.",
+ "audit_note": "Fetched every open issue with comments. All retained open issue timestamps match the previous assessment; #441 is new. Reviewed intervening main changes and corrected stale implementation, closure and acceptance claims."
}
diff --git a/docs/triage/report.html b/docs/triage/report.html
index 39993cd8b..d87024c4f 100644
--- a/docs/triage/report.html
+++ b/docs/triage/report.html
@@ -21,11 +21,12 @@
@media print{.controls{display:none}body{max-width:none;padding:0;font-size:10pt}.scroll{overflow:visible}a{color:inherit}}
LyraCore issue order and delivery
-
Owner: Codex in the triage and delivery thread. Updated .
-88 of 88 issues assessed. Source revision b1c0f9400a31a2522b9385f6870a9eb8f8f92c76.
-
All 88 issues are assessed. Aura rollback and fixture cast protection are merged. Motion diagnostics are merged; the reported long-running freeze remains unverified. The second wave is underway.
+
Owner: Codex in the triage and delivery thread. Updated .
+89 of 89 issues assessed. 77 open on GitHub.
+Source revision b4c17c481f66784fd24677f583e0368fc3ac8c95.
+
77 open issues assessed; 12 closed issues retained for history. Finishing existing PRs and implementing the next independent checks.
-
Current work
#63: prevent duplicate active loot-roll promotion and preserve existing votes.
#367: enforce the existing lock Gate before GOOBER effects.
#398: count generated Package Deltas in CLI Trust Review, then update the core pin.
#80: complete teleport cleanup review. Maintain the report and drive each PR through CI and comments.
+
Current work
Finish current-head reviews for core PRs #438, #439 and #440.
Implement #50 to catch Character state omitted from cleanup or Transfer.
Finish CLI PR #56 for #398 and publish the core pin update.
Refresh every issue assessment and prepare the next independent tasks.
#105: repair suite dispatch and distinguish startup failures before relying on more Headless Client runs.
How I set the order
Importance measures the cost of leaving the problem open. Gain measures reach and the work it unlocks.
Both use 1 to 5, with 5 highest. Effort uses 1 for a small local change, 3 for a substantial slice,
@@ -42,12 +43,13 @@
Order
Issue and assessment
Importance
Gain
Effort
Return
-
State and owner
Next action
1
#63Loot-roll promotion remains non-idempotent: concurrent Gateways can create duplicate rolls and split the party's votes.
The current Gateway still promotes a staging roll on Realm-core and only then clears the World Shard copy. Both periodic and synchronous promotion paths can run in different Gateway processes. Realm-core's game_loot_roll has only an auto-increment primary key and insert_roll_rows always inserts a new roll and vote set. Module reducers serialize calls, so an idempotent Realm-core check or a compatible uniqueness key can close the race at its authoritative side.
A private concurrent START test reproduced two rolls and now passes with one complete vote set. Finish validation and review. Delayed replay after a resolved roll is deleted remains a separate lifecycle gap.
Runtime Script names already landed in CLI PR #55. The remaining Datascript line falsely says nothing reads them. It obscures what an Operator installs.
Implement generated Package Delta counts in an isolated CLI worktree. Test through fake adapters, publish the CLI PR, then make a core pin PR after reviewed merge.
4
#80A cross-map teleport still removes the Character's world entity without deleting its public motion row, leaving a stale AOI-visible row on the source Shard.
The exact outlier remains in current code. teleport_player drops only game_entity_motion_pending, then deletes game_world_entity in the cross-map branch. Other teardown paths delete the public motion row.
module/src/world.rs: teleport_player calls motion::drop_pending before branching, but the cross-map branch deletes only the world entity after combat and stealth cleanup.
module/src/helpers.rs and module/src/creatures/tick/lifecycle.rs: the standard entity cleanup contract includes game_entity_motion and game_creature_spline.
The claim that no workflows exist is stale. Rust tests and wasm checks now run; formatting and clippy remain advisory until PR #419. PR #426 adds durable tests.
Confidence: high. Issue updated 2026-08-28.
Blocked by
PR #419 and PR #426 are already owned and under review.
Monitor the existing owner, rebase after the other open PRs, and require fresh blocking checks.
7
#50The character-owned Architecture Test still misses tables that refer to a Character through unit-shaped columns such as target_guid or attacker_guid.
The source scanner still recognizes only character_guid, player_guid, and owner_guid. Existing manual cleanup for aura, melee, threat, and combo state shows that unit-keyed tables remain a real transfer blind spot. This is a localized Architecture Test change that prevents future cross-database state loss without changing runtime behavior.
Extend character_owned_tripwire to inventory unit-guid columns and require each discovered table to have character_owned markers or an explicit exclusion with a reason; add a scanner fixture that fails on an unclassified target_guid table.
Subscribed-table parity leaves other generated definitions unchecked. A reproducible generation check would catch drift before unrelated schema work encounters it.
Confidence: high. Issue updated 2026-08-28.
Blocked by
Coordinate workflow changes with active PRs #419 and #426.
Build a deterministic offline generation check using the documented exceptions, after the active CI cleanup settles.
9
#341Service unit parsing misses continued directives
The CLI parser still splits physical lines. Continued directives can hide a conflicting Standalone service. The fix is testable without changing a host.
Implement systemd logical-line parsing through the existing process Fake and test tracked and conflicting units.
10
#75The pinned raid benchmark neither reports dead Characters nor sends Release Spirit, so later additive stages can silently measure a mostly inactive population.
The exact harness release named in the issue is still pinned. Its benchmark source has raid mode but no death counter, CMSG_REPOP_REQUEST, or revive flow. Reporting the count is a bounded first slice that restores measurement honesty.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Landing in LyraCore requires a wire-harness release and pin bump.
Automatic recovery needs real protocol and development-Realm Verification.
.wire-harness-rev: still pins the reported v0.1.0-alpha.3 commit.
The pinned bench source has boss raid mode and report generation but no repop, revive, or dead-Character report path.
4
4
3
5.3
Ready Codex
Add a dead-at-window-end count to the wire-harness benchmark report and tests first. Treat automatic Release Spirit and recovery as a second protocol slice, then release and bump the LyraCore pin.
The current verifier reads ActiveState, LimitNOFILE and StandardError. It does not compare the effective ExecStart or name relevant drop-ins. A success report can therefore describe the wrong service.
lyracore-cli/src/cmd/service.rs: verify omits ExecStart and DropInPaths.
4
4
3
5.3
Ready Codex
Compare the effective command with the tracked contract and report overriding drop-ins, using a process Fake.
12
#40Early Warlock pet quest chains still lack the imported hostile summon encounters and item-use path needed to earn the Voidwalker and Succubus.
This is the strongest ready feature candidate because it restores core class progression and the issue already names concrete creatures, items, and spells. Most behavior can be covered with Module and Headless Client Gates; only the final presentation check needs a human.
Confidence: high. Issue updated 2026-08-11.
Blocked by
A real-client visual check after the Module behavior passes
Code fact: importer/src/main.rs force-includes only the existing pet templates 416 and 1860; the Module has E_SUMMON_PET for persistent owned pets but no hostile ownerless summon effect for these quests.
4
4
4
4.0
Ready Codex
Write a scoped Ticket for the hostile ownerless summon effect, required importer rows, item-use route, and kill credit, then implement it with Headless Client coverage and leave the visual check for a real client.
13
#272A creature that enters a viewer's AOI during an active movement leg can stand still and then jump forward; delayed motion flushes and the four-second sensing cadence can produce similar symptoms.
The cheapest defect is still present: peer CREATE replays a resident taxi spline but never the creature's current spline. Motion shedding and sensing cadence are separate policy choices, so they should not hold up that localized fix.
Confidence: high. Issue updated 2026-08-18.
Blocked by
Full closure needs a maintainer choice for motion-flush shedding and proximity sensing cadence.
The combined symptom still needs real-client acceptance.
gateway/src/stdb/subscriptions.rs: offer_peer_create appends a resident taxi spline after CREATE but has no equivalent lookup for game_creature_spline.
gateway/src/stdb/world_view.rs: maybe_queue_motion_flush still drops a flush at egress depth while retaining the superseding pending map.
module/src/creatures/ai.rs: SENSE_EVERY_N_TICKS remains 8 at a 500 ms movement tick.
Implement resident creature-spline replay immediately after peer CREATE with an ordering test. Split motion shedding and sensing cadence into separate decisions before changing either.
14
#72SpellCastEvent still multiplexes several wire signals through independent booleans and zero-value conventions.
The row contains is_completion, is_interrupted, delay_ms, and is_proc_log alongside ordinary START and GO fields. The Gateway decodes them in ordered branches, while comments state which fields must be the only active signal. Typed signal constructors reduced literal duplication but do not enforce mutual exclusion. An additive kind would make the union explicit, but schema publication and generated bindings make this more than a local refactor, and the unused is_completion field needs a compatibility choice.
Approve an additive event-kind contract and is_completion policy, then stamp every constructor, regenerate Gateway bindings, switch decoding to the kind, and publish all fixture databases before removing reliance on the old fields.
15
#137Bank storage and purchase behavior are implemented, but the pinned Headless Client has no end-to-end bank adapter and the stock-client window has not been checked.
The parent and both blocking code issues are closed. Current Gateway paths cover activate, deposit, withdraw, and slot purchase, while the pinned adapter tree has no bank script.
Confidence: high. Issue updated 2026-08-12.
Blocked by
Completing the issue requires a wire-harness release and LyraCore pin bump.
The final window and cell behavior require a human with a stock client.
Add the bank-flow adapter in wire-harness, release it, and bump the pin. Then run the adapter and the listed real-client window checks on an approved development Realm.
16
#142Drowning works in Module and Gateway tests, but there is no pinned Headless Client adapter for a complete dive cycle and no real-client calibration of the submerge threshold.
The code half shipped in PRs 150 and 166. The pinned wire-harness tree contains no drowning or breath adapter, so a bounded cross-repository implementation remains before the human pass.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Completing the issue requires a wire-harness release and LyraCore pin bump.
Submerge timing and mirror-bar rendering require a human with a stock client.
Add the LyraCore dive adapter in wire-harness with no stored credentials, then release and bump the pin. Run it on an approved development Realm before calibrating the real client.
17
#31Random item properties are absent from imported data and item state, and all relevant Gateway packet paths still emit random property id zero.
This is the second-best ready feature candidate. The issue has a current two-Ticket Spec, the missing storage and packet fields are confirmed in code, and the first Tracer can establish one deterministic affix end to end without a design decision.
Confidence: high. Issue updated 2026-08-22.
Blocked by
A real-client tooltip check after the deterministic Tracer passes
Code fact: module/src/items/rules.rs still uses a fixed ENCHANTS list, no game_item_random_property or property-weight table exists, and Gateway loot, item, mail, and auction codecs write item_random_property_id as zero.
3
4
5
2.4
Ready Codex
Implement the Spec's Tracer Ticket first: import the minimum property data, persist one rolled property, and carry it through loot, inventory, mail, and auction packets; follow with the weighted generalization Ticket.
18
#30The Realm has no seasonal game-event data model, calendar activation, spawn participation, or Operator debug controls.
The issue has a detailed current Spec and carries the ready-for-agent label. It is implementable, but it spans importer data, persistent state, spawn lifecycle, calendar logic, and tooling, so it should be split before code work begins.
Code fact: the repository has no seasonal game-event tables or debug verbs; game_event_reaper_schedule is an unrelated cleanup schedule, and Gateway condition handling states that seasonal events do not exist.
2
4
5
1.6
Ready Codex
Split the Spec into a deterministic single-event Tracer, calendar generalization, spawn integration, and Operator control Tickets, then implement the Tracer first.
19
#28Drink item use does not create or decay an inebriation state, update PLAYER_BYTES_3, or apply chat slurring.
The feature is self-contained once the exact 1.12 field encoding, decay rate, and text transform are taken from a primary reference. No competing architecture or open dependency is visible.
Code fact: PLAYER_BYTES_3 is initialized for Character creation, but searches across importer, Module, and Gateway code find no drunk state, inebriation decay, or slur transform.
2
2
4
1.0
Ready Codex
Confirm the 1.12 constants and transform from a primary emulator source, then implement persistent inebriation, timed decay, PLAYER_BYTES_3 projection, and deterministic chat Gates as one Ticket.
20
#60The two historical crashes during roughly 500 simultaneous disconnects have no current rerun, so core availability is still unverified.
The Gateway has since gained pre-auth deadlines, bounded blocking-task admission, file-descriptor checks, and more resilient accept handling, all of which can change failure behavior. None proves that the post-auth mass-disconnect crash is gone. The issue's done condition remains two clean Runbook B runs with process, kernel, and application evidence.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires the controlled 500-client load environment.
Run the pinned Headless Client Runbook B twice against the current release Gateway, recording exit status, kernel OOM or signal evidence, file descriptors, task counts, session cleanup, and recovery.
21
#424Motion delivery can stop until the Gateway restarts
An offline test now proves that 172 healthy motion callbacks can produce the reported warning when the mover has no peer viewer. The current counter counts peer packets. The report does not yet prove a stopped subscription or a root cause for visible freezing.
Real dispatch regression proves healthy mover-only traffic produced the old warning. Per-Shard diagnostics, coalescing and recovery-observation regressions pass.
Use the new per-Shard queue, callback and pump diagnostics to reproduce a stopped stream. A real-realm capture requires a named host and authorization; the original 15-hour freeze is not yet explained.
22
#46A deleted Character previously left a realm-core party member row, but the Gateway now relays Character disappearance and removes membership only after the Character is absent from every Shard.
PR #384 implements the missing cleanup while preserving Transfer safety. The workaround named in the issue is no longer present, so this open issue appears stale and needs a focused regression check before closure.
Code fact: gateway/src/main.rs starts spawn_character_gone_relay, and gateway/src/stdb/subscriptions.rs leaves the realm-core party only when character_anywhere reports the Character absent from all Shards.
Run the existing party cleanup and Transfer tests against main, then close the issue if both pass.
23
#88Movement heartbeat batching is already active at 40 ms with 128-entry calls; the remaining work is an approved load acceptance run and tuning only if its timing signals regress.
The current code contradicts the original title: gw_movement_batch, chunking across call pipes, entry isolation, and metrics all exist. PR 234 added a guarded acceptance runner but explicitly left the 500-mover and real-client checks undone.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires an approved synthetic load driver and disposable Realm.
Run docs/movement-batch-acceptance.md against an approved disposable Realm with at least 500 movers, record batch factor and both latency signals, and tune one lever only if the tripwire fires.
24
#399Replay no longer needs client data for a completed plan
Current CLI main reads target provenance before resolving client data. The script-only no-op test already runs without client data. The original control-flow complaint appears fixed by the replay work.
Run the empty-inventory/no-client regression against the pinned CLI, then close with evidence if it passes.
25
#84The current Gateway has explicit world-Shard promotion to Realm-core and settlement fan-out, but the reported three-Shard failure has never been rerun against this implementation.
Current Store code and Fake-based tests cover the topology the issue said was suspect. That is meaningful newer evidence, but it does not reproduce the exact development stack. The issue also combines an unrelated bot-party combat failure that should be split if it remains.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
The exact three-Shard scenario needs an Operator-run development stack and the repaired Headless Client pin from issue 105.
gateway/src/world/loot.rs: relay_tick promotes pending Shard rolls to Realm-core and fans resolved winners to every connected World Shard.
gateway/src/world/loot_tests.rs: Fake-based tests cover staging promotion, clearing, and settlement fan-out.
module/src/loot/rolls.rs: settle_loot_roll grants only on the Shard that owns the corpse item.
4
4
2
8.0
Verify existing work Codex
Rerun group loot on a fresh current three-Shard development stack with schedules armed. If it fails, capture promotion, Realm-core resolution, and settlement rows separately. Split any bot-party combat failure into its own issue.
26
#59The old crowd-cliff numbers cannot answer current capacity after movement and Relay changes; Runbook A still needs a fresh end-to-end run.
The current movement model writes one row per mover and uses AOI selection instead of the former per-recipient event rows. PR #421 also reduced distributed event Relay work, but its benchmark explicitly measured selection and encoding rather than realm capacity or latency. The 150/371-client measurements therefore describe neither the current writer load nor the current Gateway work.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires a controlled release benchmark environment.
Run Runbook A against a release build at the current main commit and publish capacity, latency, disconnect, writer-occupancy, QUEUESTAT, AOISTAT, and SHARDLOAD results with exact revisions.
27
#86Per-viewer motion supersession is implemented, but there is no current evidence that dense-crowd login starvation still has the 2026-08-09 shape after the shared WorldView changes.
The first coalescing rung is present. Later work replaced per-Character subscriptions with one per-Shard stream and an in-memory cell index, invalidating part of the old cost account. Dense fan-out is still inherently large, but a login-priority lane or interest cap needs fresh evidence.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
Issue 59's current crowd-cliff measurement is still open.
A dense interest cap changes visible behavior and needs maintainer approval.
Run the current dense-crowd measurement from issue 59 and record login completion, queue depth, relay latency, CPU, and delivered motion. Choose a priority lane or interest cap only if starvation reproduces.
28
#104The Rust CLI now has import world and import vmaps, but fresh-provision parity is unrecorded and the old import-world.sh still exists.
lyracore-cli PR 25 implemented the verbs and the current pin includes them. That PR explicitly left fresh-provision Verification and retirement of the script for later, and the script remains in the tree.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Fresh-provision parity needs approved dump and client data plus Operator coordination.
Private or external consumers of import-world.sh must be inventoried before deletion.
docs/development-cli.md: the current CLI documents import world followed by import vmaps.
importer/scripts/import-world.sh: the legacy flow is still present.
3
4
2
6.0
Verify existing work Codex
Run import world and import vmaps on a fresh approved development stack. If their results match the old flow, inventory remaining script consumers, repoint them, and delete import-world.sh.
29
#55The residual crowd disconnects remain unclassified and require a fresh correlated load run.
The issue's static audit found no corruption path and deliberately parked the symptom until logs could separate peer exits, writer failures, and subscription recovery. The Gateway still logs the terminal World Session error, while the current movement and load-shedding paths have changed enough that the old 3 to 8 per 150 result cannot establish today's behavior.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires a controlled load run and correlated logs.
Run the current crowd scenario with stable peer IDs and collect Gateway session-end causes, Headless Client disconnect reasons, QUEUESTAT, AOISTAT, and SHARDLOAD for the same time window.
30
#78GridBox still recenters at every cell crossing, but this no longer tears down SpacetimeDB subscriptions; it now applies a bounded in-memory index delta and may cause only entity create and destroy churn.
The original measured subscription cost is retired by the shared WorldView. Widening the AOI to 7 by 7 would raise steady audience and relay work, so the old proposed fix should not ship without new evidence of visible churn.
Confidence: high. Issue updated 2026-08-11.
Blocked by
The original measurement does not describe the current architecture.
Measure current AOI recenter deltas and client create and destroy traffic near cell boundaries. Close as superseded if bounded in-memory churn is harmless; otherwise write a new Spec that prices the wider AOI.
31
#103The dynamic door-collision parent has one imported-mesh slice shipped, while runtime collision and instance-aware acceptance remain in issues 113 and 114.
The parent is now a tracker rather than an implementation unit. Its original request for a Spec and split is complete, but the implemented behavior is not. Current eligibility conflicts must be resolved in issue 113 before the parent can advance.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue 113 requires a collision-eligibility decision and implementation.
Issue 114 depends on issue 113 and Operator-assisted Deadmines acceptance.
Keep this as the parent. Resolve issue 113's eligibility decision, implement 113, then complete issue 114 and close the parent from its acceptance evidence.
32
#105The pinned Headless Client suite still invokes file-based scenarios relative to the LyraCore checkout, so many scenarios fail to spawn while the summary looks like an ordinary test failure.
The current pin is still v0.1.0-alpha.3 at the exact reported commit. Its wire-suite.sh contains the broken relative calls, and no newer release exists. This undermines confidence in every live suite claim that uses the pin.
Confidence: high. Issue updated 2026-08-11.
Blocked by
The change must land and be released in LyraCoreProject/wire-harness before the core pin can move.
A maintainer must publish or approve the new harness release.
.wire-harness-rev: still pins v0.1.0-alpha.3 at 219f8cd1670f4b783892388f110d233722892bb3.
The pinned wire-suite.sh uses paths such as bash adapters/lyracore/test-move-relay.sh after sourcing adapter-env.sh.
4
5
3
6.7
Dependency Codex
Fix every scenario call to use ADAPTER_DIR, add subset arguments and a distinct spawn-failure summary in wire-harness, then publish a release and bump the LyraCore pin.
33
#66The two-Gateway capacity experiment remains valuable, but its baseline and three correctness prerequisites are still open.
The duplicate bot-invite defect in #62 is fixed, while #61, #63, and #65 remain. The coordinator and Relay cost model also changed: shared Shard connections and cell audiences make the issue's original query-count assumptions stale. A second Gateway measurement can decide whether horizontal Gateway scaling earns its operational cost, but only against a fresh one-Gateway baseline and after known cross-process corruption paths are closed.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #59 has no current one-Gateway baseline.
Issues #61 and #63 retain cross-process correctness failures.
Issue #65 has no routable Gateway selection mechanism.
Complete #59, #61, #63, and #65, then run one and two Gateway processes against the same Realm with identical Headless Client load and compare writer occupancy, subscriptions, Gateway CPU, latency, and disconnects.
34
#64The Gateway still has no SIGTERM drain path and both listeners end only when their tasks fail.
Current main binds ordinary Tokio listeners and does not register a Unix signal handler. A stop therefore does not close admission, wait for World Sessions, or perform orderly logout. Session leases reduce how long crash residue survives, but they do not provide a drain. The issue correctly waits for #60 because mass teardown behavior must be known before building shutdown around it.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #60 must first establish current mass-disconnect behavior.
After #60, add a shared shutdown signal that closes both listeners, stops new logons, drains World Sessions to a deadline, records clean logout, and exits with observable phase logs.
35
#65Logon still advertises one configured world address and has no Realm-core registry of Gateway address, load, or draining state.
The logon Store returns a one-element realm list built from the configured world address. Realm-core has per-Gateway Shard load samples, but their gateway_key is a hash for accounting rather than a routable address, and no row says a Gateway accepts new World Sessions or is draining. The old estimate that selection is a tiny change no longer matches the required registration and lease work.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #69 must choose the multi-Gateway serving model.
A leased process registry and expiry rule do not exist.
Issue #59 must provide a useful load signal for selection.
After #69, define a leased Gateway process row on Realm-core with advertised address, admission state, and load; make realm-list selection deterministic and test drain exclusion and stale-row expiry.
36
#114Instance-aware door collision and Deadmines acceptance cannot start until dynamic door collision exists and its map-36 eligibility conflict is resolved.
The ray functions and debug reducer still lack instance_id. Issue 113 is unimplemented, and current vmap eligibility requires an active static generation even though the canonical import skips open-world vmaps on the Instance Pool.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Issue 113 is unimplemented.
A maintainer must decide how dynamic collision becomes eligible on map 36 without a bounded-profile static vmap generation.
Final acceptance needs approved client data and an Operator-run development Shard.
module/src/vmap.rs: los_ray and collision_ray accept map_id and endpoints only.
module/src/debug/instance.rs: debug_vmap_ray has no instance argument.
docs/vmap-rollout.md: the Instance Pool is excluded from bounded-profile vmap generations.
4
4
4
4.0
Dependency Codex
After issue 113 has an approved eligibility rule and implementation, thread instance_id through ray callers and run isolated sibling-instance tests before the Deadmines acceptance run.
37
#39Static world collision is shipped, while dynamic GameObject collision, fresh-provision parity, and the final real-client movement checks remain open.
The epic's main collision slices landed in PR #115. Completion now depends on open issue #103 and its remaining children, issue #104's provisioning Gate, and a human Blink and line-of-sight check, so the umbrella is not a single implementation candidate.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #103 dynamic GameObject collision, including open children #113 and #114
Finish #103 through its remaining dynamic collision Tickets, complete #104 on a fresh provision, then run the real-client Blink and line-of-sight matrix and close the epic.
38
#138The repository quickstart is still the only complete guide; the public site exists only as an unbuilt specification, so there is nothing safe to point the 819-line document at.
The issue body contains only a dash. The public-site repository says it is not built yet and has no quickstart content. Shrinking the local guide now would remove the usable instructions.
Confidence: high. Issue updated 2026-08-13.
Blocked by
The published quickstart does not exist yet.
The issue needs an explicit destination URL and ownership rule.
docs/quickstart.md: the current guide is 819 lines and remains linked from README.md.
1
2
1
2.0
Dependency Codex
Wait for the public site to publish and version a complete quickstart, then replace docs/quickstart.md with a short durable pointer and check inbound links.
39
#33The protocol can expose a Realm list, but the Gateway still presents one configured Realm and the deployment lacks the shared account foundation needed for multiple Realms.
Issue #33 explicitly depends on the shared authentication and account work in #34. Starting independent multi-Realm implementation would duplicate or constrain that unfinished design.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #34 shared authentication hub and account policy
Code fact: the current CoordinatorStore realms path returns exactly one configured Realm despite the protocol-level Realm list response.
2
4
5
1.6
Dependency Codex
Complete and verify issue #34, then rewrite this issue around Realm directory discovery, selection, routing, and a two-Realm Gate.
40
#68Zero-disconnect file-descriptor handoff remains a large optional architecture project with all of its prerequisites open.
The Gateway keeps DecrypterHalf in the reader and EncrypterHalf in the writer; there is no cipher snapshot, SCM_RIGHTS transport, or receiving process protocol. The proposed handoff must also reconstruct WorldView state and coordinate ownership without letting either process write stale data. This complexity is only justified after measured restart cost and two-Gateway gain show that ordinary drain and reconnect are insufficient.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issues #64, #66, and #67 are unresolved.
No cipher-state snapshot API or acceptance test exists.
The feature is Unix-specific and needs an Operator value decision.
Do not implement before #64, #66, and #67. If measurements justify it, first isolate and test vanilla header-cipher snapshot restoration, then specify the Unix handoff state machine and real-client acceptance check.
41
#61Deterministic bound identity shipped, but World Session epochs still live inside each Gateway process and cannot reject stale teardown across processes.
One half of the issue is stale: each Gateway now derives the same synthetic owner identity from the Account. The more serious half remains. SessionEpochs is an AtomicU64 plus a process-local map, and disconnect cleanup trusts that local release result before logout. Two Gateways can therefore each believe their World Session is current and let an older socket remove the newer live Character. The issue should be narrowed to a Realm-core Session generation or lease.
Confidence: high. Issue updated 2026-08-11.
Blocked by
The durable lease and expiry semantics need a small design decision.
Issue #69 should state whether arbitrary Gateways may serve the same Account.
Rewrite the issue around a Realm-core-owned Session generation or lease, pass its token through login and logout, and add a two-Gateway test where the losing socket disconnects after the winner enters the world.
42
#71Item GUID allocation can leave a Character's 256-value packed block and collide with another Character; transfer relies on the opposite invariant.
item_guid_for keeps only 24 owner bits and reserves eight bits for a starting slot. next_item_guid then uses the owner's maximum GUID plus one without checking the low-byte boundary. Enough grants, splits, mail, trade, or inventory churn can enter the next owner's block, while owner GUIDs that differ above bit 24 share a block immediately. A primary-key collision can abort an inventory reducer, and cross-database transfer preserves these GUIDs as globally safe identifiers. Existing rows prevent a casual packing change.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Existing item rows use the current packed format.
A durable per-owner serial or another globally unique allocation scheme must be selected.
Choose a durable allocation scheme and live-row migration before implementation; define saturation behavior, preserve client-visible identifiers through transfer, and test allocation beyond 256 creations plus owners that share the low 24 bits.
43
#184The staged vmap import workflow exists, but the issue still asks for map 0 on the Instance Pool, which current canonical rollout rules explicitly forbid.
PR 192 shipped the source workflow. PR 275 later introduced the Eastern and Kalimdor World Import Profiles and changed the target matrix. The latest issue comment repeats the retired Instance Pool target, so following it would populate the wrong Shard.
Confidence: high. Issue updated 2026-09-01.
Blocked by
The issue and its latest comment contradict docs/vmap-rollout.md.
Any rollout requires a named host, approved client data, a maintenance window, and real-client acceptance.
Replace the acceptance checklist with map 0 on the Eastern World Shard, map 1 on the Kalimdor World Shard, and an explicit open-world exclusion for the Instance Pool. Only then schedule operator Verification.
44
#195Generation-scoped navigation coverage is implemented, but rollout acceptance has not been recorded and the issue's old Shard examples conflict with the current import topology.
PR 258 shipped preparation, finalization, matched-generation selection, and route-planner use. The latest comment says only rollout remains, but it predates the canonical profile change that moved open-world coverage to two World Shards and excluded the Instance Pool.
Confidence: high. Issue updated 2026-09-01.
Blocked by
The acceptance matrix must be updated for the current Eastern and Kalimdor World Shards.
Requires approved client data, named non-production or production targets, and human acceptance.
Correct the rollout matrix to the current World Import Profiles, then prepare and finalize matching coverage on each eligible World Shard and record route and client Verification before enabling nav_coverage_enabled.
45
#69The claimed choice between free-form Gateways and Gateway-per-Shard affinity no longer matches the shared connection model and needs a narrower decision.
Current Gateways keep shared coordinator connections to Shards, maintain a local WorldView, and select event audiences by spatial cells. That is already a hybrid: any Gateway can serve a viewer while local indexes avoid broadcasting most Relays to every World Session. Motion still comes from per-mover Shard rows, so the remaining question is measured subscription and writer cost, not the issue's original strict architectural fork.
Rewrite the decision around the current shared connection and WorldView model, then use #59 and #66 measurements to decide whether process-to-Shard affinity adds enough gain to justify routing and failover constraints.
46
#113Door collision meshes can be imported, but no per-GameObject collider registry or state-gated ray merge consumes them.
The prerequisite importer is merged and the runtime work is absent. The Spec now conflicts with active-generation eligibility: it expects dynamic doors to work on map 36 with no static chunks, while vmap_enabled returns false without an active generation. That decision affects the central Gate and must be settled first.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Maintainer decision: dynamic-only generation or a separate dynamic-collision eligibility rule for the Instance Pool.
The chosen rule must stay consistent with issue 198's future per-map eligibility model.
Choose and document the map-36 eligibility rule. Then implement game_go_collider, lifecycle registration, transforms, state gating, and synthetic ray behavior against that rule.
47
#34Realm-core authentication is active, but role-selectable Gateway processes, cross-Realm ban kicks, GM baselines, account migration, registration guidance, and a two-Realm Gate remain.
The data seam has shipped, but the remaining slices change deployment roles and account policy across Realm processes. The issue still requires Operator sequencing and does not identify which operational slice should land first.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Operator sequencing for the remaining slices
A product decision for GM baseline and per-Realm override behavior
Code fact: gateway/src/config.rs reads LYRACORE_REALM_CORE and gateway/src/main.rs starts both logon and world listeners without a role selection enum or flag.
Code fact: the current CoordinatorStore realm list contains one Realm, and account ban state has no cross-Realm active-session kick subscription.
4
5
5
4.0
Design first Codex
Choose the next operational slice, preferably explicit Gateway role flags, and write separate Tickets for role selection, ban propagation, GM policy, migration, registration, and the two-Realm Gate.
48
#29Basic GM playtest commands exist, while moderation audit, mute, kick, ban enforcement, summon or appear, and freeze behavior remain absent.
The issue now mixes shipped playtest tooling with unimplemented moderation and policy work. The remaining work crosses Gateway sessions, Module state, realm-core account policy, and audit retention, so the umbrella needs a current moderation-only Spec.
Confidence: high. Issue updated 2026-08-11.
Blocked by
A decision on GM permission levels and audit retention
Alignment with issue #34 account ban and GM baseline policy
Code fact: module/src/gm.rs implements speed, god, XP rate, level, money, heal, kill, gps, teleport, and add-item commands with gm_level checks, but no game_gm_action table or mute, kick, ban, summon, appear, or freeze path exists.
4
4
5
3.2
Design first Codex
Rewrite the issue around moderation outcomes, permission levels, audit records, and ban or mute propagation, then split it into one command and enforcement path per Ticket.
49
#36Speed and teleport movement checks exist, but fall, gravity, Z-axis, and wall-crossing checks remain undefined and unimplemented.
The Module reserves violation codes for the remaining checks, but the issue does not set thresholds or a false-positive budget from observed traces. Those policy choices affect legitimate movement and should be settled before more enforcement is added.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Threshold and false-positive policy for the next movement check
Representative legitimate and violating movement traces
Code fact: module/src/world.rs implements movement violation codes 1 and 2 for speed and teleport, and reserves codes 3 through 5 for fall or gravity, Z-axis, and wall checks.
4
3
4
3.0
Design first Codex
Choose the next check and its false-positive budget from recorded movement traces, then write one Ticket with deterministic Module Gates and a Headless Client scenario.
50
#35Package authoring, trust, provenance, and the compiled CLI are present; the remaining public-host work is the install script, Server manifest design, and fresh-machine acceptance.
PR #397 closed the package API and lint slice, and the cross-repository CLI workflow is established. The unresolved Server manifest is a product and deployment design choice, while issue #58 and fresh-machine verification are separate executable slices.
Confidence: high. Issue updated 2026-09-01.
Blocked by
A decision on the Server manifest contract
Open issue #58 for the installer
Fresh-machine acceptance across the CLI repository and this pinned shim
Code fact: docs/package-api.md and module/tests/package_api_lint.rs define and enforce the shipped package contract; docs/agents/cross-repo-cli.md requires CLI work in the sibling lyracore-cli repository followed by a pin bump here.
Decide the minimum Server manifest contract, then delegate issue #58 and a separate fresh-machine Gate in the lyracore-cli repository before returning here for the pin bump.
51
#82A real Realm still has no tracked TCP load balancer, backend admission cap, or drain procedure for a Gateway pool.
The repository contains only the Standalone Supervisor deployment artifact. The issue is explicitly tied to host topology and kill-a-backend acceptance, while the old capacity numbers need refresh after shared connections and batching.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Needs current single-Gateway and dense-crowd capacity evidence.
Requires a maintainer choice of load balancer and a named host before any topology change.
deploy/systemd: only the Standalone Supervisor service is tracked; no Gateway load-balancer configuration exists.
gateway/src/config.rs: LYRACORE_REALM_ADDRESS can advertise an external address but does not provision or drain backends.
3
4
4
3.0
Design first Codex
After current capacity and dense-crowd Verification, choose the supported load balancer and tracked deployment shape. Build static backend caps, health checks, drain commands, and a failure drill against a named non-production host first.
52
#73The pinned CLI has a useful text dev status command and no Ratatui dependency; choosing a TUI remains a product decision.
The sibling lyracore-cli repository at the pinned revision has no ratatui or crossterm dependency. dev status already renders process, topology, and per-database health directly from the CLI's existing state and health checks. A TUI could make local observation easier, but the spatial seam map is retired and a remote GM console has different authentication and reach. The remaining work is to select one bounded surface rather than adopt a rendering library first.
Confidence: high. Issue updated 2026-08-11.
Blocked by
No operations surface has been selected.
The spatial seam map named by the issue is retired.
Have the Operator choose whether local dev status needs an interactive TUI; if yes, scope a read-only local process and database view before considering remote Realm or spatial editing.
53
#27Groups remain limited to parties; raid conversion, subgroups, assistants, raid roster packets, and raid quest-credit rules are absent.
Current code explicitly excludes raid groups. The issue spans data modeling, protocol behavior, permissions, quest credit, and multi-client acceptance without a current packet or policy Spec.
Code fact: module/src/group.rs states that raid groups are out of scope, and the current schema has no raid subgroup or assistant role state.
3
4
5
2.4
Design first Codex
Define the 1.12 raid roster packet shapes and quest-credit policy, then split conversion, subgroup movement, assistant permissions, roster projection, and credit behavior into separate Tickets.
54
#313Choose which non-spell DBC catalogues Packages may edit
The proposal names a concrete update-only set, but explicitly awaits maintainer approval. Positional keys and cross-family ordering affect the contract and should be settled before implementation.
Confidence: medium. Issue updated 2026-09-02.
Blocked by
Maintainer decision requested in the issue comment.
Approve or revise the proposed table set, stable keys, family boundaries and replay order, then assign a Tracer.
55
#11Self-resurrection effects such as Soulstone and Reincarnation have no stored eligibility, consume-on-use flow, or self-resurrect packet handling.
Existing resurrection code handles requests from another Character, while the importer leaves Reincarnation scripted. The exact 1.12 duration, death-screen option, reagent, cooldown, and consumption behavior need observation before the state model is fixed.
Code fact: current resurrection handling models an ally-issued resurrection request, no SELF_RESURRECT path exists, and importer spell classification leaves Reincarnation as E_SCRIPTED.
3
3
4
2.2
Design first Codex
Research the missing protocol and gameplay facts from primary sources, then define a complete implementation Ticket. Keep the final real-client check separate.
56
#198Exact vmap consumption still depends on a realm-wide boolean as well as an active map generation, but the issue's rollout topology no longer matches the canonical World Import Profiles.
The implementation is absent and the prerequisites remain open. More seriously, current rollout docs route open-world vmaps to the two World Shards and skip the Instance Pool, contradicting the issue's map-0 account. Removing the Gate from this stale Spec would be unsafe.
module/src/vmap.rs: vmap_enabled still requires game_config.vmap_enabled and an active generation.
docs/vmap-rollout.md: current production destinations are alliance-eastern and alliance-kalimdor World Shards; the Instance Pool must receive no bounded-profile vmap generation.
Rewrite the supported-map inventory and eligibility rule against the current World Import Profiles, then wait for corrected rollout and matching navigation-coverage Verification before removing the Gate.
57
#4The imported world has no continent-crossing transport or synthetic AreaTrigger link, and the issue offers two different destinations with different content costs.
The Operator must choose between the cheap Ratchet to Stormwind synthetic link and waiting for a real dock path that needs wider map-0 content. Code work before that choice risks implementing the wrong world route.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Operator choice between the proposed Ratchet to Stormwind link and a later real-dock route
Wider map-0 import scope if the real-dock route is selected
Code fact: the importer reads source AreaTrigger rows, but trigger ids 3551, 3530, and 4029 and any synthetic continent-crossing link are absent from current code.
2
3
3
2.0
Design first Codex
Choose the temporary synthetic route or the real-dock route; for the temporary route, write one importer plus teleport Gate Ticket using the selected trigger ids.
58
#67SO_REUSEPORT is still absent, but its value depends on the chosen drain and world-address routing design.
Both Gateway listeners still use TcpListener::bind, and there is no reuse-port setup. That proves the feature is unimplemented, but not that it is the best deploy mechanism. If logon sends new clients only to a fresh advertised address and the old Gateway drains, overlapping binds may add little. Platform behavior and failure reporting also need an explicit support policy.
Decide after #64 and #65 whether overlapping binds are required; if yes, specify supported operating systems and add socket creation plus an overlap acceptance test.
59
#79Gateway connections still use the SpacetimeDB confirmed-read default, and the current shared Coordinator gives no movement-only connection on which to disable it safely.
No confirmed-read override exists. The issue's proposed one-line movement-path change no longer fits the architecture: a Coordinator carries all subscribed state and Durable Reads for a Shard, so the durability trade affects more than movement.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
A maintainer must approve the crash-durability trade.
There is no current movement-only subscription connection.
Measure confirmed-read latency on the current Coordinator, list which state would become visible before durability, and decide whether to keep confirmation or introduce a narrowly scoped connection before changing the setting.
60
#10Distract has no destination checks, temporary Creature attention state, facing update, or combat and expiry rules.
The desired idle, combat, radius, duration, and facing semantics are not specified precisely, and the current Creature behavior has no matching investigation or attention state. Observation should precede a new AI state seam.
Code fact: searches across spell, combat, and Creature behavior code find no Distract, investigation, or temporary attention implementation.
2
2
4
1.0
Design first Codex
Research the missing protocol and gameplay facts from primary sources, then define a complete implementation Ticket. Keep the final real-client check separate.
61
#41Ritual of Summoning still lacks the ritual portal, two-assistant interaction, and targeted teleport flow.
The requested behavior depends on exact 1.12 group and GameObject interaction semantics that are not specified in the issue or represented in current code. A multi-client observation is needed before implementation can be split safely.
Code fact: searches for spell 698, Ritual of Summoning, and ritual portal assistance found no implementation in importer, Module, or Gateway code.
2
2
5
0.8
Design first Codex
Research the missing protocol and gameplay facts from primary sources, then define a complete implementation Ticket. Keep the final real-client check separate.
62
#92client sync and the later Client Artifact command are implemented; only a real client sync load check remains.
CLI PR 32 and core PR 322 shipped sync. Issue 303 and PR 392 later shipped the distributable Client Artifact that the original issue deferred. The latest issue evidence correctly leaves only stock-client loading.
Confidence: high. Issue updated 2026-09-02.
Blocked by
Requires a configured, legally obtained stock 1.12.1 client and a human load check.
PR #358 ships Module reconciliation and four durable tests were recorded green. CLI replay wiring also shipped through #393. The remaining recorded acceptance is visible login effects and removal on a named realm.
Confidence: high. Issue updated 2026-09-03.
Blocked by
Named test realm and permission for its Package changes.
Run the existing install, login, disable and login acceptance sequence; preserve cross-Shard evidence.
64
#3Realm-wide mail, auctions, guilds, whispers, parties, and loot coordination are present, but the reopened epic still lacks a consolidated two-client, multi-Shard acceptance record and contains stale mirror-removal wording.
The major systems named by the epic now use realm-core authority, including cross-Shard party and whisper paths. The remaining useful work is a real-client system Gate and an acceptance update that distinguishes authoritative state from deliberate Shard read mirrors.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
A two-client multi-Shard 1.12.1 acceptance environment
Clarification that Shard read mirrors may remain when realm-core is authoritative
Run two real clients on different Shards through mail, auction, guild, whisper, party, loot-roll, Transfer, and delete scenarios; update the mirror criterion and file only concrete failures.
65
#38The Gateway now installs Shard event callbacks once and performs a single ordered login visibility sweep; the remaining work is the issue's real-client login matrix.
PRs #421 and #433 replaced the subscription and login ordering paths described by the issue. Code-level Gates cover callback placement and sweep ordering, but the acceptance criteria still require fresh and geared Characters, auras, and questgivers on a real client.
Confidence: high. Issue updated 2026-08-11.
Blocked by
A real 1.12.1 client with fresh and geared Character fixtures
Run the stated 5875 login matrix on main and close the issue if every initial snapshot and following delta is correct; file narrow failures separately.
66
#1The public package-manager proposal is largely implemented, while the remaining work is human product review, a real-client sync check, and maintenance of the proposal as a tracker.
Most linked slices are closed, and the repository documents package, build, config, replay, client sync, and client pack workflows. The issue comments say not to implement the umbrella directly; open issue #92 now retains only a real-client sync acceptance step.
Confidence: high. Issue updated 2026-08-24.
Blocked by
Issue #92 real-client sync acceptance
Human review of the public proposal's remaining product commitments
Complete issue #92's real-client sync check, review the installed workflow against the public proposal, and refresh or close the umbrella without starting code from it.
67
#42The scripted and package-based Playerbot work has shipped; the remaining acceptance bar is a human-run real-client session that judges believable behavior and completes Deadmines.
Core PRs #394 and #395 and the linked package, CLI, and wire-harness work are merged. The issue's latest checklist explicitly leaves human judgment of believability, serendipity, and a full real 1.12.1 client dungeon run.
Confidence: high. Issue updated 2026-09-02.
Blocked by
A real 1.12.1 client and imported node
The Playerbot packages needed by the acceptance scenario
Run issue #373's imported-node playbook, then complete issue #366 through VanCleef and record the observed failures as narrow follow-up issues.
68
#154Aura stacking-family code and its single insertion boundary are covered; the documented live stacking sequence has no recorded evidence.
PR 217 shipped the code and Architecture Test. The issue's latest comment and the still-empty evidence template agree that only operator-run aura and client Verification remains.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires an Operator-approved Module publish and a real client.
Run docs/aura-stacking-probes.md on an approved development Realm, fill its evidence template, and close this issue if every persisted and visible result agrees.
69
#112The DOOR and BUTTON model importer is merged; only an approved client-data dry run and apply to a named development Shard remain.
PR 254 shipped DBC lookup, M2 extraction, storage reducers, limits, and tests. The latest evidence correctly says runtime use belongs to issue 113 and this issue needs Operator-owned data acceptance only.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires approved client Data and an explicitly named development Shard.
Run --go-models as a dry run against approved client data, record nonzero Deadmines door triangles, then apply to a named development Shard.
70
#196Bounded ground-snapped patrol return is implemented; only a real-client observation of a badly displaced patroller remains.
PR 253 added repeated return steps and pure coverage for long displacement and ordinary patrol behavior. The latest issue comment correctly narrows the remainder to visual Verification.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires a stock 1.12.1 client and a suitable live creature scenario.
Displace a patroller across uneven terrain in a stock client and record its return, route rejoin, and resumed patrol.
71
#366Verify Deadmines choreography in the real client
The Package has durable tests. Visible door changes, Smite movement and chat still need observation. The stomp decision is settled, but packages issue #18 remains open.
Learn a higher spell rank in a real 1.12.1 client, relog, and confirm the spellbook contains the expected visible rank before closing.
73
#304Verify FrameXML and GlueXML transforms on the real client
The transform engine, conflict checks and content hashes already shipped in PR #392. Current issue comments explicitly leave separate FrameXML and GlueXML client checks outstanding.
Confidence: high. Issue updated 2026-09-02.
Blocked by
Real unmodified 1.12.1 client and Operator baseline.
Run the combined bot and dungeon acceptance session after the missing dungeon content ships.
75
#202The low gossip text identifier is implemented, but nobody has confirmed that Marshal McBride's gossip and quest window renders in the stock client.
The code already sends identifier 1 and answers its text query. The remaining question is client rendering, which the Headless Client cannot decide.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Requires a stock 1.12.1 client and a human visual check.
gateway/src/codec/npc.rs: GOSSIP_GREETING_TEXT_ID is 1 and build_npc_text_update accepts arbitrary queried identifiers.
gateway/src/codec/tests.rs: packet tests cover the low identifier but explicitly cannot prove client rendering.
2
2
1
4.0
Human acceptance Codex
Right-click Marshal McBride in a stock build-5875 client and record whether the greeting and quest offer appear.
76
#107GameObject template scale is imported and sent on the wire; current data and stock-client proportions have not been checked.
PR 110 shipped all three code layers and fallback tests. The issue's latest comment correctly limits the remainder to import, row and wire checks, and visual proportions.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires approved game data, an Operator-run development Shard, and a stock client.
Publish and import on a named development Shard, compare Peacebloom and Copper Vein template sizes with the source data, inspect OBJECT_FIELD_SCALE_X, and check both in a stock client.
77
#53A maintained public demo realm still needs deployment, backup, restore, and operations work despite recent pre-auth hardening.
Recent work closed two unauthenticated denial-of-service paths, and an open PR adds proof limits and Session expiry. Those changes cover part of the security section, but the issue also requires a named host, TLS and network policy, durable backup and restore, monitoring, restart practice, and a real Internet client drill. This is an Operator project rather than one source change.
Confidence: high. Issue updated 2026-08-11.
Blocked by
No named public host or deployment target is authorized.
Backup and restore behavior has not been demonstrated.
Split the remaining work into a reviewed public-host runbook and reversible automation, then have an Operator name the host and approve the first deployment and restore drill.
78
#70A fresh clone now runs a four-database sharded fixture, while the requested Northshire region seam was deliberately retired.
The issue's product goal, showing Sharding out of the box, is shipped in an evolved form. dev up publishes Eastern Kingdoms, Kalimdor, an Instance Pool, and Realm-core, so contributors exercise both continental and instance routing. The same docs explicitly record removal of the second Elwynn database and walkable Northshire seam. Keeping the exact original issue open would reverse a later Operator decision.
Close as shipped in revised form: retain the four-database fixture and cite the documented retirement of the Northshire region seam.
79
#77The reported per-Character AOI query cost and roughly 525-seat result describe the retired connection model, while its follow-up concerns are tracked by narrower capacity issues.
The Gateway now uses shared per-Shard Coordinators, an in-memory viewer index, call pipes, and batched movement. Issue 88 records 1,735 seats after batching, contradicting the original ceiling. The remaining blocking-thread cap is documented and bounded under issue 76's work.
Close this broad diagnosis as superseded by issues 76, 82, 86, and 88. Keep future capacity work tied to fresh acceptance runs rather than its old numbers.
80
#51The old away-Shard subscription path is gone, and the replacement shared connection model enforces ghost and stealth visibility.
The issue targets ensure_away and fold_home_shard, neither of which exists. The Gateway now keeps shared Shard connections and selects visible peers through WorldView. ViewerGates carries the viewer's ghost state, and peer creation consults ghost and stealth state before sending CREATE. A later merged fix also restores a peer's aura state when stealth ends.
Close the issue as superseded by the shared connection model and the current visibility gates; retain the existing WorldView coverage.
81
#76The blocking-pool limit is now configured, logged, documented, and enforced before a socket enters Tokio's blocking queue, satisfying the issue's stated completion rule.
Current code and PR 410 go beyond the original acceptance criteria by sharing a non-waiting capacity across both listeners. The title's old 477 and 535 observations remain historical evidence, not an open implementation request.
Close the issue against the current configuration, startup log, architecture documentation, and PR 410 admission bound. Track new capacity failures from fresh measurements in narrower issues.
82
#58The curl-to-shell local bootstrap is already present as install.sh and is the documented first-run path.
The repository root contains a POSIX installer with the exact raw-GitHub curl command. It checks prerequisites, offers user-local tool installs, clones the repository, installs the checkout-resolving CLI launcher, and points the user to lyracore dev up. README and quickstart both lead with it. The implementation evolved from fetching a Gateway binary to a source-first, pinned-CLI checkout, but it satisfies the bootstrap outcome.
Close as shipped under the current source-first installer; optionally record one clean Linux and one clean macOS smoke before closure.
83
#45The old question about per-Character AOI subscription cost no longer matches the event relay design, which now uses one stable event subscription per Shard and computes viewer audiences in Gateway memory.
PR #421 removed the fan-out pattern that motivated the table-collapse decision. Its 2,000-Character benchmark reduced queued jobs from 4,000,000 to 336,124 in the distributed case, so the proposed comparison would measure an obsolete architecture.
Close the issue as superseded by PR #421 and retain future performance work under a benchmark that exercises the current viewer-audience path.
84
#48The reported warm-handoff seam feel belongs to the retired region tier; the current Gateway has no seam state machine to tune.
The repository removed sub-map regions and mid-walk warm handoff. All recorded angle tests also passed before that removal, so further work on the old hysteresis design would target code that no longer exists.
Code fact: gateway/src/world/seam.rs is absent, and docs/architecture.md records the 2026-08-08 removal of the region tier and seam menu.
1
1
1
1.0
Retired or shipped Codex
Close the issue with links to the retired region-sharding design and current architecture.
85
#56The requested walkable-seam presentation polish has no active region seam after the region tier was retired.
Abrupt range-leave presentation and repeated crossings were properties of the removed Northshire-to-Elwynn region handoff. Current fixture Shard crossings are escrowed continent or instance transfers, not an overlapping walkable view merge. Keeping this issue open implies an active feature that the current topology deliberately removed.
Close with the region tier retirement; restore or rewrite the issue only if a walkable region seam returns.
86
#49The seam operations console has no active region tier to operate; only the underlying load samples remain useful.
The fixture and production topology no longer activate region assignments. Current documentation explicitly retires the walkable region seam and keeps continental and instance routing. Building the requested editor now would put a large UI around inert topology data. Shard load telemetry can support a smaller future operations surface after #73 selects one.
A creature death can remove a due aura before the scheduler advances its old snapshot. The fix advances only rows that still exist, so death and unrelated periodic effects commit together.
The shared creature identifier policy exists on main through PR #405. The casts entry points do not consistently apply it, so this small fix protects fixtures and Package testing.
crates/lyracore-package-delta/src/delta.rs: creature_template calls check_claimable_creature_entry; creature_cast and creature_spell use separate constructors.
Merged in PR #434. Coordinating review caught partial-update and retarget-away bypasses; durable regressions now prove both are refused.
+
State and owner
Next action
1
#50The character-owned Architecture Test still misses tables that refer to a Character through unit-shaped columns such as target_guid or attacker_guid.
The source scanner still recognizes only character_guid, player_guid, and owner_guid. Existing manual cleanup for aura, melee, threat, and combo state shows that unit-keyed tables remain a real transfer blind spot. This is a localized Architecture Test change that prevents future cross-database state loss without changing runtime behavior.
Extend character_owned_tripwire to inventory unit-guid columns and require each discovered table to have character_owned markers or an explicit exclusion with a reason; add a scanner fixture that fails on an unclassified target_guid table.
2
#105The pinned Headless Client suite still invokes file-based scenarios relative to the LyraCore checkout, so many scenarios fail to spawn while the summary looks like an ordinary test failure.
The current pin is still v0.1.0-alpha.3 at the exact reported commit. Its wire-suite.sh contains the broken relative calls, and no newer release exists. This undermines confidence in every live suite claim that uses the pin.
.wire-harness-rev: still pins v0.1.0-alpha.3 at 219f8cd1670f4b783892388f110d233722892bb3.
The pinned wire-suite.sh uses paths such as bash adapters/lyracore/test-move-relay.sh after sourcing adapter-env.sh.
4
5
3
6.7
In progress GPT-6 Astra, Codex
Fix all scenario paths in wire-harness, prove dispatch from distinct roots and startup-failure accounting offline, then review a PR and update the released core pin.
3
#63Loot-roll promotion remains non-idempotent: concurrent Gateways can create duplicate rolls and split the party's votes.
The current Gateway still promotes a staging roll on Realm-core and only then clears the World Shard copy. Both periodic and synchronous promotion paths can run in different Gateway processes. Realm-core's game_loot_roll has only an auto-increment primary key and insert_roll_rows always inserts a new roll and vote set. Module reducers serialize calls, so an idempotent Realm-core check or a compatible uniqueness key can close the race at its authoritative side.
Complete the current-head review audit of PR #439, fix valid findings, and check CI. Preserve any remaining live-client acceptance.
4
#80A cross-map teleport still removes the Character's world entity without deleting its public motion row, leaving a stale AOI-visible row on the source Shard.
The exact outlier remains in current code. teleport_player drops only game_entity_motion_pending, then deletes game_world_entity in the cross-map branch. Other teardown paths delete the public motion row.
module/src/world.rs: teleport_player calls motion::drop_pending before branching, but the cross-map branch deletes only the world entity after combat and stealth cleanup.
module/src/helpers.rs and module/src/creatures/tick/lifecycle.rs: the standard entity cleanup contract includes game_entity_motion and game_creature_spline.
Runtime Script names already landed in CLI PR #55. The remaining Datascript line falsely says nothing reads them. It obscures what an Operator installs.
Subscribed-table parity leaves other generated definitions unchecked. A reproducible generation check would catch drift before unrelated schema work encounters it.
Build a deterministic offline generation check using the documented exceptions. The prerequisite CI PRs are merged.
8
#341Service unit parsing misses continued directives
The CLI parser still splits physical lines. Continued directives can hide a conflicting Standalone service. The fix is testable without changing a host.
Implement systemd logical-line parsing through the existing process Fake and test tracked and conflicting units.
9
#75The pinned raid benchmark neither reports dead Characters nor sends Release Spirit, so later additive stages can silently measure a mostly inactive population.
The exact harness release named in the issue is still pinned. Its benchmark source has raid mode but no death counter, CMSG_REPOP_REQUEST, or revive flow. Reporting the count is a bounded first slice that restores measurement honesty.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Landing in LyraCore requires a wire-harness release and pin bump.
Automatic recovery needs real protocol and development-Realm Verification.
.wire-harness-rev: still pins the reported v0.1.0-alpha.3 commit.
The pinned bench source has boss raid mode and report generation but no repop, revive, or dead-Character report path.
4
4
3
5.3
Ready Codex
Add a dead-at-window-end count to the wire-harness benchmark report and tests first. Treat automatic Release Spirit and recovery as a second protocol slice, then release and bump the LyraCore pin.
The current verifier reads ActiveState, LimitNOFILE and StandardError. It does not compare the effective ExecStart or name relevant drop-ins. A success report can therefore describe the wrong service.
lyracore-cli/src/cmd/service.rs: verify omits ExecStart and DropInPaths.
4
4
3
5.3
Ready Codex
Compare the effective command with the tracked contract and report overriding drop-ins, using a process Fake.
11
#40Early Warlock pet quest chains still lack the imported hostile summon encounters and item-use path needed to earn the Voidwalker and Succubus.
This is the strongest ready feature candidate because it restores core class progression and the issue already names concrete creatures, items, and spells. Most behavior can be covered with Module and Headless Client Gates; only the final presentation check needs a human.
Confidence: high. Issue updated 2026-08-11.
Blocked by
A real-client visual check after the Module behavior passes
Code fact: importer/src/main.rs force-includes only the existing pet templates 416 and 1860; the Module has E_SUMMON_PET for persistent owned pets but no hostile ownerless summon effect for these quests.
4
4
4
4.0
Ready Codex
Write a scoped Ticket for the hostile ownerless summon effect, required importer rows, item-use route, and kill credit, then implement it with Headless Client coverage and leave the visual check for a real client.
12
#272A creature that enters a viewer's AOI during an active movement leg can stand still and then jump forward; delayed motion flushes and the four-second sensing cadence can produce similar symptoms.
The cheapest defect is still present: peer CREATE replays a resident taxi spline but never the creature's current spline. Motion shedding and sensing cadence are separate policy choices, so they should not hold up that localized fix.
Confidence: high. Issue updated 2026-08-18.
Blocked by
Full closure needs a maintainer choice for motion-flush shedding and proximity sensing cadence.
The combined symptom still needs real-client acceptance.
gateway/src/stdb/subscriptions.rs: offer_peer_create appends a resident taxi spline after CREATE but has no equivalent lookup for game_creature_spline.
gateway/src/stdb/world_view.rs: maybe_queue_motion_flush still drops a flush at egress depth while retaining the superseding pending map.
module/src/creatures/ai.rs: SENSE_EVERY_N_TICKS remains 8 at a 500 ms movement tick.
Implement resident creature-spline replay immediately after peer CREATE with an ordering test. Split motion shedding and sensing cadence into separate decisions before changing either.
13
#137Bank storage and purchase behavior are implemented, but the pinned Headless Client has no end-to-end bank adapter and the stock-client window has not been checked.
The parent and both blocking code issues are closed. Current Gateway paths cover activate, deposit, withdraw, and slot purchase, while the pinned adapter tree has no bank script.
Confidence: high. Issue updated 2026-08-12.
Blocked by
Completing the issue requires a wire-harness release and LyraCore pin bump.
The final window and cell behavior require a human with a stock client.
Add the bank-flow adapter in wire-harness, release it, and bump the pin. Then run the adapter and the listed real-client window checks on an approved development Realm.
14
#142Drowning works in Module and Gateway tests, but there is no pinned Headless Client adapter for a complete dive cycle and no real-client calibration of the submerge threshold.
The code half shipped in PRs 150 and 166. The pinned wire-harness tree contains no drowning or breath adapter, so a bounded cross-repository implementation remains before the human pass.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Completing the issue requires a wire-harness release and LyraCore pin bump.
Submerge timing and mirror-bar rendering require a human with a stock client.
Add the LyraCore dive adapter in wire-harness with no stored credentials, then release and bump the pin. Run it on an approved development Realm before calibrating the real client.
15
#31Random item properties are absent from imported data and item state, and all relevant Gateway packet paths still emit random property id zero.
This is the second-best ready feature candidate. The issue has a current two-Ticket Spec, the missing storage and packet fields are confirmed in code, and the first Tracer can establish one deterministic affix end to end without a design decision.
Confidence: high. Issue updated 2026-08-22.
Blocked by
A real-client tooltip check after the deterministic Tracer passes
Code fact: module/src/items/rules.rs still uses a fixed ENCHANTS list, no game_item_random_property or property-weight table exists, and Gateway loot, item, mail, and auction codecs write item_random_property_id as zero.
3
4
5
2.4
Ready Codex
Implement the Spec's Tracer Ticket first: import the minimum property data, persist one rolled property, and carry it through loot, inventory, mail, and auction packets; follow with the weighted generalization Ticket.
16
#30The Realm has no seasonal game-event data model, calendar activation, spawn participation, or Operator debug controls.
The issue has a detailed current Spec and carries the ready-for-agent label. It is implementable, but it spans importer data, persistent state, spawn lifecycle, calendar logic, and tooling, so it should be split before code work begins.
Code fact: the repository has no seasonal game-event tables or debug verbs; game_event_reaper_schedule is an unrelated cleanup schedule, and Gateway condition handling states that seasonal events do not exist.
2
4
5
1.6
Ready Codex
Split the Spec into a deterministic single-event Tracer, calendar generalization, spawn integration, and Operator control Tickets, then implement the Tracer first.
17
#28Drink item use does not create or decay an inebriation state, update PLAYER_BYTES_3, or apply chat slurring.
The feature is self-contained once the exact 1.12 field encoding, decay rate, and text transform are taken from a primary reference. No competing architecture or open dependency is visible.
Code fact: PLAYER_BYTES_3 is initialized for Character creation, but searches across importer, Module, and Gateway code find no drunk state, inebriation decay, or slur transform.
2
2
4
1.0
Ready Codex
Confirm the 1.12 constants and transform from a primary emulator source, then implement persistent inebriation, timed decay, PLAYER_BYTES_3 projection, and deterministic chat Gates as one Ticket.
18
#60The two historical crashes during roughly 500 simultaneous disconnects have no current rerun, so core availability is still unverified.
The Gateway has since gained pre-auth deadlines, bounded blocking-task admission, file-descriptor checks, and more resilient accept handling, all of which can change failure behavior. None proves that the post-auth mass-disconnect crash is gone. The issue's done condition remains two clean Runbook B runs with process, kernel, and application evidence.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires the controlled 500-client load environment.
Run the pinned Headless Client Runbook B twice against the current release Gateway, recording exit status, kernel OOM or signal evidence, file descriptors, task counts, session cleanup, and recovery.
19
#424Motion delivery can stop until the Gateway restarts
An offline test now proves that 172 healthy motion callbacks can produce the reported warning when the mover has no peer viewer. The current counter counts peer packets. The report does not yet prove a stopped subscription or a root cause for visible freezing.
Real dispatch regression proves healthy mover-only traffic produced the old warning. Per-Shard diagnostics, coalescing and recovery-observation regressions pass.
Use the new per-Shard queue, callback and pump diagnostics to reproduce a stopped stream. A real-realm capture requires a named host and authorization; the original 15-hour freeze is not yet explained.
20
#77The old connection model is retired; the stated capacity target is unmeasured
Shared Coordinator connections and movement batching change the reported bottlenecks. The issue still requires a comparable run beyond roughly 525 seated Characters and a movement-cost breakdown. Code changes alone cannot satisfy that result.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Fresh current-revision capacity evidence from #59.
Use #59 to record the current seated capacity and movement cost on comparable hardware. Update or close this parent from that measured result.
21
#46A deleted Character previously left a realm-core party member row, but the Gateway now relays Character disappearance and removes membership only after the Character is absent from every Shard.
The Character disappearance Relay exists, but its current Architecture Tests check call names rather than proving deletion and Transfer outcomes. The generic read signature can fail, although the production cache read currently returns Ok. A source scan alone is insufficient closure evidence.
Code fact: gateway/src/main.rs starts spawn_character_gone_relay, and gateway/src/stdb/subscriptions.rs leaves the realm-core party only when character_anywhere reports the Character absent from all Shards.
Verify the actual Character disappearance callback and its read-failure behavior before closure. Existing tests only scan its source; add behavior coverage for deletion and Transfer if needed.
22
#88Movement heartbeat batching is already active at 40 ms with 128-entry calls; the remaining work is an approved load acceptance run and tuning only if its timing signals regress.
The current code contradicts the original title: gw_movement_batch, chunking across call pipes, entry isolation, and metrics all exist. PR 234 added a guarded acceptance runner but explicitly left the 500-mover and real-client checks undone.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires an approved synthetic load driver and disposable Realm.
Run docs/movement-batch-acceptance.md against an approved disposable Realm with at least 500 movers, record batch factor and both latency signals, and tune one lever only if the tripwire fires.
23
#84The current Gateway has explicit world-Shard promotion to Realm-core and settlement fan-out, but the reported three-Shard failure has never been rerun against this implementation.
Current Store code and Fake-based tests cover the topology the issue said was suspect. That is meaningful newer evidence, but it does not reproduce the exact development stack. The issue also combines an unrelated bot-party combat failure that should be split if it remains.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
The exact three-Shard scenario needs an Operator-run development stack and the repaired Headless Client pin from issue 105.
gateway/src/world/loot.rs: relay_tick promotes pending Shard rolls to Realm-core and fans resolved winners to every connected World Shard.
gateway/src/world/loot_tests.rs: Fake-based tests cover staging promotion, clearing, and settlement fan-out.
module/src/loot/rolls.rs: settle_loot_roll grants only on the Shard that owns the corpse item.
4
4
2
8.0
Verify existing work Codex
Rerun group loot on a fresh current three-Shard development stack with schedules armed. If it fails, capture promotion, Realm-core resolution, and settlement rows separately. Split any bot-party combat failure into its own issue.
24
#59The old crowd-cliff numbers cannot answer current capacity after movement and Relay changes; Runbook A still needs a fresh end-to-end run.
The current movement model writes one row per mover and uses AOI selection instead of the former per-recipient event rows. PR #421 also reduced distributed event Relay work, but its benchmark explicitly measured selection and encoding rather than realm capacity or latency. The 150/371-client measurements therefore describe neither the current writer load nor the current Gateway work.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires a controlled release benchmark environment.
Run Runbook A against a release build at the current main commit and publish capacity, latency, disconnect, writer-occupancy, QUEUESTAT, AOISTAT, and SHARDLOAD results with exact revisions.
25
#86Per-viewer motion supersession is implemented, but there is no current evidence that dense-crowd login starvation still has the 2026-08-09 shape after the shared WorldView changes.
The first coalescing rung is present. Later work replaced per-Character subscriptions with one per-Shard stream and an in-memory cell index, invalidating part of the old cost account. Dense fan-out is still inherently large, but a login-priority lane or interest cap needs fresh evidence.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
Issue 59's current crowd-cliff measurement is still open.
A dense interest cap changes visible behavior and needs maintainer approval.
Run the current dense-crowd measurement from issue 59 and record login completion, queue depth, relay latency, CPU, and delivered motion. Choose a priority lane or interest cap only if starvation reproduces.
26
#104The Rust CLI now has import world and import vmaps, but fresh-provision parity is unrecorded and the old import-world.sh still exists.
lyracore-cli PR 25 implemented the verbs and the current pin includes them. That PR explicitly left fresh-provision Verification and retirement of the script for later, and the script remains in the tree.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Fresh-provision parity needs approved dump and client data plus Operator coordination.
Private or external consumers of import-world.sh must be inventoried before deletion.
docs/development-cli.md: the current CLI documents import world followed by import vmaps.
importer/scripts/import-world.sh: the legacy flow is still present.
3
4
2
6.0
Verify existing work Codex
Run import world and import vmaps on a fresh approved development stack. If their results match the old flow, inventory remaining script consumers, repoint them, and delete import-world.sh.
27
#55The residual crowd disconnects remain unclassified and require a fresh correlated load run.
The issue's static audit found no corruption path and deliberately parked the symptom until logs could separate peer exits, writer failures, and subscription recovery. The Gateway still logs the terminal World Session error, while the current movement and load-shedding paths have changed enough that the old 3 to 8 per 150 result cannot establish today's behavior.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Requires a controlled load run and correlated logs.
Run the current crowd scenario with stable peer IDs and collect Gateway session-end causes, Headless Client disconnect reasons, QUEUESTAT, AOISTAT, and SHARDLOAD for the same time window.
28
#78GridBox still recenters at every cell crossing, but this no longer tears down SpacetimeDB subscriptions; it now applies a bounded in-memory index delta and may cause only entity create and destroy churn.
The original measured subscription cost is retired by the shared WorldView. Widening the AOI to 7 by 7 would raise steady audience and relay work, so the old proposed fix should not ship without new evidence of visible churn.
Confidence: high. Issue updated 2026-08-11.
Blocked by
The original measurement does not describe the current architecture.
Measure current AOI recenter deltas and client create and destroy traffic near cell boundaries. Close as superseded if bounded in-memory churn is harmless; otherwise write a new Spec that prices the wider AOI.
29
#103The dynamic door-collision parent has one imported-mesh slice shipped, while runtime collision and instance-aware acceptance remain in issues 113 and 114.
The parent is now a tracker rather than an implementation unit. Its original request for a Spec and split is complete, but the implemented behavior is not. Current eligibility conflicts must be resolved in issue 113 before the parent can advance.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue 113 requires a collision-eligibility decision and implementation.
Issue 114 depends on issue 113 and Operator-assisted Deadmines acceptance.
Keep this as the parent. Resolve issue 113's eligibility decision, implement 113, then complete issue 114 and close the parent from its acceptance evidence.
30
#66The two-Gateway capacity experiment remains valuable, but its baseline and three correctness prerequisites are still open.
The duplicate bot-invite defect in #62 is fixed, while #61, #63, and #65 remain. The coordinator and Relay cost model also changed: shared Shard connections and cell audiences make the issue's original query-count assumptions stale. A second Gateway measurement can decide whether horizontal Gateway scaling earns its operational cost, but only against a fresh one-Gateway baseline and after known cross-process corruption paths are closed.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #59 has no current one-Gateway baseline.
Issues #61 and #63 retain cross-process correctness failures.
Issue #65 has no routable Gateway selection mechanism.
Complete #59, #61, #63, and #65, then run one and two Gateway processes against the same Realm with identical Headless Client load and compare writer occupancy, subscriptions, Gateway CPU, latency, and disconnects.
31
#64The Gateway still has no SIGTERM drain path and both listeners end only when their tasks fail.
Current main binds ordinary Tokio listeners and does not register a Unix signal handler. A stop therefore does not close admission, wait for World Sessions, or perform orderly logout. Session leases reduce how long crash residue survives, but they do not provide a drain. The issue correctly waits for #60 because mass teardown behavior must be known before building shutdown around it.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #60 must first establish current mass-disconnect behavior.
After #60, add a shared shutdown signal that closes both listeners, stops new logons, drains World Sessions to a deadline, records clean logout, and exits with observable phase logs.
32
#65Logon still advertises one configured world address and has no Realm-core registry of Gateway address, load, or draining state.
The logon Store returns a one-element realm list built from the configured world address. Realm-core has per-Gateway Shard load samples, but their gateway_key is a hash for accounting rather than a routable address, and no row says a Gateway accepts new World Sessions or is draining. The old estimate that selection is a tiny change no longer matches the required registration and lease work.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #69 must choose the multi-Gateway serving model.
A leased process registry and expiry rule do not exist.
Issue #59 must provide a useful load signal for selection.
After #69, define a leased Gateway process row on Realm-core with advertised address, admission state, and load; make realm-list selection deterministic and test drain exclusion and stale-row expiry.
33
#114Instance-aware door collision and Deadmines acceptance cannot start until dynamic door collision exists and its map-36 eligibility conflict is resolved.
The ray functions and debug reducer still lack instance_id. Issue 113 is unimplemented, and current vmap eligibility requires an active static generation even though the canonical import skips open-world vmaps on the Instance Pool.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Issue 113 is unimplemented.
A maintainer must decide how dynamic collision becomes eligible on map 36 without a bounded-profile static vmap generation.
Final acceptance needs approved client data and an Operator-run development Shard.
module/src/vmap.rs: los_ray and collision_ray accept map_id and endpoints only.
module/src/debug/instance.rs: debug_vmap_ray has no instance argument.
docs/vmap-rollout.md: the Instance Pool is excluded from bounded-profile vmap generations.
4
4
4
4.0
Dependency Codex
After issue 113 has an approved eligibility rule and implementation, thread instance_id through ray callers and run isolated sibling-instance tests before the Deadmines acceptance run.
34
#39Static world collision is shipped, while dynamic GameObject collision, fresh-provision parity, and the final real-client movement checks remain open.
The epic's main collision slices landed in PR #115. Completion now depends on open issue #103 and its remaining children, issue #104's provisioning Gate, and a human Blink and line-of-sight check, so the umbrella is not a single implementation candidate.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #103 dynamic GameObject collision, including open children #113 and #114
Finish #103 through its remaining dynamic collision Tickets, complete #104 on a fresh provision, then run the real-client Blink and line-of-sight matrix and close the epic.
35
#138The repository quickstart is still the only complete guide; the public site exists only as an unbuilt specification, so there is nothing safe to point the 819-line document at.
The issue body contains only a dash. The public-site repository says it is not built yet and has no quickstart content. Shrinking the local guide now would remove the usable instructions.
Confidence: high. Issue updated 2026-08-13.
Blocked by
The published quickstart does not exist yet.
The issue needs an explicit destination URL and ownership rule.
docs/quickstart.md: the current guide is 819 lines and remains linked from README.md.
1
2
1
2.0
Dependency Codex
Wait for the public site to publish and version a complete quickstart, then replace docs/quickstart.md with a short durable pointer and check inbound links.
36
#33The protocol can expose a Realm list, but the Gateway still presents one configured Realm and the deployment lacks the shared account foundation needed for multiple Realms.
Issue #33 explicitly depends on the shared authentication and account work in #34. Starting independent multi-Realm implementation would duplicate or constrain that unfinished design.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issue #34 shared authentication hub and account policy
Code fact: the current CoordinatorStore realms path returns exactly one configured Realm despite the protocol-level Realm list response.
2
4
5
1.6
Dependency Codex
Complete and verify issue #34, then rewrite this issue around Realm directory discovery, selection, routing, and a two-Realm Gate.
37
#68Zero-disconnect file-descriptor handoff remains a large optional architecture project with all of its prerequisites open.
The Gateway keeps DecrypterHalf in the reader and EncrypterHalf in the writer; there is no cipher snapshot, SCM_RIGHTS transport, or receiving process protocol. The proposed handoff must also reconstruct WorldView state and coordinate ownership without letting either process write stale data. This complexity is only justified after measured restart cost and two-Gateway gain show that ordinary drain and reconnect are insufficient.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Issues #64, #66, and #67 are unresolved.
No cipher-state snapshot API or acceptance test exists.
The feature is Unix-specific and needs an Operator value decision.
Do not implement before #64, #66, and #67. If measurements justify it, first isolate and test vanilla header-cipher snapshot restoration, then specify the Unix handoff state machine and real-client acceptance check.
38
#61Deterministic bound identity shipped, but World Session epochs still live inside each Gateway process and cannot reject stale teardown across processes.
One half of the issue is stale: each Gateway now derives the same synthetic owner identity from the Account. The more serious half remains. SessionEpochs is an AtomicU64 plus a process-local map, and disconnect cleanup trusts that local release result before logout. Two Gateways can therefore each believe their World Session is current and let an older socket remove the newer live Character. The issue should be narrowed to a Realm-core Session generation or lease.
Confidence: high. Issue updated 2026-08-11.
Blocked by
The durable lease and expiry semantics need a small design decision.
Issue #69 should state whether arbitrary Gateways may serve the same Account.
Rewrite the issue around a Realm-core-owned Session generation or lease, pass its token through login and logout, and add a two-Gateway test where the losing socket disconnects after the winner enters the world.
39
#441A delayed START can recreate a resolved Loot Roll
PR #439 deduplicates active rolls. Resolution deletes that identity. A durable generation must distinguish retries from a later valid kill before changing storage.
Confidence: high. Issue updated 2026-09-05.
Blocked by
PR #439 must settle first; any schema change needs human review before shipping.
Design a stable promotion identity and cleanup rule. Prove old START replay is refused while a later roll on the same corpse and slot succeeds.
40
#71Item GUID allocation can leave a Character's 256-value packed block and collide with another Character; transfer relies on the opposite invariant.
item_guid_for keeps only 24 owner bits and reserves eight bits for a starting slot. next_item_guid then uses the owner's maximum GUID plus one without checking the low-byte boundary. Enough grants, splits, mail, trade, or inventory churn can enter the next owner's block, while owner GUIDs that differ above bit 24 share a block immediately. A primary-key collision can abort an inventory reducer, and cross-database transfer preserves these GUIDs as globally safe identifiers. Existing rows prevent a casual packing change.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Existing item rows use the current packed format.
A durable per-owner serial or another globally unique allocation scheme must be selected.
Choose a durable allocation scheme and live-row migration before implementation; define saturation behavior, preserve client-visible identifiers through transfer, and test allocation beyond 256 creations plus owners that share the low 24 bits.
41
#58The source installer shipped; the requested binary installer did not
install.sh clones the source and installs a pinned CLI launcher. The original issue instead requires both CLI and Gateway binaries in the installation folder. Treating the source-first flow as full completion would hide that difference.
Decide whether the supported source installation replaces this binary-distribution request. If binary distribution remains wanted, define supported targets and release artifacts before implementation.
42
#184The staged vmap import workflow exists, but the issue still asks for map 0 on the Instance Pool, which current canonical rollout rules explicitly forbid.
PR 192 shipped the source workflow. PR 275 later introduced the Eastern and Kalimdor World Import Profiles and changed the target matrix. The latest issue comment repeats the retired Instance Pool target, so following it would populate the wrong Shard.
Confidence: high. Issue updated 2026-09-01.
Blocked by
The issue and its latest comment contradict docs/vmap-rollout.md.
Any rollout requires a named host, approved client data, a maintenance window, and real-client acceptance.
Replace the acceptance checklist with map 0 on the Eastern World Shard, map 1 on the Kalimdor World Shard, and an explicit open-world exclusion for the Instance Pool. Only then schedule operator Verification.
43
#195Generation-scoped navigation coverage is implemented, but rollout acceptance has not been recorded and the issue's old Shard examples conflict with the current import topology.
PR 258 shipped preparation, finalization, matched-generation selection, and route-planner use. The latest comment says only rollout remains, but it predates the canonical profile change that moved open-world coverage to two World Shards and excluded the Instance Pool.
Confidence: high. Issue updated 2026-09-01.
Blocked by
The acceptance matrix must be updated for the current Eastern and Kalimdor World Shards.
Requires approved client data, named non-production or production targets, and human acceptance.
Correct the rollout matrix to the current World Import Profiles, then prepare and finalize matching coverage on each eligible World Shard and record route and client Verification before enabling nav_coverage_enabled.
44
#69The claimed choice between free-form Gateways and Gateway-per-Shard affinity no longer matches the shared connection model and needs a narrower decision.
Current Gateways keep shared coordinator connections to Shards, maintain a local WorldView, and select event audiences by spatial cells. That is already a hybrid: any Gateway can serve a viewer while local indexes avoid broadcasting most Relays to every World Session. Motion still comes from per-mover Shard rows, so the remaining question is measured subscription and writer cost, not the issue's original strict architectural fork.
Rewrite the decision around the current shared connection and WorldView model, then use #59 and #66 measurements to decide whether process-to-Shard affinity adds enough gain to justify routing and failover constraints.
45
#113Door collision meshes can be imported, but no per-GameObject collider registry or state-gated ray merge consumes them.
The prerequisite importer is merged and the runtime work is absent. The Spec now conflicts with active-generation eligibility: it expects dynamic doors to work on map 36 with no static chunks, while vmap_enabled returns false without an active generation. That decision affects the central Gate and must be settled first.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Maintainer decision: dynamic-only generation or a separate dynamic-collision eligibility rule for the Instance Pool.
The chosen rule must stay consistent with issue 198's future per-map eligibility model.
Choose and document the map-36 eligibility rule. Then implement game_go_collider, lifecycle registration, transforms, state gating, and synthetic ray behavior against that rule.
46
#34Realm-core authentication is active, but role-selectable Gateway processes, cross-Realm ban kicks, GM baselines, account migration, registration guidance, and a two-Realm Gate remain.
The data seam has shipped, but the remaining slices change deployment roles and account policy across Realm processes. The issue still requires Operator sequencing and does not identify which operational slice should land first.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Operator sequencing for the remaining slices
A product decision for GM baseline and per-Realm override behavior
Code fact: gateway/src/config.rs reads LYRACORE_REALM_CORE and gateway/src/main.rs starts both logon and world listeners without a role selection enum or flag.
Code fact: the current CoordinatorStore realm list contains one Realm, and account ban state has no cross-Realm active-session kick subscription.
4
5
5
4.0
Design first Codex
Choose the next operational slice, preferably explicit Gateway role flags, and write separate Tickets for role selection, ban propagation, GM policy, migration, registration, and the two-Realm Gate.
47
#29Basic GM playtest commands exist, while moderation audit, mute, kick, ban enforcement, summon or appear, and freeze behavior remain absent.
The issue now mixes shipped playtest tooling with unimplemented moderation and policy work. The remaining work crosses Gateway sessions, Module state, realm-core account policy, and audit retention, so the umbrella needs a current moderation-only Spec.
Confidence: high. Issue updated 2026-08-11.
Blocked by
A decision on GM permission levels and audit retention
Alignment with issue #34 account ban and GM baseline policy
Code fact: module/src/gm.rs implements speed, god, XP rate, level, money, heal, kill, gps, teleport, and add-item commands with gm_level checks, but no game_gm_action table or mute, kick, ban, summon, appear, or freeze path exists.
4
4
5
3.2
Design first Codex
Rewrite the issue around moderation outcomes, permission levels, audit records, and ban or mute propagation, then split it into one command and enforcement path per Ticket.
48
#36Speed and teleport movement checks exist, but fall, gravity, Z-axis, and wall-crossing checks remain undefined and unimplemented.
The Module reserves violation codes for the remaining checks, but the issue does not set thresholds or a false-positive budget from observed traces. Those policy choices affect legitimate movement and should be settled before more enforcement is added.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Threshold and false-positive policy for the next movement check
Representative legitimate and violating movement traces
Code fact: module/src/world.rs implements movement violation codes 1 and 2 for speed and teleport, and reserves codes 3 through 5 for fall or gravity, Z-axis, and wall checks.
4
3
4
3.0
Design first Codex
Choose the next check and its false-positive budget from recorded movement traces, then write one Ticket with deterministic Module Gates and a Headless Client scenario.
49
#35Package authoring, trust, provenance, and the compiled CLI are present; the remaining public-host work is the install script, Server manifest design, and fresh-machine acceptance.
PR #397 closed the package API and lint slice, and the cross-repository CLI workflow is established. The unresolved Server manifest is a product and deployment design choice, while issue #58 and fresh-machine verification are separate executable slices.
Confidence: high. Issue updated 2026-09-01.
Blocked by
A decision on the Server manifest contract
Open issue #58 for the installer
Fresh-machine acceptance across the CLI repository and this pinned shim
Code fact: docs/package-api.md and module/tests/package_api_lint.rs define and enforce the shipped package contract; docs/agents/cross-repo-cli.md requires CLI work in the sibling lyracore-cli repository followed by a pin bump here.
Decide the minimum deployment manifest and binary-distribution contract. #58 has a source installer but its requested binary distribution is unresolved.
50
#72SpellCastEvent still multiplexes several wire signals through independent booleans and zero-value conventions.
The row contains is_completion, is_interrupted, delay_ms, and is_proc_log alongside ordinary START and GO fields. The Gateway decodes them in ordered branches, while comments state which fields must be the only active signal. Typed signal constructors reduced literal duplication but do not enforce mutual exclusion. An additive kind would make the union explicit, but schema publication and generated bindings make this more than a local refactor, and the unused is_completion field needs a compatibility choice.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Define old-row decoding and the is_completion compatibility policy.
Define an additive event-kind contract and compatibility for old rows, then implement constructor stamping and Gateway decoding. Schema changes need human review before shipping.
51
#82A real Realm still has no tracked TCP load balancer, backend admission cap, or drain procedure for a Gateway pool.
The repository contains only the Standalone Supervisor deployment artifact. The issue is explicitly tied to host topology and kill-a-backend acceptance, while the old capacity numbers need refresh after shared connections and batching.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Needs current single-Gateway and dense-crowd capacity evidence.
Requires a maintainer choice of load balancer and a named host before any topology change.
deploy/systemd: only the Standalone Supervisor service is tracked; no Gateway load-balancer configuration exists.
gateway/src/config.rs: LYRACORE_REALM_ADDRESS can advertise an external address but does not provision or drain backends.
3
4
4
3.0
Design first Codex
After current capacity and dense-crowd Verification, choose the supported load balancer and tracked deployment shape. Build static backend caps, health checks, drain commands, and a failure drill against a named non-production host first.
52
#73The pinned CLI has a useful text dev status command and no Ratatui dependency; choosing a TUI remains a product decision.
The sibling lyracore-cli repository at the pinned revision has no ratatui or crossterm dependency. dev status already renders process, topology, and per-database health directly from the CLI's existing state and health checks. A TUI could make local observation easier, but the spatial seam map is retired and a remote GM console has different authentication and reach. The remaining work is to select one bounded surface rather than adopt a rendering library first.
Confidence: high. Issue updated 2026-08-11.
Blocked by
No operations surface has been selected.
The spatial seam map named by the issue is retired.
Have the Operator choose whether local dev status needs an interactive TUI; if yes, scope a read-only local process and database view before considering remote Realm or spatial editing.
53
#27Groups remain limited to parties; raid conversion, subgroups, assistants, raid roster packets, and raid quest-credit rules are absent.
Current code explicitly excludes raid groups. The issue spans data modeling, protocol behavior, permissions, quest credit, and multi-client acceptance without a current packet or policy Spec.
Code fact: module/src/group.rs states that raid groups are out of scope, and the current schema has no raid subgroup or assistant role state.
3
4
5
2.4
Design first Codex
Define the 1.12 raid roster packet shapes and quest-credit policy, then split conversion, subgroup movement, assistant permissions, roster projection, and credit behavior into separate Tickets.
54
#313Choose which non-spell DBC catalogues Packages may edit
The proposal names a concrete update-only set, but explicitly awaits maintainer approval. Positional keys and cross-family ordering affect the contract and should be settled before implementation.
Confidence: medium. Issue updated 2026-09-02.
Blocked by
Maintainer decision requested in the issue comment.
Approve or revise the proposed table set, stable keys, family boundaries and replay order, then assign a Tracer.
55
#11Self-resurrection effects such as Soulstone and Reincarnation have no stored eligibility, consume-on-use flow, or self-resurrect packet handling.
Existing resurrection code handles requests from another Character, while the importer leaves Reincarnation scripted. The exact 1.12 duration, death-screen option, reagent, cooldown, and consumption behavior need observation before the state model is fixed.
Code fact: current resurrection handling models an ally-issued resurrection request, no SELF_RESURRECT path exists, and importer spell classification leaves Reincarnation as E_SCRIPTED.
3
3
4
2.2
Design first Codex
Research the missing protocol and gameplay facts from primary sources, then define a complete implementation Ticket. Keep the final real-client check separate.
56
#198Exact vmap consumption still depends on a realm-wide boolean as well as an active map generation, but the issue's rollout topology no longer matches the canonical World Import Profiles.
The implementation is absent and the prerequisites remain open. More seriously, current rollout docs route open-world vmaps to the two World Shards and skip the Instance Pool, contradicting the issue's map-0 account. Removing the Gate from this stale Spec would be unsafe.
module/src/vmap.rs: vmap_enabled still requires game_config.vmap_enabled and an active generation.
docs/vmap-rollout.md: current production destinations are alliance-eastern and alliance-kalimdor World Shards; the Instance Pool must receive no bounded-profile vmap generation.
Rewrite the supported-map inventory and eligibility rule against the current World Import Profiles, then wait for corrected rollout and matching navigation-coverage Verification before removing the Gate.
57
#4The imported world has no continent-crossing transport or synthetic AreaTrigger link, and the issue offers two different destinations with different content costs.
The Operator must choose between the cheap Ratchet to Stormwind synthetic link and waiting for a real dock path that needs wider map-0 content. Code work before that choice risks implementing the wrong world route.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Operator choice between the proposed Ratchet to Stormwind link and a later real-dock route
Wider map-0 import scope if the real-dock route is selected
Code fact: the importer reads source AreaTrigger rows, but trigger ids 3551, 3530, and 4029 and any synthetic continent-crossing link are absent from current code.
2
3
3
2.0
Design first Codex
Choose the temporary synthetic route or the real-dock route; for the temporary route, write one importer plus teleport Gate Ticket using the selected trigger ids.
58
#67SO_REUSEPORT is still absent, but its value depends on the chosen drain and world-address routing design.
Both Gateway listeners still use TcpListener::bind, and there is no reuse-port setup. That proves the feature is unimplemented, but not that it is the best deploy mechanism. If logon sends new clients only to a fresh advertised address and the old Gateway drains, overlapping binds may add little. Platform behavior and failure reporting also need an explicit support policy.
Decide after #64 and #65 whether overlapping binds are required; if yes, specify supported operating systems and add socket creation plus an overlap acceptance test.
59
#79Gateway connections still use the SpacetimeDB confirmed-read default, and the current shared Coordinator gives no movement-only connection on which to disable it safely.
No confirmed-read override exists. The issue's proposed one-line movement-path change no longer fits the architecture: a Coordinator carries all subscribed state and Durable Reads for a Shard, so the durability trade affects more than movement.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
A maintainer must approve the crash-durability trade.
There is no current movement-only subscription connection.
Measure confirmed-read latency on the current Coordinator, list which state would become visible before durability, and decide whether to keep confirmation or introduce a narrowly scoped connection before changing the setting.
60
#10Distract has no destination checks, temporary Creature attention state, facing update, or combat and expiry rules.
The desired idle, combat, radius, duration, and facing semantics are not specified precisely, and the current Creature behavior has no matching investigation or attention state. Observation should precede a new AI state seam.
Code fact: searches across spell, combat, and Creature behavior code find no Distract, investigation, or temporary attention implementation.
2
2
4
1.0
Design first Codex
Research the missing protocol and gameplay facts from primary sources, then define a complete implementation Ticket. Keep the final real-client check separate.
61
#41Ritual of Summoning still lacks the ritual portal, two-assistant interaction, and targeted teleport flow.
The requested behavior depends on exact 1.12 group and GameObject interaction semantics that are not specified in the issue or represented in current code. A multi-client observation is needed before implementation can be split safely.
Code fact: searches for spell 698, Ritual of Summoning, and ritual portal assistance found no implementation in importer, Module, or Gateway code.
2
2
5
0.8
Design first Codex
Research the missing protocol and gameplay facts from primary sources, then define a complete implementation Ticket. Keep the final real-client check separate.
62
#92client sync and the later Client Artifact command are implemented; only a real client sync load check remains.
CLI PR 32 and core PR 322 shipped sync. Issue 303 and PR 392 later shipped the distributable Client Artifact that the original issue deferred. The latest issue evidence correctly leaves only stock-client loading.
Confidence: high. Issue updated 2026-09-02.
Blocked by
Requires a configured, legally obtained stock 1.12.1 client and a human load check.
PR #358 ships Module reconciliation and four durable tests were recorded green. CLI replay wiring also shipped through #393. The remaining recorded acceptance is visible login effects and removal on a named realm.
Confidence: high. Issue updated 2026-09-03.
Blocked by
Named test realm and permission for its Package changes.
Run the existing install, login, disable and login acceptance sequence; preserve cross-Shard evidence.
64
#3Realm-wide mail, auctions, guilds, whispers, parties, and loot coordination are present, but the reopened epic still lacks a consolidated two-client, multi-Shard acceptance record and contains stale mirror-removal wording.
The major systems named by the epic now use realm-core authority, including cross-Shard party and whisper paths. The remaining useful work is a real-client system Gate and an acceptance update that distinguishes authoritative state from deliberate Shard read mirrors.
Confidence: medium. Issue updated 2026-08-11.
Blocked by
A two-client multi-Shard 1.12.1 acceptance environment
Clarification that Shard read mirrors may remain when realm-core is authoritative
Run two real clients on different Shards through mail, auction, guild, whisper, party, loot-roll, Transfer, and delete scenarios; update the mirror criterion and file only concrete failures.
65
#38The Gateway now installs Shard event callbacks once and performs a single ordered login visibility sweep; the remaining work is the issue's real-client login matrix.
PRs #421 and #433 replaced the subscription and login ordering paths described by the issue. Code-level Gates cover callback placement and sweep ordering, but the acceptance criteria still require fresh and geared Characters, auras, and questgivers on a real client.
Confidence: high. Issue updated 2026-08-11.
Blocked by
A real 1.12.1 client with fresh and geared Character fixtures
Run the stated 5875 login matrix on main and close the issue if every initial snapshot and following delta is correct; file narrow failures separately.
66
#1The public package-manager proposal is largely implemented, while the remaining work is human product review, a real-client sync check, and maintenance of the proposal as a tracker.
Most linked slices are closed, and the repository documents package, build, config, replay, client sync, and client pack workflows. The issue comments say not to implement the umbrella directly; open issue #92 now retains only a real-client sync acceptance step.
Confidence: high. Issue updated 2026-08-24.
Blocked by
Issue #92 real-client sync acceptance
Human review of the public proposal's remaining product commitments
Complete issue #92's real-client sync check, review the installed workflow against the public proposal, and refresh or close the umbrella without starting code from it.
67
#42The scripted and package-based Playerbot work has shipped; the remaining acceptance bar is a human-run real-client session that judges believable behavior and completes Deadmines.
Core PRs #394 and #395 and the linked package, CLI, and wire-harness work are merged. The issue's latest checklist explicitly leaves human judgment of believability, serendipity, and a full real 1.12.1 client dungeon run.
Confidence: high. Issue updated 2026-09-02.
Blocked by
A real 1.12.1 client and imported node
The Playerbot packages needed by the acceptance scenario
Run issue #373's imported-node playbook, then complete issue #366 through VanCleef and record the observed failures as narrow follow-up issues.
68
#154Aura stacking-family code and its single insertion boundary are covered; the documented live stacking sequence has no recorded evidence.
PR 217 shipped the code and Architecture Test. The issue's latest comment and the still-empty evidence template agree that only operator-run aura and client Verification remains.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires an Operator-approved Module publish and a real client.
Run docs/aura-stacking-probes.md on an approved development Realm, fill its evidence template, and close this issue if every persisted and visible result agrees.
69
#112The DOOR and BUTTON model importer is merged; only an approved client-data dry run and apply to a named development Shard remain.
PR 254 shipped DBC lookup, M2 extraction, storage reducers, limits, and tests. The latest evidence correctly says runtime use belongs to issue 113 and this issue needs Operator-owned data acceptance only.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires approved client Data and an explicitly named development Shard.
Run --go-models as a dry run against approved client data, record nonzero Deadmines door triangles, then apply to a named development Shard.
70
#196Bounded ground-snapped patrol return is implemented; only a real-client observation of a badly displaced patroller remains.
PR 253 added repeated return steps and pure coverage for long displacement and ordinary patrol behavior. The latest issue comment correctly narrows the remainder to visual Verification.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires a stock 1.12.1 client and a suitable live creature scenario.
Displace a patroller across uneven terrain in a stock client and record its return, route rejoin, and resumed patrol.
71
#366Verify Deadmines choreography in the real client
The Package has durable tests. Visible door changes, Smite movement and chat still need observation. The stomp decision is settled, but packages issue #18 remains open.
Learn a higher spell rank in a real 1.12.1 client, relog, and confirm the spellbook contains the expected visible rank before closing.
73
#304Verify FrameXML and GlueXML transforms on the real client
The transform engine, conflict checks and content hashes already shipped in PR #392. Current issue comments explicitly leave separate FrameXML and GlueXML client checks outstanding.
Confidence: high. Issue updated 2026-09-02.
Blocked by
Real unmodified 1.12.1 client and Operator baseline.
Run the combined bot and dungeon acceptance session after the missing dungeon content ships.
75
#202The low gossip text identifier is implemented, but nobody has confirmed that Marshal McBride's gossip and quest window renders in the stock client.
The code already sends identifier 1 and answers its text query. The remaining question is client rendering, which the Headless Client cannot decide.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Requires a stock 1.12.1 client and a human visual check.
gateway/src/codec/npc.rs: GOSSIP_GREETING_TEXT_ID is 1 and build_npc_text_update accepts arbitrary queried identifiers.
gateway/src/codec/tests.rs: packet tests cover the low identifier but explicitly cannot prove client rendering.
2
2
1
4.0
Human acceptance Codex
Right-click Marshal McBride in a stock build-5875 client and record whether the greeting and quest offer appear.
76
#107GameObject template scale is imported and sent on the wire; current data and stock-client proportions have not been checked.
PR 110 shipped all three code layers and fallback tests. The issue's latest comment correctly limits the remainder to import, row and wire checks, and visual proportions.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Requires approved game data, an Operator-run development Shard, and a stock client.
Publish and import on a named development Shard, compare Peacebloom and Copper Vein template sizes with the source data, inspect OBJECT_FIELD_SCALE_X, and check both in a stock client.
77
#53A maintained public demo realm still needs deployment, backup, restore, and operations work despite recent pre-auth hardening.
Pre-auth limits and Session Expiry shipped in merged PR #416. A public demo Realm still needs a named host, backup and restore procedures, operational ownership and an approved deployment.
Confidence: high. Issue updated 2026-08-11.
Blocked by
No named public host or deployment target is authorized.
Backup and restore behavior has not been demonstrated.
Split the remaining work into a reviewed public-host runbook and reversible automation, then have an Operator name the host and approve the first deployment and restore drill.
A creature death can remove a due aura before the scheduler advances its old snapshot. The fix advances only rows that still exist, so death and unrelated periodic effects commit together.
Closed on GitHub. Preserve the recorded implementation evidence.
79
#70A fresh clone now runs a four-database sharded fixture, while the requested Northshire region seam was deliberately retired.
The issue's product goal, showing Sharding out of the box, is shipped in an evolved form. dev up publishes Eastern Kingdoms, Kalimdor, an Instance Pool, and Realm-core, so contributors exercise both continental and instance routing. The same docs explicitly record removal of the second Elwynn database and walkable Northshire seam. Keeping the exact original issue open would reverse a later Operator decision.
Closed with current-source evidence. See the GitHub triage comment.
80
#51The old away-Shard subscription path is gone, and the replacement shared connection model enforces ghost and stealth visibility.
The issue targets ensure_away and fold_home_shard, neither of which exists. The Gateway now keeps shared Shard connections and selects visible peers through WorldView. ViewerGates carries the viewer's ghost state, and peer creation consults ghost and stealth state before sending CREATE. A later merged fix also restores a peer's aura state when stealth ends.
Closed with current-source evidence. See the GitHub triage comment.
81
#76The blocking-pool limit is now configured, logged, documented, and enforced before a socket enters Tokio's blocking queue, satisfying the issue's stated completion rule.
Current code and PR 410 go beyond the original acceptance criteria by sharing a non-waiting capacity across both listeners. The title's old 477 and 535 observations remain historical evidence, not an open implementation request.
The shared creature identifier policy exists on main through PR #405. The casts entry points do not consistently apply it, so this small fix protects fixtures and Package testing.
crates/lyracore-package-delta/src/delta.rs: creature_template calls check_claimable_creature_entry; creature_cast and creature_spell use separate constructors.
Closed on GitHub. Preserve the recorded implementation evidence.
83
#399Replay no longer needs client data for a completed plan
Current CLI main reads target provenance before resolving client data. The script-only no-op test already runs without client data. The original control-flow complaint appears fixed by the replay work.
Closed with the merged PR and passing main workflow as evidence.
86
#45The old question about per-Character AOI subscription cost no longer matches the event relay design, which now uses one stable event subscription per Shard and computes viewer audiences in Gateway memory.
PR #421 removed the fan-out pattern that motivated the table-collapse decision. Its 2,000-Character benchmark reduced queued jobs from 4,000,000 to 336,124 in the distributed case, so the proposed comparison would measure an obsolete architecture.
Closed with current-source evidence. See the GitHub triage comment.
87
#48The reported warm-handoff seam feel belongs to the retired region tier; the current Gateway has no seam state machine to tune.
The repository removed sub-map regions and mid-walk warm handoff. All recorded angle tests also passed before that removal, so further work on the old hysteresis design would target code that no longer exists.
Code fact: gateway/src/world/seam.rs is absent, and docs/architecture.md records the 2026-08-08 removal of the region tier and seam menu.
1
1
1
1.0
Done Codex
Closed with current-source evidence. See the GitHub triage comment.
88
#56The requested walkable-seam presentation polish has no active region seam after the region tier was retired.
Abrupt range-leave presentation and repeated crossings were properties of the removed Northshire-to-Elwynn region handoff. Current fixture Shard crossings are escrowed continent or instance transfers, not an overlapping walkable view merge. Keeping this issue open implies an active feature that the current topology deliberately removed.
Closed with current-source evidence. See the GitHub triage comment.
89
#49The seam operations console has no active region tier to operate; only the underlying load samples remain useful.
The fixture and production topology no longer activate region assignments. Current documentation explicitly retires the walkable region seam and keeps continental and instance routing. Building the requested editor now would put a large UI around inert topology data. Shard load telemetry can support a smaller future operations surface after #73 selects one.
Closed with current-source evidence. See the GitHub triage comment.
PRs to completion
Each implementer owns their PR until it merges or has a named blocker. Codex checks CI, CodeRabbit reviews,
human comments and unresolved threads after each push. Accepted findings get a fix and fresh checks; disputed findings get a reasoned response.
Rebase before opening a PR and recheck the reviewed commit before merge.
CI and coordinating review passed; CodeRabbit rate-limited
Request CodeRabbit review after 07:18 UTC and resolve any findings before merge.
+
Codex takes the final merge after current-head checks pass and review findings are resolved. Explicit human review requirements and real-client acceptance remain separate.
fix(suite): run scenarios from the adapter directory
GPT-6 Astra, Codex
PR open; CI running
Complete independent review and CI, then publish a release tag and core pin.
Ownership and updates
This report is the working dispatch list. Codex updates the same published URL after triage, assignment,
PR creation, review changes and merge. Scores change when new evidence changes the expected benefit or effort.
@@ -56,7 +58,7 @@
Production changes require a named host and explicit authorization. Work that crosses section 1 of
danger-zones.md
needs human review before shipping. Product UI changes follow the repository's mock-selection requirement.
-
Recent updates
Merged #435 aura rollback, #434 fixture cast protection and #437 motion diagnostics after review and green CI. Kept #424 open because the long-running freeze is unverified. Assigned #63, #367 and #398. CodeRabbit found the report publisher was unpinned; replacing it with a locked local dependency.
PR #434 opened. Coordinating review identified a possible partial-update bypass. The aura rollback regression passes. A real-dispatch test proves the motion warning can be a false alarm.
Completed all 88 assessments. Distinguished retired work, existing implementations, design work and human acceptance. Selected four independent first-wave tasks.
Completed 28 more assessments. Assigned #80 teleport cleanup and started the #425 durable regression. PR #415 merged through its existing owner.
Read the 88 open issues into the audit queue. Assigned three independent audits; Codex owns the combined report and newest issues.
+
Recent updates
Opened wire-harness PR #6 for #105 after a failing path repro and 55 passing Rust tests. CodeRabbit found three stale report records; corrected CI evidence, the merged security dependency and missing PR heads.
Current main passed all workflows. Closed shipped CI work and retired region work with linked evidence. Corrected #58 and #77: the binary installer and measured capacity targets are not proved by the existing source changes.
Resumed report ownership. Refreshed 86 open issues, recorded new lifecycle issue #441, and found four existing PRs to complete. Assigned isolated review, ownership-check and CLI work.
Merged #435 aura rollback, #434 fixture cast protection and #437 motion diagnostics after review and green CI. Kept #424 open because the long-running freeze is unverified. Assigned #63, #367 and #398. CodeRabbit found the report publisher was unpinned; replacing it with a locked local dependency.
PR #434 opened. Coordinating review identified a possible partial-update bypass. The aura rollback regression passes. A real-dispatch test proves the motion warning can be a false alarm.
Completed all 88 assessments. Distinguished retired work, existing implementations, design work and human acceptance. Selected four independent first-wave tasks.
Completed 28 more assessments. Assigned #80 teleport cleanup and started the #425 durable regression. PR #415 merged through its existing owner.
Read the 88 open issues into the audit queue. Assigned three independent audits; Codex owns the combined report and newest issues.