diff --git a/docs/triage/issues.json b/docs/triage/issues.json
index c1278b8e4..cce530d67 100644
--- a/docs/triage/issues.json
+++ b/docs/triage/issues.json
@@ -1,14 +1,13 @@
{
- "updated_at": "2026-09-07 17:35 UTC",
- "base_revision": "94aa2da8bb22b1d368b980769563c6fbbb330bc7",
- "status_note": "All 70 open issues have an assessment; 20 closed issues remain for history. Character cleanup #463 is in review. Random Property #462 review fixes are pushed and its checks are running. Loot Roll replay #461 passes CI and needs an enforced upgrade checkpoint. The Spell importer repair is taking the checked parent fixes before publication.",
+ "updated_at": "2026-09-07 20:48 UTC",
+ "base_revision": "3669dfbc7f648fd098cb77317a44f76c8597e262",
+ "status_note": "All 69 open issues have an assessment; 22 closed issues remain for history. Human-approved Loot replay #461, party cleanup #463 and summon fix #470 are merged. Spell repair #465, item stats #466 and Account ownership #471 are integrating this main. The party suite is checking owned deletion and preservation cases.",
"monitoring_note": "Codex monitors PR checks and review comments during this active session. Implementers own fixes after publication; Codex owns final review and merge. Actual CodeRabbit review is required, including after rate limits. No unattended scheduler is installed; this report preserves the next actions between sessions.",
"focus": [
- "Drive Character deletion cleanup #463 through CI and CodeRabbit review; retain remaining acceptance on #46.",
- "Review the corrected Random Property Tracer #462 while GPT-5.6 Sol connects the remaining Stat Kinds for #31.",
- "Enforce the Loot Roll replay #461 upgrade checkpoint before requesting human schema review.",
- "Repair general Spell import #460 using the checked Tracer reader and source-shaped fixtures.",
- "Keep Binding draft #455 ready for human schema review; retain real-client acceptance on #40."
+ "Finish integration checks and current-head review for Spell repair #465 and item stats #466.",
+ "Complete Account ownership #471 review fixes and final integration before human schema review.",
+ "Run the scoped Headless Client party suite to finish #46.",
+ "Publish and merge the maintained report snapshot on the shared CI repair."
],
"issues": [
{
@@ -990,7 +989,7 @@
"confidence": "medium",
"disposition": "verify",
"rationale": "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.",
- "next_action": "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.",
+ "next_action": "Add a failed-settlement retry case that checks watermark advancement, then rerun group loot on a fresh current three-Shard development stack. Capture promotion, Realm-core resolution and settlement separately; split bot-party combat failures into their own issue.",
"blockers": [
"The exact three-Shard scenario needs an Operator-run development stack and the repaired Headless Client pin from issue 105."
],
@@ -998,7 +997,8 @@
"https://github.com/LyraCoreProject/LyraCore/issues/84",
"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."
+ "module/src/loot/rolls.rs: settle_loot_roll grants only on the Shard that owns the corpse item.",
+ "During #441 review, current relay_tick was observed advancing won_watermark even when a Shard settlement request fails. This can suppress its retry; it is a separate concrete failure path to include in the group-loot investigation, not proof of the original incident cause."
],
"related_prs": [],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/84",
@@ -1492,11 +1492,11 @@
"gain": 5,
"effort": 4,
"confidence": "high",
- "disposition": "ready",
+ "disposition": "implementing",
"rationale": "The corruption exists whenever two Gateways serve one Account. A Realm-core Session generation and compare-by-generation logout is an ordinary consistency design. #69 may affect routing policy but does not need to block this invariant.",
- "next_action": "Implement a Realm-core Session generation and refuse stale logout or takeover. Prove the losing World Session cannot clear the winning Session across two Gateways.",
+ "next_action": "Finish descriptor, bounded fence cleanup and Shard error review fixes on merged #470 with alpha10. Pass final checks and actual review, then request human schema review.",
"blockers": [
- "Human review before shipping a concrete schema change; controlled two-Gateway acceptance remains."
+ "Human review before shipping the concrete Account ownership schema change."
],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/61. The issue identifies stale disconnect cleanup as a cross-process Character corruption path.",
@@ -1505,13 +1505,26 @@
"https://github.com/LyraCoreProject/LyraCore/blob/a6e7119484e35c8779f0f013af7dadafbc293ce7/gateway/src/stdb/world_store.rs#L227-L231. Bound identity is now deterministic per Account, so that part no longer differs between Gateway processes.",
"Issue #61 states the two-Gateway stale-disconnect corruption directly.",
"The maintained report already identifies a Realm-core-owned generation or lease and the losing-socket test as the bounded solution.",
- "CODING_STANDARDS.md assigns realm-wide Session state to Realm-core and requires atomic Durable Requests."
+ "CODING_STANDARDS.md assigns realm-wide Session state to Realm-core and requires atomic Durable Requests.",
+ "Local T1 and T2 Tickets establish the two-Gateway ownership path and integration checks. Design review requires tokens on queued movement, gameplay, cleanup and Transfer requests. Every configured Shard must acknowledge the new generation before admission; an unavailable Shard therefore prevents admission.",
+ "A disposable Standalone with two independent Coordinators reproduced the current defect: both logins succeed, then delayed and repeated logout from the older Gateway deletes the newer Character entity. The test failed with zero live entities where one was required. Durable ownership implementation is in progress.",
+ "The first durable replacement test now passes: a competing live claim is refused, an expired claim is replaced, and delayed old cleanup and a stale combat request leave the winning Character intact. The agent is integrating approved main and proving socket-loop, queued movement and Transfer cases.",
+ "The encrypted World Session case refused a competing live claim and preserved the successor after expiry and old cleanup. Self-review found that an ownership-loss message could wait behind a blocked writer; the agent is replacing it with direct shutdown through an owned socket clone and testing that case before publication.",
+ "Cross-repository audit found three Headless Client shell calls still using bare guids. Compatible argument encoding and refusal-safe party cleanup are published in wire-harness #11 with four passing offline shell checks. The core implementation will include its reviewed release pin.",
+ "The expiry fixture found that identity lookup can select the wrong live entity when legacy rows share an identity. The implementer is passing the already resolved Character entity into the shared logout body and testing duplicate identities. Renewal work also moves outside the blocking pool used by active World Sessions.",
+ "At 2f6b96d, all 1,496 Module, 1,302 Gateway and 351 importer unit tests pass, plus 156 shared tests and 121 Gateway integration/parity checks. Strict workspace lint passes. The encrypted World Session proof covers competing admission, old socket closure and renewal with a full Tokio blocking pool. Independent routing review found no missing immutable ownership token. Binding comparison and offline preflight are the remaining local gates.",
+ "Initial Rust CI passed. Durable CI failed before two fixtures connected because parallel Standalone launches could not read their signing key; three Account durable cases passed. The implementer is fixing fixture isolation and integrating a345555. All local unit, lint, formatting, 986-binding and offline preflight gates passed before publication. Private Account Claim/Fence tables and reducer argument changes require human schema review after checks pass.",
+ "The five Account durable cases pass with four concurrent test threads after private signing-key isolation. The integration with merged party cleanup retains SessionActor in the new Coordinator clone and deletion LEAVE path. A literal two-process smoke check is prepared on new owned Standalone fixtures.",
+ "https://github.com/LyraCoreProject/LyraCore/pull/471#issuecomment-5575251072. Both directions of the literal two-process acceptance pass with frozen artifact hashes.",
+ "https://github.com/LyraCoreProject/wire-harness/pull/12. Corrects root's alpha9 structured-GUID advice after the real CLI refused a JSON string; an exact value above 2^53 is verified durably."
+ ],
+ "related_prs": [
+ 471
],
- "related_prs": [],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/61",
"updatedAt": "2026-08-11T08:22:29Z",
"github_state": "open",
- "owner": "Codex"
+ "owner": "GPT-6 Astra, high effort, Account ownership agent"
},
{
"number": 60,
@@ -1775,9 +1788,9 @@
"gain": 4,
"effort": 3,
"confidence": "medium",
- "disposition": "review",
+ "disposition": "implementing",
"rationale": "The Character deletion Relay is present, but it converts failed reads to absence before a direct Realm-core LEAVE. Its tests inspect source text. The current path also needs verification of Transfer/cache ordering and surviving party mirrors before the suite workaround can be removed.",
- "next_action": "Drive PR #463 through current-head CI and CodeRabbit review, then merge when ready. Keep the remaining suite and client acceptance work on #46.",
+ "next_action": "Remove the Headless Client suite party-reset workaround, scope assertions to fixture parties and verify grouped deletion without a manual dissolve.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/46",
@@ -1789,7 +1802,11 @@
"Further coordinating review found that local stable snapshots do not establish freshness across two Gateways. The implementer is addressing delayed destination observation before publication.",
"Each absence sample now uses a temporary filtered Character subscription and collects presence, cache generation and revision after acknowledgement. The private regression parks a second Coordinator destination pump during a Transfer. This revised fixture remains in progress.",
"The final controlled two-Coordinator Transfer test passed in 45.68 seconds. Eight focused cleanup tests and 51 party tests passed. Full Gateway checks passed with one trace-path test excluded after reproducing the same failure on the unmodified base. Final review removed a persistent batching cursor that could skip members.",
- "Published PR #463 at 6fec452 after rebasing onto 94aa2da. The exact rebased head passed the private two-Coordinator test, 1,319 Gateway unit tests and 116 integration tests with the proven base trace-path failure excluded. Strict Gateway lint and formatting checks passed."
+ "Published PR #463 at 6fec452 after rebasing onto 94aa2da. The exact rebased head passed the private two-Coordinator test, 1,319 Gateway unit tests and 116 integration tests with the proven base trace-path failure excluded. Strict Gateway lint and formatting checks passed.",
+ "CodeRabbit requested moving the durable callback fixture out of production lexical scans. The implementer also preserved the primary subscription failure when unsubscribe fails and simplified the Realm roster health read. These changes are committed locally and awaiting focused checks.",
+ "The three review findings are addressed and actual CodeRabbit review of d6cfa37 passed. Head 08cb0b2 adds merged Binding fixture #468 through rebase. Its Gateway and Module source trees match the checked implementation. Current-head durable CI and actual review remain pending.",
+ "Head d94bc1d preserves the original LEAVE failure if roster confirmation also fails, and repairs known groups while a failed Shard enumeration remains queued for retry. All 53 party tests, eight focused deletion checks and strict Gateway lint pass. CodeRabbit completed review on this head with no remaining finding. Durable CI is still running.",
+ "PR #463 merged as a345555 at 19:48 UTC after all seven checks and current-head CodeRabbit review passed. Issue stays open because wire-harness still globally resets parties between scenarios. Its remaining acceptance is assigned to the party implementer in an isolated worktree."
],
"related_prs": [
384,
@@ -1798,7 +1815,7 @@
"url": "https://github.com/LyraCoreProject/LyraCore/issues/46",
"updatedAt": "2026-08-11T08:22:10Z",
"github_state": "open",
- "owner": "Codex, coordinating PR review"
+ "owner": "GPT-5.6 Sol, high effort, Character cleanup implementer"
},
{
"number": 45,
@@ -1888,9 +1905,8 @@
"confidence": "high",
"disposition": "human",
"rationale": "Source data maps item 6928 to spell 7728 and item 6913 to spell 8674. Both use SendEvent and ActivateObject with spell focus 83. Current quest source-item reachability and item-use routing already exist. The remaining work must preserve the source-backed event behavior, focus Gate and objective credit. Quest turn-in also lacks reward-spell data, so the complete path needs a small durable catalogue and generated bindings.",
- "next_action": "The user has received the concrete #455 schema review request. Keep the tested PR draft until human review arrives, and retain ritual-circle client acceptance on #40.",
+ "next_action": "Binding implementation #455 merged after human schema approval. Keep #40 open for the real-client ritual-circle and summon feedback acceptance.",
"blockers": [
- "Human review of the concrete schema and binding change under docs/danger-zones.md section 1 before shipping.",
"A real-client ritual-circle check after Module behavior passes."
],
"evidence": [
@@ -1898,7 +1914,8 @@
"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.",
"Current pinned cmangos rows: item 6928 -> spell 7728 -> event 1131; item 6913 -> spell 8674 -> event 1134. Both spells use effects 61 and 86 with focus 83. The issue's suggested plain hostile-summon effect is not the source spell shape.",
"Current quest importer omits RewSpell and RewSpellCast; the Module has no durable quest reward-spell catalogue. The draft must preserve their distinct source semantics.",
- "Final bab88ef passed all seven checks. CodeRabbit completed review through that head with no remaining findings. Recovered serial verification passed 42 Module durable tests and one Gateway auction regression; the added radius assertion also passed separately at 8cbd16d."
+ "Final bab88ef passed all seven checks. CodeRabbit completed review through that head with no remaining findings. Recovered serial verification passed 42 Module durable tests and one Gateway auction regression; the added radius assertion also passed separately at 8cbd16d.",
+ "User approved the concrete schema and PR #455 merged as 1c63b7f after current-head checks and actual CodeRabbit review. No live Realm update was performed."
],
"related_prs": [
455
@@ -2102,12 +2119,11 @@
"gain": 4,
"effort": 5,
"confidence": "high",
- "disposition": "implementing",
- "rationale": "The Random Property Tracer is complete in tested draft #462. It imports and preserves the selected property through item movement and the client packets, and applies the existing EquipStat families. The remaining Stat Kinds now have a separate implementation owner.",
- "next_action": "Complete current-head review of Tracer #462 at 8b72ddf, then finish the remaining Stat Kinds and stacked integration.",
+ "disposition": "review",
+ "rationale": "The Random Property Tracer merged in approved #462. It imports and preserves the selected property through item movement and client packets, and applies the existing EquipStat families. PR #466 adds the remaining Stat Kinds and is completing review corrections.",
+ "next_action": "Finish current-main integration checks for #466, publish the rebased branch and complete CI and current-head review.",
"blockers": [
- "Human review of the concrete schema and binding changes before shipping.",
- "A real-client tooltip check and approved Realm acceptance after the Tracer and remaining stat-family work."
+ "A real-client tooltip check and approved Realm acceptance after the remaining Stat Kind work."
],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/31#issuecomment-5379512339",
@@ -2120,10 +2136,16 @@
"All eight private durable property tests and the complete 973-file binding comparison passed. Real-data import exposed shifted Spell fields; the corrected reader now imports primary-stat effects. Final checks are rerunning after that fix.",
"Draft #462 at b23d90e passed 345 importer, 1496 Module, 1422 Gateway and 156 shared tests; the known local trace-path test was excluded and CI retains it. Nine private property, three item-movement and one real Coordinator armor test passed. All four World Import Profiles, strict workspace lint, preflight and all 973 generated bindings passed.",
"CodeRabbit found incomplete item-family row counts, chest refusal on invalid properties and gaps after skipped creature drops. Codex reproduced both gameplay defects; the shared insertion fix passes all 11 durable property cases. Importer and lint checks are finishing before push.",
- "Pushed all three review fixes as 8b72ddf. All 11 durable property cases and 346 importer tests passed, with two existing ignored importer fixtures. Strict Module and importer lint checks passed. Review replies include the reproduced failures; a new CodeRabbit review was requested."
+ "Pushed all three review fixes as 8b72ddf. All 11 durable property cases and 346 importer tests passed, with two existing ignored importer fixtures. Strict Module and importer lint checks passed. Review replies include the reproduced failures; a new CodeRabbit review was requested.",
+ "Actual CodeRabbit review of 8b72ddf completed with no new findings, all seven checks passed, and the concrete schema review request was sent to the user. The remaining Stat Kind implementation connects maxima, six resistances, per-hand damage, defense and avoidance, scheduled regen, school-filtered damage and healing, plus client resistance fields. Its durable caller fixtures are running.",
+ "The user reviewed and approved the concrete schema. PR #462 merged as 8a40989 after current-head checks and actual CodeRabbit review passed. The remaining Stat Kind agent is integrating onto this main revision.",
+ "PR #466 is published at 4bc7d89. Its 1,499 Module and 1,303 Gateway unit tests, four Module durable Stat Kind fixtures, Gateway resistance fixture and strict lint pass. Root review found that item MP5 is incorrectly suppressed by the five-second casting pause. The implementer is correcting this and checking small flat regeneration values before merge.",
+ "The implementer corrected MP5 during recent casting, small per-five values and aura resistance overflow. A CodeRabbit claim that armor omitted gear was false: the shared resistance fold already includes it. Parent review caught a resulting double count before publication; it was removed. A durable test is checking the exact armor total and damage reduction.",
+ "Final head 1be079d fixes MP5 during recent casting, low regeneration rates and aura resistance overflow. It counts armor once. All 1,501 Module and 1,303 Gateway unit tests, 119 Gateway integration/parity checks, four Module durable cases, one Gateway resistance case and strict lint pass. One proven local trace-path failure is excluded and retained in CI. The three CodeRabbit threads are resolved, including the withdrawn armor finding. Actual review on this head remains required."
],
"related_prs": [
- 462
+ 462,
+ 466
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/31",
"updatedAt": "2026-08-22T09:18:51Z",
@@ -2371,12 +2393,11 @@
"gain": 5,
"effort": 4,
"confidence": "high",
- "disposition": "review",
+ "disposition": "done",
"rationale": "PR #439 is merged, so the listed prerequisite is stale. Stable promotion identity and durable replay refusal are distributed idempotency work that an agent can design and implement. Human review is required only before a schema change ships.",
- "next_action": "Implement and prove the supported pre-publish checkpoint. Old Gateways must keep relaying winner settlement while rolls drain, then stop before the final empty-state check and publish.",
+ "next_action": "Complete. PR #461 merged after human schema approval and full checks; durable replay and later-generation tests pass.",
"blockers": [
- "CodeRabbit requires an enforced upgrade checkpoint before any destination is published.",
- "Human schema review under docs/danger-zones.md section 1 after review fixes pass."
+ "Human schema review under docs/danger-zones.md section 1 after current-head CI and review pass."
],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/441",
@@ -2387,7 +2408,14 @@
"PR #439 is already merged into the report base revision.",
"A private durable test reproduced delayed START recreating a resolved roll on unchanged main. Six durable checks now pass with a receipt keyed by source database identity, corpse and slot, retaining the greatest source roll id. Private old-to-new Module publish tests pass for drained legacy state and refusal of unidentifiable legacy promotions. Receipt storage grows with distinct corpse keys.",
"Draft #461 at fae0189 passed 1485 Module and 1419 Gateway tests, six durable regressions, strict lint, preflight and all 970 generated bindings. Private upgrade checks proved deadline drain, additive publish, ZERO refusal, old argument-list refusal and retained source sequence. Root owns PR follow-up.",
- "PR #461 at 1834a57 passes all seven checks. Its initial XP test failure was reproduced on the baseline by reversing an unordered query; the fixture now removes duplicate spawns and asserts the one Character-killed creature. The upgrade finding remains open."
+ "PR #461 at 1834a57 passes all seven checks. Its initial XP test failure was reproduced on the baseline by reversing an unordered query; the fixture now removes duplicate spawns and asserts the one Character-killed creature. The upgrade finding remains open.",
+ "The separate CLI checkpoint checks actual table names and refuses the whole batch on legacy rolls, votes, withheld loot or unreadable state. All 722 CLI tests and Rust 1.85 checks pass; exact COUNT query output was verified on an owned fixture. A two-Shard baseline-to-current test proves settlement must finish before the upgrade and that the settled item and source sequence survive.",
+ "lyracore-cli #58 merged as 5688972 after 722 local tests, Rust 1.85 checks and actual CodeRabbit review. The CLI refuses pending legacy rolls, votes and withheld loot before any publish. It requires Operator-enforced quiescence throughout the batch. Core integration pins reachable implementation d6601ec and is in progress.",
+ "The rebased Loot Roll implementation preserves the approved property column before its new identity column. Full private generation produced 978 bindings. All six replay durable cases, 1,494 Module tests, 1,304 Gateway unit tests and 119 Gateway integration checks pass. A two-Shard 8a40989 upgrade proof preserved the settled item, property 117 and source sequence; old START arguments were refused.",
+ "The CLI checkpoint is integrated at d6601ec. Its previous review thread is resolved. Rebase aea68d8 includes merged Binding fixture #468; Module, Gateway and replay fixture trees are byte-identical to locally checked 6d62bc0. The two-Shard upgrade proof preserves item property 117 and settled inventory. Actual review on this new head is still required.",
+ "All seven checks and full CodeRabbit review passed at aea68d8. Requested human review of the appended default-ZERO source Identity, private permanent receipt table, reducer arguments, bindings and tested upgrade procedure. No approval is assumed.",
+ "The maintainer explicitly reviewed and approved the schema at aea68d8. The published integration 034079a has identical Module, bindings, CLI pin and upgrade procedure. All 1,323 Gateway unit tests, 119 integration/parity checks, strict all-target/all-feature lint, formatting and diff checks pass. PR is ready; current CI and review are running.",
+ "Merged #461 as 5f42e5a on 2026-09-07 at 20:18 UTC. The maintainer approved the schema, all seven checks and actual review passed, and issue #441 is closed."
],
"related_prs": [
439,
@@ -2395,7 +2423,7 @@
],
"url": "https://github.com/LyraCoreProject/LyraCore/issues/441",
"updatedAt": "2026-09-05T15:37:16Z",
- "github_state": "open",
+ "github_state": "closed",
"owner": "Codex, coordinating PR review"
},
{
@@ -2406,21 +2434,57 @@
"gain": 5,
"effort": 4,
"confidence": "high",
- "disposition": "implementing",
+ "disposition": "review",
"rationale": "Real-data checks found the general importer reads an equipment mask as an effect and shifts valid effects by one slot. This affects core spell behavior. The Random Property Tracer has a narrow corrected reader that can guide the broader repair.",
- "next_action": "Take the checked #462 parent fixes, repeat importer and imported-gameplay checks, and publish the stacked repair PR.",
+ "next_action": "Check rebased head 5ce7d39 on merged #470, publish the target-selection fix and complete CI and actual review.",
"blockers": [],
"evidence": [
"https://github.com/LyraCoreProject/LyraCore/issues/460",
"importer/src/spell.rs documents the missing InterruptFlags column but incorrectly claims effect arrays resynchronize. push_spell_effect_rows and resolve_effect_kind use the shifted named arrays.",
"Spell 7748 has raw effects [53,0,0] and inventory mask 1048608, while wow_dbc reads effects [1048608,53,0]. Spell 7747 has raw effect [6,0,0], aura [34,0,0], base points [14,0,0]; each named array is shifted by one slot.",
"A source-shaped general-import test reproduced a phantom inventory-mask effect, shifted effects and a lost third effect. The source audit also found shifted reagents and truncated family flags in existing reads. The agent owns importer changes separately from #31 stat folds.",
- "Implementation f3fd65a is committed and locally checked. Four World Import Profile item outputs remain byte-identical. The general Spell comparison retains 22,357 headers, restores 874 third effects, removes 204 phantom effects and corrects targets, reagents, interrupt masks and full family masks. Actual imported ally buffs, Gouge and Stealth tests pass."
+ "Implementation f3fd65a is committed and locally checked. Four World Import Profile item outputs remain byte-identical. The general Spell comparison retains 22,357 headers, restores 874 third effects, removes 204 phantom effects and corrects targets, reagents, interrupt masks and full family masks. Actual imported ally buffs, Gouge and Stealth tests pass.",
+ "Draft #465 is published at a0c86db on parent 8b72ddf. All 352 importer tests, the actual-source audit, three imported gameplay fixtures and the 49,307-row items stamp check pass. Seven source-dependent fixtures are ignored in the ordinary run and were run separately. Strict importer lint and formatting checks pass.",
+ "The unstacked branch preserves Binding quest required-focus column 15 and hostile summon effects. It passes 357 importer tests and the actual-source audit. A durable Gouge fixture used a spell with a random miss chance; the revised fixture verifies guaranteed shared-pipeline damage with scheduled aura expiry disabled. Final checks are running.",
+ "Published unstacked #465 at 32ac5c8. All final local importer checks and three imported gameplay cases pass. CI found a main integration gap: Binding quest fixture INSERT has 58 fields after the approved item template grew to 59. Codex owns adding its default-zero property column and rerunning the durable case.",
+ "The Binding quest durable case passed after the fixture column correction. Published that one-line main repair separately as #468. CodeRabbit found that source TARGET_NONE remains conflated with caster; an implementer is checking actual source effects and the smallest correct fallback before changes.",
+ "The Binding fixture repair merged as #468. The implementer now owns the source target correction. Source TARGET_NONE must use compatible explicit target flags or its effect default, rather than caster. Actual source examples include Bear Form secondary effects and Slime.",
+ "Head 74bfa36 is based on merged #468. All 358 importer tests, actual-source TARGET_NONE checks, Binding source audit and three imported gameplay durable cases pass. Strict importer lint and formatting pass. The target correction changes 4,589 effect targets with no other field or key changes; unsupported scripted effects retain the runtime fallback.",
+ "Local 8a8d26d uses all 19 location codes from the pinned target classification. Actual client data gains 170 corrected target pairs. All 360 ordinary importer tests, the source audit and strict lint pass. Root checked the classification and found no blocker."
+ ],
+ "related_prs": [
+ 465
],
- "related_prs": [],
"updatedAt": "2026-09-07T16:37:00Z",
"github_state": "open",
- "owner": "GPT-6 Astra, high effort, Spell importer agent"
+ "owner": "GPT-5.6 Sol, high effort, Spell target fix; Codex final review"
+ },
+ {
+ "number": 469,
+ "url": "https://github.com/LyraCoreProject/LyraCore/issues/469",
+ "summary": "Temporary summon lifetime callbacks collide with their retained unique row; a Binding quest poll also races corpse removal.",
+ "importance": 4,
+ "gain": 5,
+ "effort": 2,
+ "confidence": "high",
+ "disposition": "done",
+ "rationale": "Report-only CI on current main captured a unique-key panic in expire_eventai_summon. This can interrupt recurring lifetime checks. The same run exposed a transient dead-entity assertion in the Binding fixture. Both have an isolated implementation owner.",
+ "next_action": "Closed after #470 merged. Preserve the mutation and durable regression evidence.",
+ "blockers": [],
+ "evidence": [
+ "https://github.com/LyraCoreProject/LyraCore/issues/469",
+ "https://github.com/LyraCoreProject/LyraCore/actions/runs/34154396306",
+ "The uploaded Standalone log records DatastoreInsertBsatn errno 12 inside expire_eventai_summon at 19:10:22 UTC. Its replacement INSERT retains the unique creature_guid while the current row still exists.",
+ "The original Module failed with a living summon missing its expiry row; its owned log confirms the unique-key panic. The fix passes repeated lifetime checks, stable life_seq, durable quest credit and corpse removal. All 1,496 Module unit tests, strict all-target/all-feature lint, formatting and independent review pass. No schema change.",
+ "The original Module failed with a missing expiry row and an owned log confirms the unique-key panic. The fix and repeated lifetime checks pass all CI. CodeRabbit requested actual stale-callback and natural-expiry coverage from the issue acceptance criteria. A Sol implementer owns those additions.",
+ "Published 47184b7 on merged Loot replay 5f42e5a. The stale-callback mutation reproduces the unique-key panic; the corrected durable regression and natural expiry pass. All 1,495 Module tests, 1,442 applicable Gateway tests, strict lint and 979 generated binding comparisons pass. Actual CodeRabbit review completed without actionable comments; durable CI remains pending."
+ ],
+ "related_prs": [
+ 470
+ ],
+ "updatedAt": "2026-09-07T20:44:12Z",
+ "github_state": "closed",
+ "owner": "GPT-5.6 Sol, high effort, expiry regression cases; Codex final review"
}
],
"pull_requests": [
@@ -3293,11 +3357,11 @@
"url": "https://github.com/LyraCoreProject/LyraCore/pull/455",
"title": "fix(quests): complete the Warlock Binding encounters",
"owner": "Codex, coordinating PR review",
- "status": "Draft; checks and completed reviews passed; human schema review pending",
- "next_action": "Obtain human schema review before merge. Keep #40 open for client acceptance.",
+ "status": "Merged after human schema approval",
+ "next_action": "Complete implementation. Keep #40 open for real-client acceptance.",
"head": "bab88efadfe3b2365f11d0e02540225b71c4f9e6",
- "github_state": "OPEN",
- "checked_at": "2026-09-07 16:57 UTC",
+ "github_state": "MERGED",
+ "checked_at": "2026-09-07 17:52 UTC",
"checks": [
{
"name": "durable",
@@ -3331,10 +3395,12 @@
"review_state": {
"CodeRabbit": "COMPLETE",
"coordinating": "COMPLETE",
- "human_schema": "PENDING"
+ "human_schema": "APPROVED"
},
"review_findings": [],
- "review_note": "Actual CodeRabbit review a316a1f0-f92b-4a3c-bfb7-0a2263e2320b covers bab88ef. The only actionable thread is resolved. All seven checks passed; the human schema review request is pending."
+ "review_note": "The user reviewed and approved the schema. All seven current-head checks and actual CodeRabbit review passed before the separate merge action.",
+ "merge_commit": "1c63b7f2dad4c9ad32bd2f934e63ee62dc729080",
+ "merged_at": "2026-09-07T17:46:23Z"
},
{
"number": 457,
@@ -3535,10 +3601,10 @@
"number": 461,
"title": "fix(loot): refuse replayed promotions after resolution",
"url": "https://github.com/LyraCoreProject/LyraCore/pull/461",
- "head": "1834a57ecb2756a2377dcb1835db28b8ed3113b1",
- "github_state": "OPEN",
+ "head": "034079ae748e09cc0e0731f9e635a55031d51ef7",
+ "github_state": "MERGED",
"owner": "Codex, coordinating PR review",
- "checked_at": "2026-09-07 17:32 UTC",
+ "checked_at": "2026-09-07 20:20 UTC",
"checks": [
{
"name": "durable",
@@ -3549,11 +3615,11 @@
"result": "SUCCESS"
},
{
- "name": "fmt",
+ "name": "clippy",
"result": "SUCCESS"
},
{
- "name": "clippy",
+ "name": "fmt",
"result": "SUCCESS"
},
{
@@ -3569,30 +3635,36 @@
"result": "SUCCESS"
}
],
- "status": "Draft; checks pass; enforced upgrade checkpoint in progress",
- "next_action": "Complete the publish checkpoint and transition proof, obtain current-head review, then request human schema review.",
+ "status": "Merged after human schema approval, all checks and current-head review",
+ "next_action": "Complete. The guarded upgrade procedure ships with the merged change.",
"review_state": {
"CodeRabbit": "COMPLETE",
"coordinating": "COMPLETE",
- "human_schema": "PENDING"
+ "human_schema": "APPROVED"
},
- "review_findings": [
- "Enforce the old-roll empty-state checkpoint across all intended destinations before publish."
- ],
- "review_note": "All seven checks pass at 1834a57. CodeRabbit completed review and retained one upgrade finding. Existing Gateways must continue winner settlement while rolls drain; stopping them first can strand settlement. The CLI implementation agent will add the supported publish precondition."
+ "review_findings": [],
+ "review_note": "The maintainer explicitly reviewed and approved the schema at aea68d8. The published integration 034079a has identical Module, bindings, CLI pin and upgrade procedure. All 1,323 Gateway unit tests, 119 integration/parity checks, strict all-target/all-feature lint, formatting and diff checks pass. PR is ready; current CI and review are running.",
+ "human_schema_approval": {
+ "at": "2026-09-07 20:05 UTC",
+ "reviewed_head": "aea68d8d08aee09f1a44dcd40333a0de230a7cf1",
+ "instruction": "I reviewed the schema; approve merge",
+ "current_schema_identical": true
+ },
+ "merged_at": "2026-09-07T20:18:34Z",
+ "merge_commit": "5f42e5ae31060461973941c17f364f38554c8428"
},
{
"number": 462,
"title": "feat(items): preserve random properties from creation to the client",
"url": "https://github.com/LyraCoreProject/LyraCore/pull/462",
"head": "8b72ddf55bbb9828c4873bc49c7904c8c89898fc",
- "github_state": "OPEN",
+ "github_state": "MERGED",
"owner": "Codex, coordinating PR review",
- "checked_at": "2026-09-07 17:35 UTC",
+ "checked_at": "2026-09-07 18:14 UTC",
"checks": [
{
"name": "durable",
- "result": "IN_PROGRESS"
+ "result": "SUCCESS"
},
{
"name": "build",
@@ -3604,11 +3676,11 @@
},
{
"name": "clippy",
- "result": "IN_PROGRESS"
+ "result": "SUCCESS"
},
{
"name": "test",
- "result": "IN_PROGRESS"
+ "result": "SUCCESS"
},
{
"name": "wasm",
@@ -3616,31 +3688,131 @@
},
{
"name": "CodeRabbit",
- "result": "PENDING"
+ "result": "SUCCESS"
}
],
- "status": "Draft; review fixes pushed; current-head CI and CodeRabbit review running",
- "next_action": "Complete checks and actual CodeRabbit review on 8b72ddf, then request human schema review.",
+ "status": "Merged after human schema approval",
+ "next_action": "Complete. Integrate the remaining Stat Kind behavior and Spell repair.",
"review_state": {
- "CodeRabbit": "PENDING",
+ "CodeRabbit": "COMPLETE",
"coordinating": "COMPLETE",
- "human_schema": "PENDING"
+ "human_schema": "APPROVED"
},
"review_findings": [],
- "review_note": "All three previous findings were fixed in 8b72ddf and their threads resolved with test evidence. The previous head passed all seven checks. Current-head CI and the requested CodeRabbit review are running."
+ "review_note": "The user reviewed and approved the schema. All seven current-head checks and actual CodeRabbit review passed before the separate merge action.",
+ "merge_commit": "8a409896be5680f8c71553e969b624b3c23d06c0",
+ "merged_at": "2026-09-07T17:54:48Z"
},
{
"number": 463,
"title": "fix(gateway): clean up parties after Character deletion",
"url": "https://github.com/LyraCoreProject/LyraCore/pull/463",
- "github_state": "OPEN",
+ "github_state": "MERGED",
+ "owner": "GPT-5.6 Sol, high effort, Character cleanup implementer",
+ "head": "d94bc1d5bf7365e5bec118cbd98fab1d04b165ce",
+ "checked_at": "2026-09-07 19:51 UTC",
+ "checks": [
+ {
+ "name": "durable",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ],
+ "review_findings": [],
+ "review_state": {
+ "CodeRabbit": "COMPLETE",
+ "coordinating": "COMPLETE"
+ },
+ "status": "Merged after all checks and current-head review passed",
+ "next_action": "Complete the separate Headless Client suite acceptance for #46.",
+ "review_note": "Head d94bc1d preserves the original LEAVE failure if roster confirmation also fails, and repairs known groups while a failed Shard enumeration remains queued for retry. All 53 party tests, eight focused deletion checks and strict Gateway lint pass. CodeRabbit completed review on this head with no remaining finding. Durable CI is still running.",
+ "merged_at": "2026-09-07T19:48:12Z",
+ "merge_commit": "a345555b09623d4cf344106e31b0435a807357df"
+ },
+ {
+ "number": 464,
+ "title": "docs(triage): track published PRs and review follow-up",
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/464",
"owner": "Codex, coordinating PR review",
- "head": "6fec452dce4f9558f8e1d87de11cc9612c473b80",
- "checked_at": "2026-09-07 17:35 UTC",
+ "github_state": "MERGED",
+ "head": "3205dae4eed5f0fec4f15541b6120e98be84b32e",
+ "checked_at": "2026-09-07 17:52 UTC",
+ "checks": [
+ {
+ "name": "durable",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ],
+ "status": "Merged after all checks and review passed",
+ "next_action": "Complete. Report maintenance continues.",
+ "merge_commit": "f86c3e23ce9841850805ebedff29160801f210a1",
+ "merged_at": "2026-09-07T17:48:25Z",
+ "review_findings": [],
+ "review_state": {
+ "CodeRabbit": "COMPLETE",
+ "coordinating": "COMPLETE"
+ },
+ "review_note": "All seven checks passed and actual CodeRabbit review reported no findings at 3205dae before merge."
+ },
+ {
+ "number": 465,
+ "title": "fix(importer): restore build 5875 spell effects",
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/465",
+ "owner": "GPT-5.6 Sol, high effort, Spell target fix; Codex final review",
+ "github_state": "OPEN",
+ "head": "aa5204593a6c13d2fc3536e79e48069a770bf1c4",
+ "checked_at": "2026-09-07 20:00 UTC",
"checks": [
{
"name": "durable",
- "result": "IN_PROGRESS"
+ "result": "FAILURE"
},
{
"name": "build",
@@ -3652,11 +3824,11 @@
},
{
"name": "clippy",
- "result": "IN_PROGRESS"
+ "result": "SUCCESS"
},
{
"name": "test",
- "result": "IN_PROGRESS"
+ "result": "SUCCESS"
},
{
"name": "wasm",
@@ -3667,14 +3839,320 @@
"result": "PENDING"
}
],
+ "status": "Clean local rebase onto #470; target-selection checks running",
+ "next_action": "Publish checked rebase 5ce7d39 and complete CI and actual review.",
+ "review_findings": [
+ "The checked target-selection fix still needs publication and current-head review."
+ ],
+ "review_state": {
+ "CodeRabbit": "CHANGES_REQUESTED",
+ "coordinating": "IN_PROGRESS"
+ },
+ "review_note": "Local 8a8d26d uses all 19 location codes from the pinned target classification. Actual client data gains 170 corrected target pairs. All 360 ordinary importer tests, the source audit and strict lint pass. Root checked the classification and found no blocker."
+ },
+ {
+ "number": 58,
+ "url": "https://github.com/LyraCoreProject/lyracore-cli/pull/58",
+ "title": "fix(publish): require drained legacy loot before upgrade",
+ "owner": "GPT-5.6 Sol, high effort, CLI implementer",
+ "head": "d6601ec35592eb0f18c40408ba5113846f4640e8",
+ "github_state": "MERGED",
+ "checked_at": "2026-09-07 18:14 UTC",
+ "checks": [
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ],
+ "status": "Merged; Core pin integration in #461",
+ "next_action": "Integrate the reachable CLI commit into #461 and verify the pinned shim.",
+ "review_state": {
+ "CodeRabbit": "COMPLETE",
+ "coordinating": "COMPLETE"
+ },
+ "review_findings": [],
+ "review_note": "722 local tests, Rust 1.85 checks and strict lint pass. CodeRabbit withdrew its atomic-lock finding after the supported quiescence procedure was made explicit. No production operation was performed.",
+ "merge_commit": "5688972fe1504943581a12547481dddb77eadb2b"
+ },
+ {
+ "number": 466,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/466",
+ "title": "feat(items): apply remaining random property stats",
+ "owner": "Codex, final integration and review",
+ "head": "12f7e3f98e838cabda16fcb971fdefa339a09889",
+ "github_state": "OPEN",
+ "checked_at": "2026-09-07 20:00 UTC",
+ "checks": [
+ {
+ "name": "durable",
+ "result": "FAILURE"
+ },
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ],
+ "status": "Clean local rebase onto #470; final checks running",
+ "next_action": "Finish combined Gateway, durable and strict gates, then publish and complete CI and actual review.",
+ "review_state": {
+ "CodeRabbit": "COMPLETE",
+ "coordinating": "COMPLETE"
+ },
"review_findings": [],
+ "review_note": "The substantive review of 1be079d found a second-query race in three regeneration assertions. Commit 12f7e3f checks expected values in the sampled row, and the affected durable case passes in 13.09 seconds. Formatting and diff checks pass. Its review thread is resolved; the new head is completing CI and review. Actual review of 12f7e3f completed without a finding. Durable CI failed in the unchanged Binding quest corpse poll at line 326, the same failure tracked in #469. Integration of #470 is required before retry. Local rebase 527606e onto 3669dfb has no source conflict. All 1,501 Module tests pass; the changed Stat Kind code and fixtures are byte-identical to the reviewed implementation."
+ },
+ {
+ "number": 467,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/467",
+ "title": "docs(triage): record schema merges and integration findings",
+ "owner": "Codex",
+ "head": "9f2b072a459f41ee09712c4cc0f55dfb664b2362",
+ "github_state": "OPEN",
+ "checked_at": "2026-09-07 18:56 UTC",
+ "checks": [],
+ "status": "Report refreshed on merged summon fix; publication and checks follow",
+ "next_action": "Publish this snapshot on 3669dfb, complete CI and actual review, then merge.",
"review_state": {
- "CodeRabbit": "PENDING",
+ "CodeRabbit": "RATE_LIMITED",
"coordinating": "COMPLETE"
},
- "status": "Current-head CI and CodeRabbit review running",
- "next_action": "Address current-head CI and review findings, then merge after all checks and actual CodeRabbit review pass.",
- "review_note": "Root source review found no blocker after the full-pass cleanup and fresh Character subscription changes. The rebased head passes the private two-Coordinator Transfer case, Gateway tests and strict lint checks. CodeRabbit review remains pending."
+ "review_findings": [],
+ "review_note": "The effective review-state correction is published and its review thread is resolved. Actual current-head review is rate-limited. Durable CI exposed the main-branch temporary-summon panic and transient corpse assertion; #470 fixes both before this report PR is refreshed."
+ },
+ {
+ "number": 468,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/468",
+ "title": "test(quests): copy the appended item property field",
+ "owner": "Codex",
+ "head": "08402b836499cb584ee3f922310721bec67eff14",
+ "github_state": "MERGED",
+ "checked_at": "2026-09-07 18:56 UTC",
+ "checks": [
+ {
+ "name": "durable",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ],
+ "status": "Merged",
+ "next_action": "Complete. Dependent branches are integrating this fixture correction.",
+ "review_state": {
+ "CodeRabbit": "COMPLETE",
+ "coordinating": "COMPLETE"
+ },
+ "review_findings": [],
+ "review_note": "All seven checks and actual CodeRabbit review passed before merge. The corrected Binding fixture had also passed its local durable case.",
+ "merge_commit": "88c93aeb9bfd1a34ca7f3d5cf2417406184bc2c7",
+ "merged_at": "2026-09-07T18:47:57Z"
+ },
+ {
+ "number": 11,
+ "url": "https://github.com/LyraCoreProject/wire-harness/pull/11",
+ "title": "fix(lyracore): encode Operator cleanup actors for durable ownership",
+ "owner": "Codex, Headless Client adapter compatibility",
+ "head": "bd6a238a3a82e8590fa483b000ee93208f4bf4a3",
+ "github_state": "MERGED",
+ "checked_at": "2026-09-07 19:20 UTC",
+ "status": "Merged and released as v0.1.0-alpha.9",
+ "next_action": "Include the verified alpha.9 pin in Account ownership #61.",
+ "checks": [
+ {
+ "name": "test (ubuntu-latest)",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test (macos-latest)",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "coverage",
+ "result": "SUCCESS"
+ }
+ ],
+ "review_state": {
+ "CodeRabbit": "NOT_CONFIGURED",
+ "coordinating": "COMPLETE"
+ },
+ "review_findings": [],
+ "review_note": "Independent review caught and corrected the Transfer argument count before merge. All three CI checks and four offline shell checks pass. A fresh clone of alpha.9 resolves to the merged commit and passes the command-boundary check.",
+ "merge_commit": "ec6c65fd7ef96ea3772f6015446d07d1b4005859",
+ "merged_at": "2026-09-07T19:17:51Z"
+ },
+ {
+ "number": 470,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/470",
+ "title": "fix(creatures): retain temporary summon lifetime checks",
+ "head": "47184b723c5ba572499a4abbf49b1bf2c3fd837b",
+ "owner": "GPT-5.6 Sol, high effort, expiry regression cases; Codex final review",
+ "github_state": "MERGED",
+ "checked_at": "2026-09-07 20:48 UTC",
+ "status": "Merged after all seven checks and current-head review passed",
+ "next_action": "Complete. Dependent branches are integrating merge 3669dfb.",
+ "checks": [
+ {
+ "name": "durable",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "SUCCESS"
+ }
+ ],
+ "review_state": {
+ "CodeRabbit": "COMPLETE",
+ "coordinating": "COMPLETE"
+ },
+ "review_findings": [],
+ "review_note": "Published 47184b7 on merged Loot replay 5f42e5a. The stale-callback mutation reproduces the unique-key panic; the corrected durable regression and natural expiry pass. All 1,495 Module tests, 1,442 applicable Gateway tests, strict lint and 979 generated binding comparisons pass. Actual CodeRabbit review completed without actionable comments; durable CI remains pending.",
+ "merge_commit": "3669dfbc7f648fd098cb77317a44f76c8597e262"
+ },
+ {
+ "number": 471,
+ "url": "https://github.com/LyraCoreProject/LyraCore/pull/471",
+ "title": "fix(account): enforce ownership across Gateways",
+ "owner": "GPT-6 Astra, high effort, Account ownership implementer",
+ "head": "0f7c65572c8a66821e62e5417414d52db1ca98d3",
+ "github_state": "OPEN",
+ "checked_at": "2026-09-07 20:46 UTC",
+ "status": "Combined gameplay proofs pass; further review fixes in progress",
+ "next_action": "Publish the checked review fixes on merged #470 with alpha10, complete CI and actual review, then request human schema review.",
+ "review_state": {
+ "CodeRabbit": "CHANGES_REQUESTED",
+ "coordinating": "IN_PROGRESS",
+ "human_schema": "NOT_REQUESTED"
+ },
+ "review_findings": [
+ "Count the ownership shutdown socket in descriptor guidance.",
+ "Bound expired Account fence removals per pass.",
+ "Distinguish missing and unhealthy Shard failures."
+ ],
+ "review_note": "Published 0f7c655 passed the full CI suite. Integrated Loot replay and alpha10 pass 5 Account and 6 promotion durable cases, 3 Gateway gameplay cases, all unit suites, 989 generated binding comparisons, strict lint and preflight. The literal two-process acceptance already passed both takeover directions. Further review fixes are running locally. Any renewal failure still closes the World Session; failed Shard cleanup retains the documented 60-second claim recovery.",
+ "checks": [
+ {
+ "name": "durable",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "build",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "fmt",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "clippy",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "wasm",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "CodeRabbit",
+ "result": "PENDING"
+ }
+ ]
+ },
+ {
+ "number": 12,
+ "url": "https://github.com/LyraCoreProject/wire-harness/pull/12",
+ "title": "fix(lyracore): send numeric GUIDs in structured actors",
+ "owner": "Codex; independent Sol review",
+ "head": "83c671680b2392df15cb14180aef61970436b2a0",
+ "github_state": "MERGED",
+ "checked_at": "2026-09-07 20:24 UTC",
+ "status": "Merged and released as v0.1.0-alpha.10",
+ "next_action": "Complete. Account ownership and the party suite are integrating the verified release.",
+ "checks": [
+ {
+ "name": "test (ubuntu-latest)",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "test (macos-latest)",
+ "result": "SUCCESS"
+ },
+ {
+ "name": "coverage",
+ "result": "SUCCESS"
+ }
+ ],
+ "review_state": {
+ "CodeRabbit": "NOT_CONFIGURED",
+ "coordinating": "COMPLETE"
+ },
+ "review_findings": [],
+ "review_note": "Actual CLI testing found alpha9 encodes a structured u64 as a JSON string, which Module decoding refuses. The fix prints canonical decimal JSON numbers without float conversion. The revised contract fails on old code; all four offline suites pass. Owned CLI 2.7.1 changed exact durable GUID 9007199254740993 without rounding. Independent Sol review found no blocker. Release alpha10 resolves to 8b497bb; a fresh tag clone passed the Actor contract.",
+ "merged_at": "2026-09-07T20:22:44Z",
+ "merge_commit": "8b497bbdef97c5aa83c5aa6630046e69fa1a374f"
}
],
"history": [
@@ -3861,10 +4339,78 @@
{
"at": "2026-09-07 17:35 UTC",
"text": "Published Character cleanup PR #463. Pushed Random Property review fixes as 8b72ddf and requested another CodeRabbit review. The party implementer now owns the separate CLI upgrade checkpoint investigation; Codex owns both published PRs."
+ },
+ {
+ "at": "2026-09-07 17:52 UTC",
+ "text": "Merged #455 after the user approved its schema, and merged report #464 after checks and review. Published stacked Spell repair #465. Requested human schema review for checked #462. Assigned #61 to Astra high; Sol continues stat behavior and the CLI upgrade checkpoint."
+ },
+ {
+ "at": "2026-09-07 18:14 UTC",
+ "text": "Merged #462 after human schema approval and CLI #58 after review. Unstacking Spell #465 and integrating loot replay #461 with the approved item fields. Character cleanup review fixes are committed locally. Account ownership now has a failing two-Gateway stale-logout regression."
+ },
+ {
+ "at": "2026-09-07 18:20 UTC",
+ "text": "Published Stat Kind #466 and assigned regeneration review findings to its implementer. Unstacked #465; CI exposed a Binding fixture column mismatch after the approved schema merges. Codex owns the correction and updated the report with the failing check."
+ },
+ {
+ "at": "2026-09-07 18:36 UTC",
+ "text": "Published separate Binding fixture repair #468 to unblock shared CI. Current Loot Roll upgrade proof preserves property 117 and settled inventory, and all six replay cases pass. Account ownership has its first passing two-Gateway regression. Spell TARGET_NONE fallback remains under review."
+ },
+ {
+ "at": "2026-09-07 18:56 UTC",
+ "text": "Merged Binding fixture #468 after all seven checks and actual review passed. Rebased Loot replay #461 and Character cleanup #463 onto it. Item review corrected regeneration and discarded a false armor finding before publication. Account ownership is completing blocked-writer and stale-request coverage."
+ },
+ {
+ "at": "2026-09-07 19:08 UTC",
+ "text": "Loot replay and Character cleanup passed all code checks. Spell target correction 74bfa36 passed actual-source and three gameplay durable cases. Published wire-harness #11 for Account ownership argument compatibility. Report review now separates raw CodeRabbit platform status from actual current-head review completion."
+ },
+ {
+ "at": "2026-09-07 19:12 UTC",
+ "text": "Requested human schema review for Loot replay #461 after all seven checks and full CodeRabbit review passed. Item stat corrections are published and locally checked at 1be079d; actual review is rate-limited. Headless Client compatibility #11 passes all three CI checks and has an independent reviewer."
+ },
+ {
+ "at": "2026-09-07 19:20 UTC",
+ "text": "Merged wire-harness #11 after independent review corrected Transfer argument count. Released and freshly verified alpha.9. Report CI exposed a current-main temporary-summon panic and corpse assertion race; filed #469 and started its isolated regression. Account review is binding completion requests to the referenced Character."
+ },
+ {
+ "at": "2026-09-07 19:28 UTC",
+ "text": "Published summon-expiry fix #470 at ec63417. The baseline regression and its owned log confirm the panic; the corrected lifetime and quest fixture passes. Module unit tests, strict lint and independent review pass. A separate read-only audit is checking Account token retention through Gateway routing and queues."
+ },
+ {
+ "at": "2026-09-07 19:44 UTC",
+ "text": "Party cleanup d94bc1d passed current-head CodeRabbit review after two failure-handling fixes. Spell repair and item stats have green code checks but still need substantive reviews. Summon expiry #470 passed CI; its reviewer requested stale-callback and natural-expiry cases, now assigned to Sol. Account ownership passed final source review and strict workspace lint."
+ },
+ {
+ "at": "2026-09-07 19:51 UTC",
+ "text": "Merged party cleanup #463 as a345555 after all checks and actual review passed. Item stats 12f7e3f fixes the reviewed regeneration assertion race and passes its affected durable case. Spell review found a missing column citation and incomplete Gouge rank correction. Account ownership draft #471 is published; CI exposed concurrent Standalone signing-key startup failures, and a literal two-process check is being prepared."
+ },
+ {
+ "at": "2026-09-07 20:00 UTC",
+ "text": "Spell rank fixes are published at aa52045. Item stats 12f7e3f passed actual review, but CI reproduced the main Binding corpse timing failure and waits for #470. Summon stale-callback and natural-expiry cases pass; the short observation window is being corrected. Account fixture signing keys are isolated and all five cases pass concurrently. Loot replay is rebased locally onto merged party cleanup with its schema unchanged."
+ },
+ {
+ "at": "2026-09-07 20:05 UTC",
+ "text": "The maintainer explicitly approved Loot replay #461 schema review. Confirmed the Module, schema, bindings, CLI pin and upgrade procedure are unchanged in integrated commit 034079a, marked the PR ready, and recorded approval on GitHub. All local Gateway integration gates pass. Spell repair and item stat CI both wait for the already-diagnosed Binding fixture fix in #470."
+ },
+ {
+ "at": "2026-09-07 20:20 UTC",
+ "text": "Merged human-approved Loot replay #461 as 5f42e5a after all seven checks and current-head review passed; closed #441. Account ownership passes literal two-process acceptance in both directions. Real CLI evidence disproved root's nested-GUID quoting advice; independently reviewed wire-harness #12 corrects it and is completing CI for alpha10. Summon regressions are integrating the new main. Spell review raised one more target-selection finding."
+ },
+ {
+ "at": "2026-09-07 20:24 UTC",
+ "text": "Merged wire-harness #12 after Linux, macOS, coverage and independent review passed. Released alpha10 at 8b497bb and verified its Actor contract from a fresh tag clone. Account ownership and the party suite are integrating it. The combined Loot replay and Account ownership schema regenerates 989 bindings without drift."
+ },
+ {
+ "at": "2026-09-07 20:46 UTC",
+ "text": "Summon fix 47184b7 passes actual CodeRabbit review; durable CI is the final merge gate. Spell target fix 8a8d26d corrects 170 additional source pairs and passes local checks. Account ownership passes combined Loot replay gameplay and preflight, then receives focused descriptor, fence-cleanup and Shard-error review fixes. The party suite is integrating alpha10 for owned acceptance."
+ },
+ {
+ "at": "2026-09-07 20:48 UTC",
+ "text": "Merged summon fix #470 as 3669dfb after all seven checks and current-head CodeRabbit review passed; #469 closed. Spell and item-stat branches rebase cleanly onto that main. Item stats pass 1,501 Module tests. Scoped party acceptance identified an immediate Character-list projection race after successful deletion; its bounded Headless Client retry is being fixed before acceptance."
}
],
"postplan_draft": "1u1gh8ximdga",
"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": "Completed the issue-by-issue audit of the 69 then-open issues at 2026-09-07 16:15 UTC. Added and assessed #460 at 16:40 UTC from direct source and client-data evidence. GitHub remains authoritative for current state."
+ "audit_note": "Completed the issue-by-issue audit of the 69 then-open issues at 2026-09-07 16:15 UTC. Added #460 from client-data evidence and #469 from current-main CI logs. GitHub remains authoritative for current state."
}
diff --git a/docs/triage/report.html b/docs/triage/report.html
index 8dc5bcbe1..06c51c4fb 100644
--- a/docs/triage/report.html
+++ b/docs/triage/report.html
@@ -21,12 +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 .
-90 of 90 issues assessed. 70 open on GitHub.
-Source revision 94aa2da8bb22b1d368b980769563c6fbbb330bc7.
-
All 70 open issues have an assessment; 20 closed issues remain for history. Character cleanup #463 is in review. Random Property #462 review fixes are pushed and its checks are running. Loot Roll replay #461 passes CI and needs an enforced upgrade checkpoint. The Spell importer repair is taking the checked parent fixes before publication.
+
Owner: Codex in the triage and delivery thread. Updated .
+91 of 91 issues assessed. 69 open on GitHub.
+Source revision 3669dfbc7f648fd098cb77317a44f76c8597e262.
+
All 69 open issues have an assessment; 22 closed issues remain for history. Human-approved Loot replay #461, party cleanup #463 and summon fix #470 are merged. Spell repair #465, item stats #466 and Account ownership #471 are integrating this main. The party suite is checking owned deletion and preservation cases.
-
Current work
Drive Character deletion cleanup #463 through CI and CodeRabbit review; retain remaining acceptance on #46.
Review the corrected Random Property Tracer #462 while GPT-5.6 Sol connects the remaining Stat Kinds for #31.
Enforce the Loot Roll replay #461 upgrade checkpoint before requesting human schema review.
Repair general Spell import #460 using the checked Tracer reader and source-shaped fixtures.
Keep Binding draft #455 ready for human schema review; retain real-client acceptance on #40.
+
Current work
Finish integration checks and current-head review for Spell repair #465 and item stats #466.
Complete Account ownership #471 review fixes and final integration before human schema review.
Run the scoped Headless Client party suite to finish #46.
Publish and merge the maintained report snapshot on the shared CI repair.
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,
@@ -43,13 +43,13 @@
Order
Issue and assessment
Importance
Gain
Effort
Return
-
State and owner
Next action
1
#460Shifted Spell columns corrupt general imported effects and can omit the third effect.
Real-data checks found the general importer reads an equipment mask as an effect and shifts valid effects by one slot. This affects core spell behavior. The Random Property Tracer has a narrow corrected reader that can guide the broader repair.
importer/src/spell.rs documents the missing InterruptFlags column but incorrectly claims effect arrays resynchronize. push_spell_effect_rows and resolve_effect_kind use the shifted named arrays.
Spell 7748 has raw effects [53,0,0] and inventory mask 1048608, while wow_dbc reads effects [1048608,53,0]. Spell 7747 has raw effect [6,0,0], aura [34,0,0], base points [14,0,0]; each named array is shifted by one slot.
A source-shaped general-import test reproduced a phantom inventory-mask effect, shifted effects and a lost third effect. The source audit also found shifted reagents and truncated family flags in existing reads. The agent owns importer changes separately from #31 stat folds.
Implementation f3fd65a is committed and locally checked. Four World Import Profile item outputs remain byte-identical. The general Spell comparison retains 22,357 headers, restores 874 third effects, removes 204 phantom effects and corrects targets, reagents, interrupt masks and full family masks. Actual imported ally buffs, Gouge and Stealth tests pass.
5
5
4
6.2
In progress GPT-6 Astra, high effort, Spell importer agent
Take the checked #462 parent fixes, repeat importer and imported-gameplay checks, and publish the stacked repair PR.
2
#31Random item properties are absent from imported data and item state, and all relevant Gateway packet paths still emit random property id zero.
The Random Property Tracer is complete in tested draft #462. It imports and preserves the selected property through item movement and the client packets, and applies the existing EquipStat families. The remaining Stat Kinds now have a separate implementation owner.
Confidence: high. Issue updated 2026-08-22.
Blocked by
Human review of the concrete schema and binding changes before shipping.
A real-client tooltip check and approved Realm acceptance after the Tracer and remaining stat-family work.
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.
2026-08-22 issue Spec: the Tracer already includes weighted selection; the second Ticket adds resistance, damage, avoidance, regeneration and spell/healing terms.
Source preflight checked pinned CMaNGOS data and the local build-5875 client tables. Existing synthetic enchant IDs 7745 and 7748 do not collide with imported enchantments. Buyback, Mail, Escrow, Auction and Loot Roll paths must preserve the selected property; old opaque Transfer blobs need an explicit compatibility path.
Takeover review fixed partial inventory grants, empty catalogue import, and stat-sum overflow. Importer tests pass; Module checks, generated bindings, Gateway projection and private durable fixtures are in progress.
Recovery copied the committed and unfinished source into a new worktree. Original tracked diffs stayed unchanged during capture.
Coordinating review found repeated enchantment-catalogue scans in armor projection and overflow in the changed Spirit fold; the implementer is correcting both before publication.
All eight private durable property tests and the complete 973-file binding comparison passed. Real-data import exposed shifted Spell fields; the corrected reader now imports primary-stat effects. Final checks are rerunning after that fix.
Draft #462 at b23d90e passed 345 importer, 1496 Module, 1422 Gateway and 156 shared tests; the known local trace-path test was excluded and CI retains it. Nine private property, three item-movement and one real Coordinator armor test passed. All four World Import Profiles, strict workspace lint, preflight and all 973 generated bindings passed.
CodeRabbit found incomplete item-family row counts, chest refusal on invalid properties and gaps after skipped creature drops. Codex reproduced both gameplay defects; the shared insertion fix passes all 11 durable property cases. Importer and lint checks are finishing before push.
Pushed all three review fixes as 8b72ddf. All 11 durable property cases and 346 importer tests passed, with two existing ignored importer fixtures. Strict Module and importer lint checks passed. Review replies include the reproduced failures; a new CodeRabbit review was requested.
In progress GPT-5.6 Sol, high effort, remaining Stat Kinds; Codex owns Tracer PR review
Complete current-head review of Tracer #462 at 8b72ddf, then finish the remaining Stat Kinds and stacked integration.
3
#441A delayed START can recreate a resolved Loot Roll
PR #439 is merged, so the listed prerequisite is stale. Stable promotion identity and durable replay refusal are distributed idempotency work that an agent can design and implement. Human review is required only before a schema change ships.
Confidence: high. Issue updated 2026-09-05.
Blocked by
CodeRabbit requires an enforced upgrade checkpoint before any destination is published.
Human schema review under docs/danger-zones.md section 1 after review fixes pass.
gateway/src/world/loot.rs promote_one sends START using corpse_guid and slot, then clears the staging row after success.
module/src/loot/rolls.rs insert_roll_rows deduplicates only against a live corpse and slot row, while cleanup_roll deletes the row and votes.
The issue provides the required replay, later-valid-roll, cleanup-boundary, and settlement-Gate tests.
PR #439 is already merged into the report base revision.
A private durable test reproduced delayed START recreating a resolved roll on unchanged main. Six durable checks now pass with a receipt keyed by source database identity, corpse and slot, retaining the greatest source roll id. Private old-to-new Module publish tests pass for drained legacy state and refusal of unidentifiable legacy promotions. Receipt storage grows with distinct corpse keys.
Draft #461 at fae0189 passed 1485 Module and 1419 Gateway tests, six durable regressions, strict lint, preflight and all 970 generated bindings. Private upgrade checks proved deadline drain, additive publish, ZERO refusal, old argument-list refusal and retained source sequence. Root owns PR follow-up.
PR #461 at 1834a57 passes all seven checks. Its initial XP test failure was reproduced on the baseline by reversing an unordered query; the fixture now removes duplicate spawns and asserts the one Character-killed creature. The upgrade finding remains open.
Implement and prove the supported pre-publish checkpoint. Old Gateways must keep relaying winner settlement while rolls drain, then stop before the final empty-state check and publish.
4
#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 deletion Relay is present, but it converts failed reads to absence before a direct Realm-core LEAVE. Its tests inspect source text. The current path also needs verification of Transfer/cache ordering and surviving party mirrors before the suite workaround can be removed.
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.
Coordinating review found callback/reconnect deadlocks and a sequential absence-scan race during Transfer; the implementation agent is fixing these before PR publication.
Recovery copied the committed and unfinished source into a new worktree. Original tracked diffs stayed unchanged during capture.
Direct tests pass for unreadable Shards, unavailable Realm-core, Transfer preservation, failed LEAVE and mirror retries, lost replies and stale mirror repair. The actual Coordinator callback test remains in progress.
Further coordinating review found that local stable snapshots do not establish freshness across two Gateways. The implementer is addressing delayed destination observation before publication.
Each absence sample now uses a temporary filtered Character subscription and collects presence, cache generation and revision after acknowledgement. The private regression parks a second Coordinator destination pump during a Transfer. This revised fixture remains in progress.
The final controlled two-Coordinator Transfer test passed in 45.68 seconds. Eight focused cleanup tests and 51 party tests passed. Full Gateway checks passed with one trace-path test excluded after reproducing the same failure on the unmodified base. Final review removed a persistent batching cursor that could skip members.
Published PR #463 at 6fec452 after rebasing onto 94aa2da. The exact rebased head passed the private two-Coordinator test, 1,319 Gateway unit tests and 116 integration tests with the proven base trace-path failure excluded. Strict Gateway lint and formatting checks passed.
Drive PR #463 through current-head CI and CodeRabbit review, then merge when ready. Keep the remaining suite and client acceptance work on #46.
5
#61Deterministic bound identity shipped, but World Session epochs still live inside each Gateway process and cannot reject stale teardown across processes.
The corruption exists whenever two Gateways serve one Account. A Realm-core Session generation and compare-by-generation logout is an ordinary consistency design. #69 may affect routing policy but does not need to block this invariant.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Human review before shipping a concrete schema change; controlled two-Gateway acceptance remains.
Issue #61 states the two-Gateway stale-disconnect corruption directly.
The maintained report already identifies a Realm-core-owned generation or lease and the losing-socket test as the bounded solution.
CODING_STANDARDS.md assigns realm-wide Session state to Realm-core and requires atomic Durable Requests.
5
5
4
6.2
Ready Codex
Implement a Realm-core Session generation and refuse stale logout or takeover. Prove the losing World Session cannot clear the winning Session across two Gateways.
6
#71Item GUID allocation can leave a Character's 256-value packed block and collide with another Character; transfer relies on the opposite invariant.
The allocator and migration require judgment, but agents can produce a concrete design and tested branch. Human review is required before a schema or migration change ships, not before design begins.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Human review of the concrete migration before shipping.
items/tables.rs masks the owner to 24 bits and next_item_guid increments without enforcing the 256-value block.
docs/danger-zones.md requires human review before migration work ships; it does not reserve implementation design for a person.
The issue already supplies saturation, transfer identity, migration, and collision cases for a bounded design Ticket.
5
3
5
3.0
Ready Codex
Design a collision-free item allocator and migration for existing item identities. Prove saturation, Transfer preservation and namespace separation in a tested draft.
7
#113Door collision meshes can be imported, but no per-GameObject collider registry or state-gated ray merge consumes them.
Map 36 does not need a product decision. Dynamic GameObject collision can have explicit eligibility from its instance-scoped collider registry while static vmap rays retain generation eligibility. Human schema review remains a shipping gate.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Human schema review before shipping; imported-door acceptance remains.
module/src/go_model.rs: game_go_model stores imported local-space meshes, and comments name game_go_collider as the absent consumer.
module/src/vmap.rs: vmap_enabled requires both the global Gate and an active static generation.
docs/vmap-rollout.md: bounded-profile vmaps skip the Instance Pool.
Issue #113 already specifies the collider table, lifecycle, transforms, state Gate, ray merge, and tests.
module/src/vmap.rs ties static rays to an active static generation, while docs/vmap-rollout.md intentionally excludes the Instance Pool from bounded open-world generations.
The requested GameObject registry is instance-scoped and supplies its own data-presence condition, so it need not pretend map 36 has a static generation.
Implement instance-scoped dynamic GameObject collider eligibility and ray merging. Keep static vmap generation eligibility separate.
8
#72SpellCastEvent still multiplexes several wire signals through independent booleans and zero-value conventions.
Legacy decoding can treat the appended zero kind as the current field-derived form, while new constructors stamp explicit kinds. That is a bounded compatibility design. Human schema review belongs after the concrete change.
module/src/spell/tables.rs has typed constructors but still relies on mutually exclusive booleans.
gateway/src/stdb/subscriptions.rs decodes the signals through ordered branches, which supplies the legacy fallback.
docs/danger-zones.md permits an end-appended defaulted numeric column and requires review before shipping.
3
3
3
3.0
Ready Codex
Append an explicit event kind, stamp constructors and preserve legacy kind-zero decoding. Publish the tested schema change for human review.
9
#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.
10
#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.
11
#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.
12
#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.
13
#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.
14
#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.
15
#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.
16
#105LyraCore now pins the repaired wire suite. Full-suite realm acceptance remains.
The old pin started scenario files relative to the core checkout. The released fix uses the adapter directory and distinguishes startup failures. Offline dispatch and CI pass, while all-scenario realm acceptance still needs a run.
Run the pinned full suite on an approved development Realm and retain each scenario result. Source and pin work are complete.
17
#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.
18
#272Resident creature movement now replays after CREATE. Motion-flush shedding and sensing cadence still need decisions.
PR #450 fixed resident movement replay. Measure and observe the remaining symptom before choosing shedding or sensing changes. There is no current implementation decision to block on, and remaining effort is lower than the report states.
Confidence: high. Issue updated 2026-09-07.
Blocked by
Controlled reproduction and stock-client acceptance of current movement.
Observe current motion after merged #450. Record stock-client movement before changing queue shedding or sensing cadence.
19
#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.
20
#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.
21
#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.
22
#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.
23
#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.
24
#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.
25
#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.
26
#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.
27
#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 supported-map inventory follows the maintained World Import Profiles. Gate removal should wait on #184 and #195 evidence, but it does not need a separate preimplementation maintainer decision.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Verified rollout from #184 and matching navigation coverage from #195.
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.
docs/vmap-rollout.md is the current source for eligible World Shards and Instance Pool exclusion.
module/src/vmap.rs still has the global Gate, so no unsafe partial removal has occurred.
Issues #184 and #195 remain the real evidence dependencies.
Wait for rollout and navigation evidence from #184 and #195, then remove the global Gate using the supported World Import Profiles.
28
#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.
29
#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.
30
#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.
31
#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.
32
#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.
33
#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.
34
#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.
35
#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.
36
#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.
37
#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.
38
#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.
39
#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.
40
#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.
41
#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.
42
#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.
43
#30The Realm has no seasonal game-event data model, calendar activation, spawn participation, or Operator debug controls.
The calendar and spawn-link Spec is detailed, but its gameobject plan conflicts with current code. Parking a game_gameobject row stops use or respawn; the Gateway still creates it for viewers. A concrete visibility or retained-definition design must be selected before implementing seasonal disappearance.
Confidence: high. Issue updated 2026-08-21.
Blocked by
The Spec prohibits Gateway changes and requires parked object definitions to survive, but the current parked state does not hide a gameobject.
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.
Code fact at 3455aa2: module/src/gameobject.rs keeps depleted rows with state 1; gateway/src/stdb/world_view.rs gameobject_appeared indexes and creates every row without a state visibility Gate. Pool objects already separate definitions from live rows.
2
4
5
1.6
Design first Codex
Resolve gameobject disappearance: either add a Gateway visibility Gate for parked event rows, or retain definitions separately and remove/reinsert live rows through one lifecycle. Then split and implement the event Tracer.
44
#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.
45
#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.
46
#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.
47
#28Drink item use does not create or decay an inebriation state, update PLAYER_BYTES_3, or apply chat slurring.
Primary-source preflight confirms alcohol state, packing and decay, but the pinned CMaNGOS say/yell path forwards text unchanged. The issue requires an exact server slur transform that this reference does not contain.
Confidence: high. Issue updated 2026-08-11.
Blocked by
The requested exact pinned-CMaNGOS server slur transform is absent from the verified source.
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.
Pinned CMaNGOS ca0775f: low 16 bits of PLAYER_BYTES_3 hold gender | (drunk & 0xFFFE); decay subtracts 256 after more than 10 seconds. The issue states a tier byte and roughly one tier per 9 seconds, which do not match this source.
Choose a proven state/field/decay slice with the server-slur criterion retained as unresolved, or name a separately sourced or authored chat rule. Then prepare the implementation Ticket.
48
#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.
49
#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.
51
#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.
52
#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.
53
#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.
Keep the human rollout disposition, but remove the supposed maintainer decision. Current World Import Profiles already determine the corrected target matrix. Updating the checklist is routine maintenance before the authorized rollout.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Named-host authorization for rollout and stock-client collision acceptance.
Use the current World Import Profiles to correct the rollout checklist, then collect named-host collision and client acceptance on the intended World Shards.
54
#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.
Keep the human acceptance disposition, but remove the supposed decision blocker. The current World Import Profiles determine eligible Shards; an agent can correct the checklist before rollout.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Named-host authorization and route/collision acceptance.
Use current World Import Profiles for the coverage checklist, then prepare and select matching navigation coverage on approved World Shards.
55
#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.
56
#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.
57
#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.
58
#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.
59
#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.
60
#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.
Finish the stomp content, then combine dungeon visuals and bot acceptance in one imported-map session.
61
#367The GOOBER lock Gate is merged and verified through real reducers. Imported Defias Cannon acceptance remains.
The missing GOOBER lock Gate allowed quest credit and Package hooks before an opener. PR #440 now applies the existing Gate and proves atomic Refusal through real reducers. The imported cannon still needs its stated client acceptance.
Learn a higher spell rank in a real 1.12.1 client, relog, and confirm the spellbook contains the expected visible rank before closing.
63
#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.
65
#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.
66
#40The Binding pet quests need the scripted ritual encounter that turns source-item use into the objective fight.
Source data maps item 6928 to spell 7728 and item 6913 to spell 8674. Both use SendEvent and ActivateObject with spell focus 83. Current quest source-item reachability and item-use routing already exist. The remaining work must preserve the source-backed event behavior, focus Gate and objective credit. Quest turn-in also lacks reward-spell data, so the complete path needs a small durable catalogue and generated bindings.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Human review of the concrete schema and binding change under docs/danger-zones.md section 1 before shipping.
A real-client ritual-circle check after 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.
Current pinned cmangos rows: item 6928 -> spell 7728 -> event 1131; item 6913 -> spell 8674 -> event 1134. Both spells use effects 61 and 86 with focus 83. The issue's suggested plain hostile-summon effect is not the source spell shape.
Current quest importer omits RewSpell and RewSpellCast; the Module has no durable quest reward-spell catalogue. The draft must preserve their distinct source semantics.
Final bab88ef passed all seven checks. CodeRabbit completed review through that head with no remaining findings. Recovered serial verification passed 42 Module durable tests and one Gateway auction regression; the added radius assertion also passed separately at 8cbd16d.
The user has received the concrete #455 schema review request. Keep the tested PR draft until human review arrives, and retain ritual-circle client acceptance on #40.
67
#137Bank storage, slot purchase and the Headless Client bank adapter are implemented and pinned. Operator execution and the stock-client window check remain.
Wire-harness #9 and core pin #453 are merged. The adapter covers activation, deposit, reconnect persistence, withdrawal and slot purchase, with offline tests and protocol checks. It has not been run on an approved development Realm.
Confidence: high. Issue updated 2026-09-07.
Blocked by
Operator access to an approved development Realm.
A human with a stock client must check the window and cell behavior.
Human acceptance GPT-5.6 Sol, medium effort, adapter agent
Run the pinned bank adapter on an approved development Realm, then inspect the stock-client bank window, its 24 cells and the purchased slot.
68
#142Drowning behavior and the Headless Client dive adapter are merged and pinned. Operator execution and stock-client calibration remain.
Wire-harness #10 and core pin #454 are merged. The adapter checks breath start, expiry before damage, matching health loss and drowning logs, and breath stop after surfacing. Protocol tests, offline adapter checks and CI passed. Live timing and the submerge threshold remain unverified.
Confidence: high. Issue updated 2026-09-07.
Blocked by
Operator access to an approved development Realm with suitable imported liquid coordinates.
A human with a stock client must calibrate head height and verify the mirror bar and related visual behavior.
Human acceptance GPT-5.6 Sol, medium effort, adapter agent
Run the pinned dive adapter on an approved development Realm with imported liquid coordinates, then verify the stock-client mirror bar, submerge threshold, partial dives, death and zone/Transfer behavior.
69
#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.
70
#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.
72
#63Concurrent promotions now reuse one active Loot Roll and preserve its complete vote set.
Concurrent Gateway promotions could insert duplicate active Loot Rolls and vote sets on Realm-core. Merged #439 makes the authoritative insertion reuse the existing active roll and preserve its votes. Post-resolution replay remains a separate decision in #441.
Complete. Concurrent-promotion SQL acceptance passed in merged #439. Post-resolution replay remains in #441.
73
#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.
74
#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.
75
#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 cast entry points did not consistently apply the shared creature identifier policy. Merged #434 protects fixture creatures across cast declarations, including partial updates.
Closed on GitHub. Preserve the recorded implementation evidence.
77
#80Cross-map teleport now deletes public and staged motion with the live entity.
Before #438, cross-map teleport removed staged motion and the live entity but left public motion behind. The merged cleanup removes both motion forms with the entity; the durable regression proves the result.
Before #438, module/src/world.rs removed staged motion but left the public motion row during cross-map teleport.
module/src/helpers.rs and module/src/creatures/tick/lifecycle.rs: the standard entity cleanup contract includes game_entity_motion and game_creature_spline.
Complete. PR #438 merged after the durable regression, all other checks and review passed.
78
#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.
Subscribed-table parity left other generated definitions unchecked. Merged #448 adds reproducible full binding generation and comparison, so CI now catches that drift.
Complete. Merged #448 generates and compares every Gateway binding file, with documented normalization. Its baseline contained 967 files.
82
#341Service unit parsing misses continued directives
The former parser split physical lines, which could hide conflicting continued directives. The merged CLI parses logical lines, including continuation comments, and rejects conflicting units before host changes.
Complete. CLI #57 is adopted by merged core pin #452.
83
#50Classify Character ownership through unit-shaped and bare guid fields
Merged #445 classifies unit-shaped and bare guid columns, matches table-specific ownership markers and excludes comments and test code. Its Architecture Test catches Character state omissions during cleanup or Transfer.
The former verifier omitted effective command arguments and drop-in provenance. The merged CLI compares typed systemd ExecStart data with the tracked command, preserves argument boundaries and reports drop-ins on mismatch.
Complete. CLI #57 is adopted by merged core pin #452.
86
#398Generated Package Deltas and Runtime Scripts now have accurate trust-review counts in the pinned CLI.
The old review counted source filenames and missed prebuilt Script Artifacts. Correct accounting also separates physical Delta artifacts from their Import Family memberships. This was more work than replacing the stale Datascript line.
Complete. CLI #56 and core pin #447 are merged; 701 CLI tests and all core checks passed.
87
#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.
88
#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.
89
#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.
90
#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.
+
State and owner
Next action
1
#61Deterministic bound identity shipped, but World Session epochs still live inside each Gateway process and cannot reject stale teardown across processes.
The corruption exists whenever two Gateways serve one Account. A Realm-core Session generation and compare-by-generation logout is an ordinary consistency design. #69 may affect routing policy but does not need to block this invariant.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Human review before shipping the concrete Account ownership schema change.
Issue #61 states the two-Gateway stale-disconnect corruption directly.
The maintained report already identifies a Realm-core-owned generation or lease and the losing-socket test as the bounded solution.
CODING_STANDARDS.md assigns realm-wide Session state to Realm-core and requires atomic Durable Requests.
Local T1 and T2 Tickets establish the two-Gateway ownership path and integration checks. Design review requires tokens on queued movement, gameplay, cleanup and Transfer requests. Every configured Shard must acknowledge the new generation before admission; an unavailable Shard therefore prevents admission.
A disposable Standalone with two independent Coordinators reproduced the current defect: both logins succeed, then delayed and repeated logout from the older Gateway deletes the newer Character entity. The test failed with zero live entities where one was required. Durable ownership implementation is in progress.
The first durable replacement test now passes: a competing live claim is refused, an expired claim is replaced, and delayed old cleanup and a stale combat request leave the winning Character intact. The agent is integrating approved main and proving socket-loop, queued movement and Transfer cases.
The encrypted World Session case refused a competing live claim and preserved the successor after expiry and old cleanup. Self-review found that an ownership-loss message could wait behind a blocked writer; the agent is replacing it with direct shutdown through an owned socket clone and testing that case before publication.
Cross-repository audit found three Headless Client shell calls still using bare guids. Compatible argument encoding and refusal-safe party cleanup are published in wire-harness #11 with four passing offline shell checks. The core implementation will include its reviewed release pin.
The expiry fixture found that identity lookup can select the wrong live entity when legacy rows share an identity. The implementer is passing the already resolved Character entity into the shared logout body and testing duplicate identities. Renewal work also moves outside the blocking pool used by active World Sessions.
At 2f6b96d, all 1,496 Module, 1,302 Gateway and 351 importer unit tests pass, plus 156 shared tests and 121 Gateway integration/parity checks. Strict workspace lint passes. The encrypted World Session proof covers competing admission, old socket closure and renewal with a full Tokio blocking pool. Independent routing review found no missing immutable ownership token. Binding comparison and offline preflight are the remaining local gates.
Initial Rust CI passed. Durable CI failed before two fixtures connected because parallel Standalone launches could not read their signing key; three Account durable cases passed. The implementer is fixing fixture isolation and integrating a345555. All local unit, lint, formatting, 986-binding and offline preflight gates passed before publication. Private Account Claim/Fence tables and reducer argument changes require human schema review after checks pass.
The five Account durable cases pass with four concurrent test threads after private signing-key isolation. The integration with merged party cleanup retains SessionActor in the new Coordinator clone and deletion LEAVE path. A literal two-process smoke check is prepared on new owned Standalone fixtures.
In progress GPT-6 Astra, high effort, Account ownership agent
Finish descriptor, bounded fence cleanup and Shard error review fixes on merged #470 with alpha10. Pass final checks and actual review, then request human schema review.
2
#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 deletion Relay is present, but it converts failed reads to absence before a direct Realm-core LEAVE. Its tests inspect source text. The current path also needs verification of Transfer/cache ordering and surviving party mirrors before the suite workaround can be removed.
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.
Coordinating review found callback/reconnect deadlocks and a sequential absence-scan race during Transfer; the implementation agent is fixing these before PR publication.
Recovery copied the committed and unfinished source into a new worktree. Original tracked diffs stayed unchanged during capture.
Direct tests pass for unreadable Shards, unavailable Realm-core, Transfer preservation, failed LEAVE and mirror retries, lost replies and stale mirror repair. The actual Coordinator callback test remains in progress.
Further coordinating review found that local stable snapshots do not establish freshness across two Gateways. The implementer is addressing delayed destination observation before publication.
Each absence sample now uses a temporary filtered Character subscription and collects presence, cache generation and revision after acknowledgement. The private regression parks a second Coordinator destination pump during a Transfer. This revised fixture remains in progress.
The final controlled two-Coordinator Transfer test passed in 45.68 seconds. Eight focused cleanup tests and 51 party tests passed. Full Gateway checks passed with one trace-path test excluded after reproducing the same failure on the unmodified base. Final review removed a persistent batching cursor that could skip members.
Published PR #463 at 6fec452 after rebasing onto 94aa2da. The exact rebased head passed the private two-Coordinator test, 1,319 Gateway unit tests and 116 integration tests with the proven base trace-path failure excluded. Strict Gateway lint and formatting checks passed.
CodeRabbit requested moving the durable callback fixture out of production lexical scans. The implementer also preserved the primary subscription failure when unsubscribe fails and simplified the Realm roster health read. These changes are committed locally and awaiting focused checks.
The three review findings are addressed and actual CodeRabbit review of d6cfa37 passed. Head 08cb0b2 adds merged Binding fixture #468 through rebase. Its Gateway and Module source trees match the checked implementation. Current-head durable CI and actual review remain pending.
Head d94bc1d preserves the original LEAVE failure if roster confirmation also fails, and repairs known groups while a failed Shard enumeration remains queued for retry. All 53 party tests, eight focused deletion checks and strict Gateway lint pass. CodeRabbit completed review on this head with no remaining finding. Durable CI is still running.
PR #463 merged as a345555 at 19:48 UTC after all seven checks and current-head CodeRabbit review passed. Issue stays open because wire-harness still globally resets parties between scenarios. Its remaining acceptance is assigned to the party implementer in an isolated worktree.
In progress GPT-5.6 Sol, high effort, Character cleanup implementer
Remove the Headless Client suite party-reset workaround, scope assertions to fixture parties and verify grouped deletion without a manual dissolve.
3
#460Shifted Spell columns corrupt general imported effects and can omit the third effect.
Real-data checks found the general importer reads an equipment mask as an effect and shifts valid effects by one slot. This affects core spell behavior. The Random Property Tracer has a narrow corrected reader that can guide the broader repair.
importer/src/spell.rs documents the missing InterruptFlags column but incorrectly claims effect arrays resynchronize. push_spell_effect_rows and resolve_effect_kind use the shifted named arrays.
Spell 7748 has raw effects [53,0,0] and inventory mask 1048608, while wow_dbc reads effects [1048608,53,0]. Spell 7747 has raw effect [6,0,0], aura [34,0,0], base points [14,0,0]; each named array is shifted by one slot.
A source-shaped general-import test reproduced a phantom inventory-mask effect, shifted effects and a lost third effect. The source audit also found shifted reagents and truncated family flags in existing reads. The agent owns importer changes separately from #31 stat folds.
Implementation f3fd65a is committed and locally checked. Four World Import Profile item outputs remain byte-identical. The general Spell comparison retains 22,357 headers, restores 874 third effects, removes 204 phantom effects and corrects targets, reagents, interrupt masks and full family masks. Actual imported ally buffs, Gouge and Stealth tests pass.
Draft #465 is published at a0c86db on parent 8b72ddf. All 352 importer tests, the actual-source audit, three imported gameplay fixtures and the 49,307-row items stamp check pass. Seven source-dependent fixtures are ignored in the ordinary run and were run separately. Strict importer lint and formatting checks pass.
The unstacked branch preserves Binding quest required-focus column 15 and hostile summon effects. It passes 357 importer tests and the actual-source audit. A durable Gouge fixture used a spell with a random miss chance; the revised fixture verifies guaranteed shared-pipeline damage with scheduled aura expiry disabled. Final checks are running.
Published unstacked #465 at 32ac5c8. All final local importer checks and three imported gameplay cases pass. CI found a main integration gap: Binding quest fixture INSERT has 58 fields after the approved item template grew to 59. Codex owns adding its default-zero property column and rerunning the durable case.
The Binding quest durable case passed after the fixture column correction. Published that one-line main repair separately as #468. CodeRabbit found that source TARGET_NONE remains conflated with caster; an implementer is checking actual source effects and the smallest correct fallback before changes.
The Binding fixture repair merged as #468. The implementer now owns the source target correction. Source TARGET_NONE must use compatible explicit target flags or its effect default, rather than caster. Actual source examples include Bear Form secondary effects and Slime.
Head 74bfa36 is based on merged #468. All 358 importer tests, actual-source TARGET_NONE checks, Binding source audit and three imported gameplay durable cases pass. Strict importer lint and formatting pass. The target correction changes 4,589 effect targets with no other field or key changes; unsupported scripted effects retain the runtime fallback.
Local 8a8d26d uses all 19 location codes from the pinned target classification. Actual client data gains 170 corrected target pairs. All 360 ordinary importer tests, the source audit and strict lint pass. Root checked the classification and found no blocker.
PR review GPT-5.6 Sol, high effort, Spell target fix; Codex final review
Check rebased head 5ce7d39 on merged #470, publish the target-selection fix and complete CI and actual review.
4
#31Random item properties are absent from imported data and item state, and all relevant Gateway packet paths still emit random property id zero.
The Random Property Tracer merged in approved #462. It imports and preserves the selected property through item movement and client packets, and applies the existing EquipStat families. PR #466 adds the remaining Stat Kinds and is completing review corrections.
Confidence: high. Issue updated 2026-08-22.
Blocked by
A real-client tooltip check and approved Realm acceptance after the remaining Stat Kind work.
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.
2026-08-22 issue Spec: the Tracer already includes weighted selection; the second Ticket adds resistance, damage, avoidance, regeneration and spell/healing terms.
Source preflight checked pinned CMaNGOS data and the local build-5875 client tables. Existing synthetic enchant IDs 7745 and 7748 do not collide with imported enchantments. Buyback, Mail, Escrow, Auction and Loot Roll paths must preserve the selected property; old opaque Transfer blobs need an explicit compatibility path.
Takeover review fixed partial inventory grants, empty catalogue import, and stat-sum overflow. Importer tests pass; Module checks, generated bindings, Gateway projection and private durable fixtures are in progress.
Recovery copied the committed and unfinished source into a new worktree. Original tracked diffs stayed unchanged during capture.
Coordinating review found repeated enchantment-catalogue scans in armor projection and overflow in the changed Spirit fold; the implementer is correcting both before publication.
All eight private durable property tests and the complete 973-file binding comparison passed. Real-data import exposed shifted Spell fields; the corrected reader now imports primary-stat effects. Final checks are rerunning after that fix.
Draft #462 at b23d90e passed 345 importer, 1496 Module, 1422 Gateway and 156 shared tests; the known local trace-path test was excluded and CI retains it. Nine private property, three item-movement and one real Coordinator armor test passed. All four World Import Profiles, strict workspace lint, preflight and all 973 generated bindings passed.
CodeRabbit found incomplete item-family row counts, chest refusal on invalid properties and gaps after skipped creature drops. Codex reproduced both gameplay defects; the shared insertion fix passes all 11 durable property cases. Importer and lint checks are finishing before push.
Pushed all three review fixes as 8b72ddf. All 11 durable property cases and 346 importer tests passed, with two existing ignored importer fixtures. Strict Module and importer lint checks passed. Review replies include the reproduced failures; a new CodeRabbit review was requested.
Actual CodeRabbit review of 8b72ddf completed with no new findings, all seven checks passed, and the concrete schema review request was sent to the user. The remaining Stat Kind implementation connects maxima, six resistances, per-hand damage, defense and avoidance, scheduled regen, school-filtered damage and healing, plus client resistance fields. Its durable caller fixtures are running.
The user reviewed and approved the concrete schema. PR #462 merged as 8a40989 after current-head checks and actual CodeRabbit review passed. The remaining Stat Kind agent is integrating onto this main revision.
PR #466 is published at 4bc7d89. Its 1,499 Module and 1,303 Gateway unit tests, four Module durable Stat Kind fixtures, Gateway resistance fixture and strict lint pass. Root review found that item MP5 is incorrectly suppressed by the five-second casting pause. The implementer is correcting this and checking small flat regeneration values before merge.
The implementer corrected MP5 during recent casting, small per-five values and aura resistance overflow. A CodeRabbit claim that armor omitted gear was false: the shared resistance fold already includes it. Parent review caught a resulting double count before publication; it was removed. A durable test is checking the exact armor total and damage reduction.
Final head 1be079d fixes MP5 during recent casting, low regeneration rates and aura resistance overflow. It counts armor once. All 1,501 Module and 1,303 Gateway unit tests, 119 Gateway integration/parity checks, four Module durable cases, one Gateway resistance case and strict lint pass. One proven local trace-path failure is excluded and retained in CI. The three CodeRabbit threads are resolved, including the withdrawn armor finding. Actual review on this head remains required.
PR review GPT-5.6 Sol, high effort, remaining Stat Kinds; Codex owns Tracer PR review
Finish current-main integration checks for #466, publish the rebased branch and complete CI and current-head review.
5
#71Item GUID allocation can leave a Character's 256-value packed block and collide with another Character; transfer relies on the opposite invariant.
The allocator and migration require judgment, but agents can produce a concrete design and tested branch. Human review is required before a schema or migration change ships, not before design begins.
Confidence: high. Issue updated 2026-08-11.
Blocked by
Human review of the concrete migration before shipping.
items/tables.rs masks the owner to 24 bits and next_item_guid increments without enforcing the 256-value block.
docs/danger-zones.md requires human review before migration work ships; it does not reserve implementation design for a person.
The issue already supplies saturation, transfer identity, migration, and collision cases for a bounded design Ticket.
5
3
5
3.0
Ready Codex
Design a collision-free item allocator and migration for existing item identities. Prove saturation, Transfer preservation and namespace separation in a tested draft.
6
#113Door collision meshes can be imported, but no per-GameObject collider registry or state-gated ray merge consumes them.
Map 36 does not need a product decision. Dynamic GameObject collision can have explicit eligibility from its instance-scoped collider registry while static vmap rays retain generation eligibility. Human schema review remains a shipping gate.
Confidence: high. Issue updated 2026-08-13.
Blocked by
Human schema review before shipping; imported-door acceptance remains.
module/src/go_model.rs: game_go_model stores imported local-space meshes, and comments name game_go_collider as the absent consumer.
module/src/vmap.rs: vmap_enabled requires both the global Gate and an active static generation.
docs/vmap-rollout.md: bounded-profile vmaps skip the Instance Pool.
Issue #113 already specifies the collider table, lifecycle, transforms, state Gate, ray merge, and tests.
module/src/vmap.rs ties static rays to an active static generation, while docs/vmap-rollout.md intentionally excludes the Instance Pool from bounded open-world generations.
The requested GameObject registry is instance-scoped and supplies its own data-presence condition, so it need not pretend map 36 has a static generation.
Implement instance-scoped dynamic GameObject collider eligibility and ray merging. Keep static vmap generation eligibility separate.
7
#72SpellCastEvent still multiplexes several wire signals through independent booleans and zero-value conventions.
Legacy decoding can treat the appended zero kind as the current field-derived form, while new constructors stamp explicit kinds. That is a bounded compatibility design. Human schema review belongs after the concrete change.
module/src/spell/tables.rs has typed constructors but still relies on mutually exclusive booleans.
gateway/src/stdb/subscriptions.rs decodes the signals through ordered branches, which supplies the legacy fallback.
docs/danger-zones.md permits an end-appended defaulted numeric column and requires review before shipping.
3
3
3
3.0
Ready Codex
Append an explicit event kind, stamp constructors and preserve legacy kind-zero decoding. Publish the tested schema change for human review.
8
#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.
9
#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.
10
#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.
11
#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.
12
#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.
During #441 review, current relay_tick was observed advancing won_watermark even when a Shard settlement request fails. This can suppress its retry; it is a separate concrete failure path to include in the group-loot investigation, not proof of the original incident cause.
4
4
2
8.0
Verify existing work Codex
Add a failed-settlement retry case that checks watermark advancement, then rerun group loot on a fresh current three-Shard development stack. Capture promotion, Realm-core resolution and settlement separately; split bot-party combat failures into their own issue.
13
#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.
14
#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.
15
#105LyraCore now pins the repaired wire suite. Full-suite realm acceptance remains.
The old pin started scenario files relative to the core checkout. The released fix uses the adapter directory and distinguishes startup failures. Offline dispatch and CI pass, while all-scenario realm acceptance still needs a run.
Run the pinned full suite on an approved development Realm and retain each scenario result. Source and pin work are complete.
16
#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.
17
#272Resident creature movement now replays after CREATE. Motion-flush shedding and sensing cadence still need decisions.
PR #450 fixed resident movement replay. Measure and observe the remaining symptom before choosing shedding or sensing changes. There is no current implementation decision to block on, and remaining effort is lower than the report states.
Confidence: high. Issue updated 2026-09-07.
Blocked by
Controlled reproduction and stock-client acceptance of current movement.
Observe current motion after merged #450. Record stock-client movement before changing queue shedding or sensing cadence.
18
#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.
19
#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.
20
#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.
21
#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.
22
#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.
23
#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.
24
#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.
25
#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.
26
#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 supported-map inventory follows the maintained World Import Profiles. Gate removal should wait on #184 and #195 evidence, but it does not need a separate preimplementation maintainer decision.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Verified rollout from #184 and matching navigation coverage from #195.
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.
docs/vmap-rollout.md is the current source for eligible World Shards and Instance Pool exclusion.
module/src/vmap.rs still has the global Gate, so no unsafe partial removal has occurred.
Issues #184 and #195 remain the real evidence dependencies.
Wait for rollout and navigation evidence from #184 and #195, then remove the global Gate using the supported World Import Profiles.
27
#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.
28
#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.
29
#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.
30
#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.
31
#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.
32
#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.
33
#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.
34
#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.
35
#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.
36
#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.
37
#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.
38
#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.
39
#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.
40
#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.
41
#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.
42
#30The Realm has no seasonal game-event data model, calendar activation, spawn participation, or Operator debug controls.
The calendar and spawn-link Spec is detailed, but its gameobject plan conflicts with current code. Parking a game_gameobject row stops use or respawn; the Gateway still creates it for viewers. A concrete visibility or retained-definition design must be selected before implementing seasonal disappearance.
Confidence: high. Issue updated 2026-08-21.
Blocked by
The Spec prohibits Gateway changes and requires parked object definitions to survive, but the current parked state does not hide a gameobject.
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.
Code fact at 3455aa2: module/src/gameobject.rs keeps depleted rows with state 1; gateway/src/stdb/world_view.rs gameobject_appeared indexes and creates every row without a state visibility Gate. Pool objects already separate definitions from live rows.
2
4
5
1.6
Design first Codex
Resolve gameobject disappearance: either add a Gateway visibility Gate for parked event rows, or retain definitions separately and remove/reinsert live rows through one lifecycle. Then split and implement the event Tracer.
43
#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.
44
#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.
45
#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.
46
#28Drink item use does not create or decay an inebriation state, update PLAYER_BYTES_3, or apply chat slurring.
Primary-source preflight confirms alcohol state, packing and decay, but the pinned CMaNGOS say/yell path forwards text unchanged. The issue requires an exact server slur transform that this reference does not contain.
Confidence: high. Issue updated 2026-08-11.
Blocked by
The requested exact pinned-CMaNGOS server slur transform is absent from the verified source.
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.
Pinned CMaNGOS ca0775f: low 16 bits of PLAYER_BYTES_3 hold gender | (drunk & 0xFFFE); decay subtracts 256 after more than 10 seconds. The issue states a tier byte and roughly one tier per 9 seconds, which do not match this source.
Choose a proven state/field/decay slice with the server-slur criterion retained as unresolved, or name a separately sourced or authored chat rule. Then prepare the implementation Ticket.
47
#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.
48
#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.
50
#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.
51
#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.
52
#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.
Keep the human rollout disposition, but remove the supposed maintainer decision. Current World Import Profiles already determine the corrected target matrix. Updating the checklist is routine maintenance before the authorized rollout.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Named-host authorization for rollout and stock-client collision acceptance.
Use the current World Import Profiles to correct the rollout checklist, then collect named-host collision and client acceptance on the intended World Shards.
53
#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.
Keep the human acceptance disposition, but remove the supposed decision blocker. The current World Import Profiles determine eligible Shards; an agent can correct the checklist before rollout.
Confidence: high. Issue updated 2026-09-01.
Blocked by
Named-host authorization and route/collision acceptance.
Use current World Import Profiles for the coverage checklist, then prepare and select matching navigation coverage on approved World Shards.
54
#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.
55
#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.
56
#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.
57
#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.
58
#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.
59
#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.
Finish the stomp content, then combine dungeon visuals and bot acceptance in one imported-map session.
60
#367The GOOBER lock Gate is merged and verified through real reducers. Imported Defias Cannon acceptance remains.
The missing GOOBER lock Gate allowed quest credit and Package hooks before an opener. PR #440 now applies the existing Gate and proves atomic Refusal through real reducers. The imported cannon still needs its stated client acceptance.
Learn a higher spell rank in a real 1.12.1 client, relog, and confirm the spellbook contains the expected visible rank before closing.
62
#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.
64
#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.
65
#40The Binding pet quests need the scripted ritual encounter that turns source-item use into the objective fight.
Source data maps item 6928 to spell 7728 and item 6913 to spell 8674. Both use SendEvent and ActivateObject with spell focus 83. Current quest source-item reachability and item-use routing already exist. The remaining work must preserve the source-backed event behavior, focus Gate and objective credit. Quest turn-in also lacks reward-spell data, so the complete path needs a small durable catalogue and generated bindings.
Confidence: high. Issue updated 2026-08-11.
Blocked by
A real-client ritual-circle check after 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.
Current pinned cmangos rows: item 6928 -> spell 7728 -> event 1131; item 6913 -> spell 8674 -> event 1134. Both spells use effects 61 and 86 with focus 83. The issue's suggested plain hostile-summon effect is not the source spell shape.
Current quest importer omits RewSpell and RewSpellCast; the Module has no durable quest reward-spell catalogue. The draft must preserve their distinct source semantics.
Final bab88ef passed all seven checks. CodeRabbit completed review through that head with no remaining findings. Recovered serial verification passed 42 Module durable tests and one Gateway auction regression; the added radius assertion also passed separately at 8cbd16d.
User approved the concrete schema and PR #455 merged as 1c63b7f after current-head checks and actual CodeRabbit review. No live Realm update was performed.
Binding implementation #455 merged after human schema approval. Keep #40 open for the real-client ritual-circle and summon feedback acceptance.
66
#137Bank storage, slot purchase and the Headless Client bank adapter are implemented and pinned. Operator execution and the stock-client window check remain.
Wire-harness #9 and core pin #453 are merged. The adapter covers activation, deposit, reconnect persistence, withdrawal and slot purchase, with offline tests and protocol checks. It has not been run on an approved development Realm.
Confidence: high. Issue updated 2026-09-07.
Blocked by
Operator access to an approved development Realm.
A human with a stock client must check the window and cell behavior.
Human acceptance GPT-5.6 Sol, medium effort, adapter agent
Run the pinned bank adapter on an approved development Realm, then inspect the stock-client bank window, its 24 cells and the purchased slot.
67
#142Drowning behavior and the Headless Client dive adapter are merged and pinned. Operator execution and stock-client calibration remain.
Wire-harness #10 and core pin #454 are merged. The adapter checks breath start, expiry before damage, matching health loss and drowning logs, and breath stop after surfacing. Protocol tests, offline adapter checks and CI passed. Live timing and the submerge threshold remain unverified.
Confidence: high. Issue updated 2026-09-07.
Blocked by
Operator access to an approved development Realm with suitable imported liquid coordinates.
A human with a stock client must calibrate head height and verify the mirror bar and related visual behavior.
Human acceptance GPT-5.6 Sol, medium effort, adapter agent
Run the pinned dive adapter on an approved development Realm with imported liquid coordinates, then verify the stock-client mirror bar, submerge threshold, partial dives, death and zone/Transfer behavior.
68
#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.
69
#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.
71
#63Concurrent promotions now reuse one active Loot Roll and preserve its complete vote set.
Concurrent Gateway promotions could insert duplicate active Loot Rolls and vote sets on Realm-core. Merged #439 makes the authoritative insertion reuse the existing active roll and preserve its votes. Post-resolution replay remains a separate decision in #441.
Complete. Concurrent-promotion SQL acceptance passed in merged #439. Post-resolution replay remains in #441.
72
#441A delayed START can recreate a resolved Loot Roll
PR #439 is merged, so the listed prerequisite is stale. Stable promotion identity and durable replay refusal are distributed idempotency work that an agent can design and implement. Human review is required only before a schema change ships.
Confidence: high. Issue updated 2026-09-05.
Blocked by
Human schema review under docs/danger-zones.md section 1 after current-head CI and review pass.
gateway/src/world/loot.rs promote_one sends START using corpse_guid and slot, then clears the staging row after success.
module/src/loot/rolls.rs insert_roll_rows deduplicates only against a live corpse and slot row, while cleanup_roll deletes the row and votes.
The issue provides the required replay, later-valid-roll, cleanup-boundary, and settlement-Gate tests.
PR #439 is already merged into the report base revision.
A private durable test reproduced delayed START recreating a resolved roll on unchanged main. Six durable checks now pass with a receipt keyed by source database identity, corpse and slot, retaining the greatest source roll id. Private old-to-new Module publish tests pass for drained legacy state and refusal of unidentifiable legacy promotions. Receipt storage grows with distinct corpse keys.
Draft #461 at fae0189 passed 1485 Module and 1419 Gateway tests, six durable regressions, strict lint, preflight and all 970 generated bindings. Private upgrade checks proved deadline drain, additive publish, ZERO refusal, old argument-list refusal and retained source sequence. Root owns PR follow-up.
PR #461 at 1834a57 passes all seven checks. Its initial XP test failure was reproduced on the baseline by reversing an unordered query; the fixture now removes duplicate spawns and asserts the one Character-killed creature. The upgrade finding remains open.
The separate CLI checkpoint checks actual table names and refuses the whole batch on legacy rolls, votes, withheld loot or unreadable state. All 722 CLI tests and Rust 1.85 checks pass; exact COUNT query output was verified on an owned fixture. A two-Shard baseline-to-current test proves settlement must finish before the upgrade and that the settled item and source sequence survive.
lyracore-cli #58 merged as 5688972 after 722 local tests, Rust 1.85 checks and actual CodeRabbit review. The CLI refuses pending legacy rolls, votes and withheld loot before any publish. It requires Operator-enforced quiescence throughout the batch. Core integration pins reachable implementation d6601ec and is in progress.
The rebased Loot Roll implementation preserves the approved property column before its new identity column. Full private generation produced 978 bindings. All six replay durable cases, 1,494 Module tests, 1,304 Gateway unit tests and 119 Gateway integration checks pass. A two-Shard 8a40989 upgrade proof preserved the settled item, property 117 and source sequence; old START arguments were refused.
The CLI checkpoint is integrated at d6601ec. Its previous review thread is resolved. Rebase aea68d8 includes merged Binding fixture #468; Module, Gateway and replay fixture trees are byte-identical to locally checked 6d62bc0. The two-Shard upgrade proof preserves item property 117 and settled inventory. Actual review on this new head is still required.
All seven checks and full CodeRabbit review passed at aea68d8. Requested human review of the appended default-ZERO source Identity, private permanent receipt table, reducer arguments, bindings and tested upgrade procedure. No approval is assumed.
The maintainer explicitly reviewed and approved the schema at aea68d8. The published integration 034079a has identical Module, bindings, CLI pin and upgrade procedure. All 1,323 Gateway unit tests, 119 integration/parity checks, strict all-target/all-feature lint, formatting and diff checks pass. PR is ready; current CI and review are running.
Merged #461 as 5f42e5a on 2026-09-07 at 20:18 UTC. The maintainer approved the schema, all seven checks and actual review passed, and issue #441 is closed.
Complete. PR #461 merged after human schema approval and full checks; durable replay and later-generation tests pass.
73
#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.
74
#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.
75
#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 cast entry points did not consistently apply the shared creature identifier policy. Merged #434 protects fixture creatures across cast declarations, including partial updates.
Closed on GitHub. Preserve the recorded implementation evidence.
77
#80Cross-map teleport now deletes public and staged motion with the live entity.
Before #438, cross-map teleport removed staged motion and the live entity but left public motion behind. The merged cleanup removes both motion forms with the entity; the durable regression proves the result.
Before #438, module/src/world.rs removed staged motion but left the public motion row during cross-map teleport.
module/src/helpers.rs and module/src/creatures/tick/lifecycle.rs: the standard entity cleanup contract includes game_entity_motion and game_creature_spline.
Complete. PR #438 merged after the durable regression, all other checks and review passed.
78
#469Temporary summon lifetime callbacks collide with their retained unique row; a Binding quest poll also races corpse removal.
Report-only CI on current main captured a unique-key panic in expire_eventai_summon. This can interrupt recurring lifetime checks. The same run exposed a transient dead-entity assertion in the Binding fixture. Both have an isolated implementation owner.
The uploaded Standalone log records DatastoreInsertBsatn errno 12 inside expire_eventai_summon at 19:10:22 UTC. Its replacement INSERT retains the unique creature_guid while the current row still exists.
The original Module failed with a living summon missing its expiry row; its owned log confirms the unique-key panic. The fix passes repeated lifetime checks, stable life_seq, durable quest credit and corpse removal. All 1,496 Module unit tests, strict all-target/all-feature lint, formatting and independent review pass. No schema change.
The original Module failed with a missing expiry row and an owned log confirms the unique-key panic. The fix and repeated lifetime checks pass all CI. CodeRabbit requested actual stale-callback and natural-expiry coverage from the issue acceptance criteria. A Sol implementer owns those additions.
Published 47184b7 on merged Loot replay 5f42e5a. The stale-callback mutation reproduces the unique-key panic; the corrected durable regression and natural expiry pass. All 1,495 Module tests, 1,442 applicable Gateway tests, strict lint and 979 generated binding comparisons pass. Actual CodeRabbit review completed without actionable comments; durable CI remains pending.
Done GPT-5.6 Sol, high effort, expiry regression cases; Codex final review
Closed after #470 merged. Preserve the mutation and durable regression evidence.
79
#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.
Subscribed-table parity left other generated definitions unchecked. Merged #448 adds reproducible full binding generation and comparison, so CI now catches that drift.
Complete. Merged #448 generates and compares every Gateway binding file, with documented normalization. Its baseline contained 967 files.
83
#341Service unit parsing misses continued directives
The former parser split physical lines, which could hide conflicting continued directives. The merged CLI parses logical lines, including continuation comments, and rejects conflicting units before host changes.
Complete. CLI #57 is adopted by merged core pin #452.
84
#50Classify Character ownership through unit-shaped and bare guid fields
Merged #445 classifies unit-shaped and bare guid columns, matches table-specific ownership markers and excludes comments and test code. Its Architecture Test catches Character state omissions during cleanup or Transfer.
The former verifier omitted effective command arguments and drop-in provenance. The merged CLI compares typed systemd ExecStart data with the tracked command, preserves argument boundaries and reports drop-ins on mismatch.
Complete. CLI #57 is adopted by merged core pin #452.
87
#398Generated Package Deltas and Runtime Scripts now have accurate trust-review counts in the pinned CLI.
The old review counted source filenames and missed prebuilt Script Artifacts. Correct accounting also separates physical Delta artifacts from their Import Family memberships. This was more work than replacing the stale Datascript line.
Complete. CLI #56 and core pin #447 are merged; 701 CLI tests and all core checks passed.
88
#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.
89
#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.
90
#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.
91
#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.
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(lyracore): send numeric GUIDs in structured actors
Codex; independent Sol review
Merged and released as v0.1.0-alpha.10
Complete. Account ownership and the party suite are integrating the verified release.
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.
@@ -58,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
Published Character cleanup PR #463. Pushed Random Property review fixes as 8b72ddf and requested another CodeRabbit review. The party implementer now owns the separate CLI upgrade checkpoint investigation; Codex owns both published PRs.
Review follow-up: #461 CI is green after a baseline-proven XP fixture repair; its upgrade checkpoint remains open. #462 gameplay review fixes pass durable tests. The #46 two-Gateway Transfer regression passed. Human review of #455 has been requested.
Merged correction #459 after all seven checks and actual CodeRabbit review, then resolved the original #458 thread. Adopted tested drafts #461 and #462 and requested full CodeRabbit reviews because draft auto-review was skipped. Assigned remaining Stat Kinds to GPT-5.6 Sol at high effort and general Spell normalization to GPT-6 Astra at high effort.
Opened correction PR #459 and filed #460 for the general Spell importer offset defect. The report now covers 70 open issues. Held Character cleanup for a newly identified ordering case across two Gateways.
Merged report PR #458 after seven passing checks, but the merge script continued past a failed review assertion. One CodeRabbit finding remained about stale report status. Corrected the snapshot and separated validation from merge commands; the correction later filed as #459 and the original review thread still need completion. Loot replay has six passing durable checks, and real-data import caught and fixed the Random Property Spell reader offset.
Completed a fresh audit of all 69 open issues. Nine assessments changed. Removed stale design blockers from #441, #61, #72 and #113; #71 can proceed to an agent-produced migration design. Assigned #441 to GPT-6 Astra at high effort. Report PR #458 is open. Parent review is checking failure recovery in #46 and item identity in #31.
Resumed ownership at the existing Postplan URL. Refetched all issue states and confirmed Binding #455 has no unresolved review threads. Assigned isolated recovery of #46 to GPT-5.6 Sol at high effort and #31 to GPT-6 Astra at high effort. A Sol agent at medium effort is auditing every open assessment.
All checks and actual CodeRabbit review passed for Binding draft #455; requested its required human schema review. Primary-source preflight moved #28 to a decision because the requested server chat transform is absent from the pinned reference.
Merged #457 at 180a681 and report #456 at 3455aa2 after all checks and actual CodeRabbit review passed. Final Binding review has no unresolved findings. Recovered 19 GB of disposable compiler cache for the remaining builds. Began primary-source preflight for #28 and identified the gameobject visibility conflict in #30.
The original orchestrator confirmed the ownership handoff and stopped its three implementers and report publishing. Reconciled its final report evidence and history. This session resumes #40, #46 and #31; the original root retains only the separate private-Wasm test correction. Shared build artifacts remain reserved until the surviving test chain finishes.
Opened Warlock draft #455 and report PR #456. Addressed a CodeRabbit finding by correcting four historical rate-limit statuses from SUCCESS to unavailable while retaining the raw platform result and prior merge evidence. Surviving agents are still editing #31 and #46, so this session reviews those worktrees without editing them.
Resumed ownership from the latest committed report and recovered unfinished local work. All earlier PRs are merged. Assigned #40, #46 and #31 to isolated agents. CodeRabbit rate limits now require waiting and an actual review before merge.
+
Recent updates
Merged summon fix #470 as 3669dfb after all seven checks and current-head CodeRabbit review passed; #469 closed. Spell and item-stat branches rebase cleanly onto that main. Item stats pass 1,501 Module tests. Scoped party acceptance identified an immediate Character-list projection race after successful deletion; its bounded Headless Client retry is being fixed before acceptance.
Summon fix 47184b7 passes actual CodeRabbit review; durable CI is the final merge gate. Spell target fix 8a8d26d corrects 170 additional source pairs and passes local checks. Account ownership passes combined Loot replay gameplay and preflight, then receives focused descriptor, fence-cleanup and Shard-error review fixes. The party suite is integrating alpha10 for owned acceptance.
Merged wire-harness #12 after Linux, macOS, coverage and independent review passed. Released alpha10 at 8b497bb and verified its Actor contract from a fresh tag clone. Account ownership and the party suite are integrating it. The combined Loot replay and Account ownership schema regenerates 989 bindings without drift.
Merged human-approved Loot replay #461 as 5f42e5a after all seven checks and current-head review passed; closed #441. Account ownership passes literal two-process acceptance in both directions. Real CLI evidence disproved root's nested-GUID quoting advice; independently reviewed wire-harness #12 corrects it and is completing CI for alpha10. Summon regressions are integrating the new main. Spell review raised one more target-selection finding.
The maintainer explicitly approved Loot replay #461 schema review. Confirmed the Module, schema, bindings, CLI pin and upgrade procedure are unchanged in integrated commit 034079a, marked the PR ready, and recorded approval on GitHub. All local Gateway integration gates pass. Spell repair and item stat CI both wait for the already-diagnosed Binding fixture fix in #470.
Spell rank fixes are published at aa52045. Item stats 12f7e3f passed actual review, but CI reproduced the main Binding corpse timing failure and waits for #470. Summon stale-callback and natural-expiry cases pass; the short observation window is being corrected. Account fixture signing keys are isolated and all five cases pass concurrently. Loot replay is rebased locally onto merged party cleanup with its schema unchanged.
Merged party cleanup #463 as a345555 after all checks and actual review passed. Item stats 12f7e3f fixes the reviewed regeneration assertion race and passes its affected durable case. Spell review found a missing column citation and incomplete Gouge rank correction. Account ownership draft #471 is published; CI exposed concurrent Standalone signing-key startup failures, and a literal two-process check is being prepared.
Party cleanup d94bc1d passed current-head CodeRabbit review after two failure-handling fixes. Spell repair and item stats have green code checks but still need substantive reviews. Summon expiry #470 passed CI; its reviewer requested stale-callback and natural-expiry cases, now assigned to Sol. Account ownership passed final source review and strict workspace lint.
Published summon-expiry fix #470 at ec63417. The baseline regression and its owned log confirm the panic; the corrected lifetime and quest fixture passes. Module unit tests, strict lint and independent review pass. A separate read-only audit is checking Account token retention through Gateway routing and queues.
Merged wire-harness #11 after independent review corrected Transfer argument count. Released and freshly verified alpha.9. Report CI exposed a current-main temporary-summon panic and corpse assertion race; filed #469 and started its isolated regression. Account review is binding completion requests to the referenced Character.
Requested human schema review for Loot replay #461 after all seven checks and full CodeRabbit review passed. Item stat corrections are published and locally checked at 1be079d; actual review is rate-limited. Headless Client compatibility #11 passes all three CI checks and has an independent reviewer.
Loot replay and Character cleanup passed all code checks. Spell target correction 74bfa36 passed actual-source and three gameplay durable cases. Published wire-harness #11 for Account ownership argument compatibility. Report review now separates raw CodeRabbit platform status from actual current-head review completion.