Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 113 additions & 15 deletions docs/research/playerbots-execution.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,9 @@
"prs": [
{
"url": "https://github.com/LyraCoreProject/LyraCore/pull/481",
"label": "Execution report #481",
"status": "open"
"label": "Execution report #481 merged",
"status": "merged",
"merge_commit": "f32fad66caefa499757f794310744302914e4dd5"
}
]
},
Expand Down Expand Up @@ -155,22 +156,114 @@
"model": "gpt-6-astra",
"effort": "high",
"estimated_tokens": 180000,
"status": "implementing",
"status": "complete",
"repo_scope": [
"LyraCore Module action and navigation contracts",
"Official Package Collection playerbots fixture",
"Local durable integration tests"
],
"owner": "PB-001 implementer",
"prs": [],
"prs": [
{
"url": "https://github.com/LyraCoreProject/LyraCore/pull/482",
"label": "Core #482",
"status": "merged",
"head_commit": "fe9caef6eb0d132c45a5d151827ab6fe64925f79",
"merge_commit": "be3fa67d0f0c24749230560544a3e8e8b577f61d"
},
{
"url": "https://github.com/LyraCoreProject/packages/pull/25",
"label": "Package #25",
"status": "merged",
"head_commit": "0781d7e5c8831fd3cec9235bfbdb84dc2cd0537c",
"merge_commit": "5724de1660a2628e88320914bdd5abb0c69da517"
}
],
"evidence": [
"Baseline on core 95e6ad8 and Package c32b2fb: both ignored personality durable tests passed in a private loopback Standalone. This proves the existing Package fixture, not the new outcome contract."
"Baseline on core 95e6ad8 and Package c32b2fb: both ignored personality durable tests passed in a private loopback Standalone. This proves the existing Package fixture, not the new outcome contract.",
"Final local union passed 1,621 Module unit tests normally, 1,622 with debug reducers, and 32 durable cases. Default-core SpacetimeDB 2.7.1 generation matched all 995 committed Gateway binding files. Independent standards findings are resolved or explicitly accepted; Spec review found no confirmed defects.",
"The final Package CI run passed all 16 strengthened fixtures against core fe9caef6. Repeated interaction setup now clears only its reserved target and quest rows, including stale movement and engagement. Evidence: https://github.com/LyraCoreProject/packages/actions/runs/34229152446/job/102070649535",
"Core #482 merged as be3fa67d0f0c24749230560544a3e8e8b577f61d after all checks passed, including the full durable job: https://github.com/LyraCoreProject/LyraCore/actions/runs/34229150494/job/102070610422",
"Final Package checks against merged core main passed, including all 16 durable fixtures in 167.90 seconds. Package #25 merged as 5724de1660a2628e88320914bdd5abb0c69da517. CI: https://github.com/LyraCoreProject/packages/actions/runs/34230810246/job/102076215519"
],
"notes": [
"The implementer owns the isolated core and Package worktrees and the serialized build slot. The orchestrator owns independent review and merge order.",
"One helper owns the two navigation files in an isolated core worktree. The tracer owner integrates that commit with casts, actor operations, Package changes, durable fixtures, and PRs."
],
"acceptance_evidence": []
"All eight source acceptance criteria have reviewed evidence. Core #482 and Package #25 are merged.",
"Package CI was restored to core main after the core merge. All final checks passed before the Package merge.",
"Both full CodeRabbit reviews completed. The repeated-setup finding is fixed; the core CI coverage question is resolved by the paired Package durable job. Final incremental automated review was rate limited. Independent review covered the final fixture changes. All core checks passed.",
"The flat observation row remains intentional for SQL diagnosis. Action-specific request functions and a private recorder own production writes; PB-002 owns typed runner candidates and foreground control.",
"The nullable quest-credit initialization fixture preserves an existing stall. A full older-Wasm upgrade was not claimed. The new Package schema remains subject to the repository human review requirement before shipping."
],
"acceptance_evidence": [
{
"criterion": "The fixture records pinned core and Package commits plus the actual content and geometry input revisions, labels seeded and client-derived provenance separately, records unavailable inputs, and reproduces the same initial state and outcome.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"All 16 final CI input records name clean core fe9caef6eb0d132c45a5d151827ab6fe64925f79 and GitHub tested Package merge 744732b50cc8135d3a06e598e07e26aa8633a434, whose parents are main c32b2fb and reviewed Package c97464f6be211525a3b36a2ee3824cf259edbdd1. Content is playerbots-seeded-actions-v1; geometry is playerbots-synthetic-nav-v1. Imported content and client geometry are explicitly unavailable.",
"CI Module BLAKE3: a4e921d874c49ada97f9893b4c9b41847ffdb994c670dcd3ea5673f0fab466fd. Package BLAKE3: 1b4de3cdafc56407264c216a3accda917117277914b2deffb4fbd0c3efaf29f6. The local focused Module has a different installed inventory; byte equality across those builds is not claimed.",
"Input manifest: https://github.com/LyraCoreProject/packages/blob/c97464f6be211525a3b36a2ee3824cf259edbdd1/playerbots/fixtures/actions.json",
"CI input and outcome artifacts: https://github.com/LyraCoreProject/packages/actions/runs/34229152446",
"The final run against merged core be3fa67d also records 16 clean input and outcome pairs. Tested Package merge b451105562bbb5deab45ceff9919b9e002aa240d has parents c32b2fb and reviewed head 0781d7e5. Module and Package identities match the preceding CI run. Artifacts: https://github.com/LyraCoreProject/packages/actions/runs/34230810246"
]
},
{
"criterion": "The fixture loads and runs the real Module with the real Package; it does not substitute a simulated gameplay engine.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"The local fixture passed all 16 cases through compiled Module Wasm, the real Package, and private SpacetimeDB 2.7.1 Standalone nodes. The final CI run below also includes the later repeated-setup checks.",
"The same behavior passed in Package CI: https://github.com/LyraCoreProject/packages/actions/runs/34226546164/job/102061988209",
"Final fixture changes also passed all 16 cases in 166.26 seconds: https://github.com/LyraCoreProject/packages/actions/runs/34229152446/job/102070649535",
"The same 16 fixtures passed against merged core main before the Package merge: https://github.com/LyraCoreProject/packages/actions/runs/34230810246/job/102076215519"
]
},
{
"criterion": "Attack acceptance is distinct from damage and quest progress, and an attempted attack with no hit cannot clear a quest progress clock.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"playerbots_an_accepted_attack_without_a_hit_does_not_clear_quest_stall observes accepted engagement, full target health, zero quest credit, and an unchanged stall clock behind a synthetic wall. Its positive phase uses the real lethal-hit pipeline to award credit; it does not claim that the bot hit through the wall.",
"https://github.com/LyraCoreProject/LyraCore/blob/fe9caef6eb0d132c45a5d151827ab6fe64925f79/module/tests/playerbots_rewrite.rs"
]
},
{
"criterion": "Movement reports complete, safe partial, blocked, or explicit unknown-coverage evidence with route or waypoint advancement where applicable.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"The complete-route and partial-route cases distinguish a proposed leg from observed arrival, retain a waypoint and search-work count, and record Unknown coverage. The blocked-target case holds position. Shared navigation tests passed 34 cases; VerifiedCells only attests consulted derived rows.",
"https://github.com/LyraCoreProject/LyraCore/blob/fe9caef6eb0d132c45a5d151827ab6fe64925f79/module/tests/playerbots_rewrite.rs"
]
},
{
"criterion": "Interaction and cast-start return typed success, waiting, Refusal, cancellation, and expiry outcomes supported by their owning operations.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"The fixture covers typed cast start/wait/resolve/refusal/cancel/expire outcomes, synchronous quest completion/refusal, full-inventory and invalid-choice atomicity, source-item refusal, and dead-attacker refusal. All 16 final cases passed.",
"https://github.com/LyraCoreProject/LyraCore/blob/fe9caef6eb0d132c45a5d151827ab6fe64925f79/module/tests/playerbots_rewrite.rs"
]
},
{
"criterion": "A long bot cast uses the normal core cast lifecycle and completes once without restart on later decision ticks.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"playerbots_a_long_bot_cast_waits_for_core_completion retains one five-second cast through repeated requests and normal decision ticks, observes one START and one GO, and verifies the heal. The owning begin operation returns its exact result directly.",
"https://github.com/LyraCoreProject/LyraCore/blob/fe9caef6eb0d132c45a5d151827ab6fe64925f79/module/tests/playerbots_rewrite.rs"
]
},
{
"criterion": "The blocked target and poor-range heal cases have reproducible inputs, observed outcomes, and enough evidence to compare later runner behavior.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"The blocked-target scenario and playerbots_an_out_of_range_heal_reports_the_owning_cast_gate record reproducible inputs and typed observations. The poor-range target starts at x=1400 while the bot starts at x=1200. Actions retain target, route, clipping, coverage, cast identity, and Refusal.",
"https://github.com/LyraCoreProject/LyraCore/blob/fe9caef6eb0d132c45a5d151827ab6fe64925f79/module/tests/playerbots_rewrite.rs"
]
},
{
"criterion": "A written extraction comparison chooses the smaller total implementation and records why the full AzerothCore runtime is not used.",
"reviewer": "Codex orchestrator with independent GPT-6 Astra Spec review",
"evidence": [
"The extraction comparison in the Package README chooses typed Rust decisions and existing Module operations. It compares the 2,967-line selection-kernel inventory with the 243,560-line C++ runtime and records host-pointer, packet, and WotLK dependencies. https://github.com/LyraCoreProject/packages/blob/c97464f6be211525a3b36a2ee3824cf259edbdd1/playerbots/README.md",
"https://github.com/LyraCoreProject/LyraCore/pull/482#issuecomment-5585257477"
]
}
]
},
{
"id": "PB-002",
Expand All @@ -194,16 +287,20 @@
"model": "gpt-6-astra",
"effort": "high",
"estimated_tokens": 180000,
"status": "ready",
"status": "implementing",
"repo_scope": [
"Official Package Collection decision and durable state",
"LyraCore Module scheduling and diagnostics",
"Pure decision and durable integration tests"
],
"owner": "Unassigned",
"owner": "PB-002 implementer",
"prs": [],
"evidence": [],
"notes": [],
"notes": [
"SpacetimeDB 2.7.1 allows appended enum variants only when old variants stay compatible and storage size and alignment stay unchanged. Prove populated-state migration for the runner schema. Planner source: https://github.com/clockworklabs/SpacetimeDB/blob/v2.7.1/crates/schema/src/auto_migrate.rs#L826-L895",
"Direct damage can delay a pending cast while retaining its scheduled identity. Observe its current due time before deciding that completion is late; the objective deadline is a separate policy limit.",
"Record-only means no gameplay actions from either runner for the selected bot. Freeze must stop retained foreground work. Verify both through the normal Package tick entry."
],
"acceptance_evidence": []
},
{
Expand Down Expand Up @@ -236,7 +333,8 @@
"prs": [],
"evidence": [],
"notes": [
"PB-001 found no existing line-of-sight Gate in targeted cast admission. Add the appropriate shared Gate with supported exemptions and client/bot parity coverage so the movement prerequisite responds to a real typed Refusal. Channel actions remain unsupported until their running lifecycle is correlated."
"PB-001 found no existing line-of-sight Gate in targeted cast admission. Add the appropriate shared Gate with supported exemptions and client/bot parity coverage so the movement prerequisite responds to a real typed Refusal. Channel actions remain unsupported until their running lifecycle is correlated.",
"The historical Actor cast bypasses the player spellbook check. PB-003 owns the appropriate shared Gate for the new runner and must coordinate with provisioning in PB-005. An unlearned heal must refuse without cast, power, or cooldown changes."
],
"acceptance_evidence": []
},
Expand Down Expand Up @@ -555,6 +653,6 @@
"observations": {}
}
],
"updated_at": "2026-09-08 11:19 UTC",
"summary": "PB-001 reproduced the immediate-heal defect and passed the first real timed-cast fixture. Cast and navigation work is underway. The report PR passed independent review; imported-world and client acceptance remain pending."
"updated_at": "2026-09-08 13:20 UTC",
"summary": "PB-001 is complete. Core #482 and Package #25 are merged with reviewed evidence for all eight criteria and passing final CI. PB-002 is implementing the durable decision runner. One of 12 implementation tickets is complete; imported-world and attended-client release evidence remains pending."
}
Loading