Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
134 lines
11 KiB
JSON
134 lines
11 KiB
JSON
{
|
|
"status": "Final corrected target review completed; source-only approval and focused independent tests passed.",
|
|
"findings": [
|
|
{
|
|
"source": "ERR_HQ.c:354-365",
|
|
"constraint": "ReserveLogistics checks Eligible/radio/Assignment/PendingOrder/Downlink/Waypoint but not explicit HomeGuard/Task/PendingTask. Depot admission must require original mobile responder, no stale or pending task, same original physical roster and no combat."
|
|
},
|
|
{
|
|
"source": "ERR_HQ.c:1564-1570",
|
|
"constraint": "PlanResupply and Assign run before mortar Tick. New lower-priority depot admission should run after existing planners/maintenance, not steal idle mortar crew before its due delivered request is admitted."
|
|
},
|
|
{
|
|
"source": "ERR_HQ.c:1581-1613; ERR_InfantrySupplyPool.c:30-43",
|
|
"constraint": "Only retained m_Resupply pool is polled after HQ Stop. New accepted-unknown depot moves must participate in that Unresolved/Stop/Tick path or exact equivalent; no new operations after Stop, original mode+command guards retained."
|
|
},
|
|
{
|
|
"source": "ERR_InfantryResupply.c:429-450",
|
|
"constraint": "Use original delivered truck report for planning; after hold delivery verify physical stop and request fresh status, then require ObservedAt>=HeldAt before selecting reported rendezvous. Never replace report coordinates with current truck origin at HQ planning."
|
|
},
|
|
{
|
|
"source": "ERR_SupplyConvoyColumn.c:146-168",
|
|
"constraint": "SupplyHeld on one vehicle causes whole-column hold. Fixed deadline and exact-token cleanup are gameplay-critical; unknown accepted inventory work may legitimately keep quarantine."
|
|
},
|
|
{
|
|
"source": "ERR_HQ.c:382-387",
|
|
"constraint": "ReserveMountedLogistics requires two original CONVOY groups and narrow mounted token range, unsuitable for camp porter. Foot group and exact original truck claim must be atomic without weakening existing mounted eligibility."
|
|
},
|
|
{
|
|
"source": "ERR_InfantryResupply.c:40-41,199,289; ERR_FiniteMagazineReservation.c:16-53",
|
|
"constraint": "All trucks share source depot claim; keep depot spent/attempted separate from truck outgoing spent. Proven successful import appends once to same m_Stock array shared by mounted controller, never replaces array or resets old m_Spent; retain original96 caps."
|
|
},
|
|
{
|
|
"source": "ERR_InfantryResupply.c:205,284-290",
|
|
"constraint": "Idle State alone is insufficient: reject every unresolved native leaf, active mounted controller, m_Move/m_MineMove, SupplyToken, pending combat/downlink; physical transfer admission can continue after stopped mode only for cleanup proof."
|
|
}
|
|
],
|
|
"required_adversarial_tests": [
|
|
"Fresh old report plus moving truck does not use live position; no porter movement before post-hold delivered status",
|
|
"Existing mortar/infantry/mounted claims beat depot admission; foreign replacement token never cleared",
|
|
"Two truck attempts cannot claim one source identity; late callback does not refund/retry/import twice",
|
|
"Stop retains strong callbacks and registered polling until exact custody/deletion proof; restart command mismatch cannot start or mutate new-round work",
|
|
"Successful second leg only appends original proved item to existing shared stock and preserves all prior spent identities"
|
|
],
|
|
"draft_review": {
|
|
"status": "Initial complete controller/HQ draft read; one concrete doctrine blocker reported to author/root; focused tests pending author readiness.",
|
|
"files": [
|
|
{
|
|
"path": "/home/jakub/devel/escapistsrereintroduced/.build/ground-depot-0303/addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c",
|
|
"sha256": "fc27216bed042510f7d91955ce6ed838dbdc68503ca026ddcca455806885b42a"
|
|
},
|
|
{
|
|
"path": "/home/jakub/devel/escapistsrereintroduced/.build/ground-depot-0303/addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c",
|
|
"sha256": "82618a670efd20f35a332d7a96d1c55ef5d4889ef4e07c78985be6b2d1df5f48"
|
|
},
|
|
{
|
|
"path": "/home/jakub/devel/escapistsrereintroduced/.build/ground-depot-0303/addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c",
|
|
"sha256": "e934bce13da4136369be0dd993363760747d3514d935e468b77aaea163c4795f"
|
|
},
|
|
{
|
|
"path": "/home/jakub/devel/escapistsrereintroduced/.build/ground-depot-0303/addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c",
|
|
"sha256": "5bdbe583e4c44fc1c32f447f705ee51eceb2497da33a7a1d8c44dfafcca4485a"
|
|
}
|
|
],
|
|
"blocker": "DepotAvailable checks idle/caps only, allowing initially full trucks to consume camp stock until96. Add admission-only known-depletion demand; do not put deficit into maintenance Valid that becomes false immediately after successful import.",
|
|
"verified_source_boundaries": [
|
|
"Post-super admission gives existing planners/maintenance priority",
|
|
"Pre-super Stop and own guarded terminal poll retain callback leaves; exact strong unit refs permit cleanup after base roster clear",
|
|
"Distinct300001..300096 token range; exact-token release refuses foreign replacement claims",
|
|
"Truck hold is delivered before stop; subsequent fresh status ObservedAt>=HeldAt gates porter downlink",
|
|
"Magazine !IsUsed is revalidated by both leaves before native submission",
|
|
"Shared source attempted identities and distinct target outgoing stock/spent; target array append preserves mounted shared reference"
|
|
],
|
|
"limits": "No native compile/walking/storage delivery/replication proof. Doctrine blocker fix and actual-method final tests not yet reviewed."
|
|
},
|
|
"final_review": {
|
|
"status": "Approved bounded source integration; no remaining concrete blocker found. Native walking/loading and multiplayer not qualified by this review.",
|
|
"target_matches_proposal_manifest": true,
|
|
"hashes": {
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "9bd0824995d3e08cdb2745f1cb539ddd27e422509814188ea6ab2ba56631e7cd",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "5786e9858b10700c3c11682116534cf2c71576d3ba84341d960dfb194b75c2c1",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "36da884a833e7a29743308490a3ce5ae299f7a451d87205a227163892aca4ed0",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "4a440b3bd9ea52d6bc9ee82061d072ff679e635e58fcc47c04ce52a0b6dc4e8b",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "bcd7530f9a47eeac9e80a031773b27d0f866c4766bafe5f8957570d4e062a8d0",
|
|
"tests/test_ground_depot_lifecycle.py": "927a6f15560e177c838322e18ef555ce7db3acde0651d1a43353a2c6e805f3a8",
|
|
"tests/test_ground_depot_loading.py": "61b31dc3c2a6cf6bf0aef67fe3ec92b4b2d51ee93fe47e7cc8dc77f2235747af"
|
|
},
|
|
"independent_tests": [
|
|
{
|
|
"test": "test_ground_depot_loading.py",
|
|
"exit_code": 0,
|
|
"log": "/home/jakub/devel/escapistsrereintroduced/.build/ground-depot-review-0303/test_ground_depot_loading.py.log",
|
|
"log_sha256": "b03dfce8159ad1dc55a66bf9a35c54c57c91e1f066865e18c3070ecdfca5f50d"
|
|
},
|
|
{
|
|
"test": "test_ground_depot_lifecycle.py",
|
|
"exit_code": 0,
|
|
"log": "/home/jakub/devel/escapistsrereintroduced/.build/ground-depot-review-0303/test_ground_depot_lifecycle.py.log",
|
|
"log_sha256": "bd1d802374adb3a8f79548092031c42afa35f851b3219519a6f9b54aa77bfa9d"
|
|
}
|
|
],
|
|
"verified_corrections": [
|
|
"DepotNeeded admission requires prior nonnull original-stock commitments exceeding depot imports; initially full stock and mine-only spent entries cannot trigger loading. Plan and atomic ReserveGroundDepot both enforce it.",
|
|
"DepotCurrent is separate from capacity/depletion: 95-to96 successful import can retain return/clearance phase; target m_Stock array and prior m_Spent preserved.",
|
|
"Native-return path rechecks sticky leaf cancellation and current owner authorization before successful result; used/loaded magazines rejected before either native submission.",
|
|
"Successful return requires within5m cache and at least6m truck separation. Deadline/ownership/combat aborts remain bounded exceptional release paths, not guaranteed clearance.",
|
|
"Post-super planning preserves existing service priority; radio hold then physically stopped post-HeldAt delivered report then porter downlink; no live player knowledge.",
|
|
"Original source/task/root/roster pinned; global source reservation, disjoint token namespace and exact-token release; stopped callback polling guarded by current mode/Command and own queued callback removal."
|
|
],
|
|
"doctrine_limit": "Known depletion is conservative finite-ledger commitment, not evidence that ammunition was fired. Deleted formerly spent identities no longer increase demand; this may suppress replenishment and does not fabricate new demand.",
|
|
"native_limit": "No engine or UI operation performed. Actual-method C++ harnesses do not establish Enforce refcount behavior, native move acceptance, path reach, departure safety on exceptional cancellation or remote replication."
|
|
},
|
|
"compile_delta_review": {
|
|
"status": "Approved narrowly scoped native compile correction; no behavioral guard/state/custody change.",
|
|
"patch": "/home/jakub/devel/escapistsrereintroduced/.build/ground-depot-compile-fix-0303/fix.patch",
|
|
"patch_sha256": "766b00225558d9d2cf38f104a7eccdc9d00e8fa78d07828b18e462ef7c181d09",
|
|
"verified": "All three changed production files exactly match prior reviewed proposal after whitespace normalization and only Managed-to-StorageManaged helper/call-site rename.",
|
|
"changed_production_hashes": {
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "8748325b0810ea053b28d0ed4c00a75fceae1c0d1cd3b30efb4dafdc397632ac",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "966068555a6724e620a2c377b98d8dc02f141466c5cdd44636f86cb1cfe9ac78",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "1946db0615130b0039b42ec80db12d9cc89b1b3ca5a7eca7d9112eb69c3bdcea"
|
|
},
|
|
"current_all_reviewed_file_hashes": {
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "9bd0824995d3e08cdb2745f1cb539ddd27e422509814188ea6ab2ba56631e7cd",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "8748325b0810ea053b28d0ed4c00a75fceae1c0d1cd3b30efb4dafdc397632ac",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "36da884a833e7a29743308490a3ce5ae299f7a451d87205a227163892aca4ed0",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "1946db0615130b0039b42ec80db12d9cc89b1b3ca5a7eca7d9112eb69c3bdcea",
|
|
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "966068555a6724e620a2c377b98d8dc02f141466c5cdd44636f86cb1cfe9ac78",
|
|
"tests/test_ground_depot_lifecycle.py": "927a6f15560e177c838322e18ef555ce7db3acde0651d1a43353a2c6e805f3a8",
|
|
"tests/test_ground_depot_loading.py": "61b31dc3c2a6cf6bf0aef67fe3ec92b4b2d51ee93fe47e7cc8dc77f2235747af"
|
|
},
|
|
"test_boundary": "No redundant tests rerun by reviewer; root rerunning focused tests, author reported four passes. Prior approval regression evidence remains retained. Native initial compile failure archived by root, no new native proof inferred."
|
|
}
|
|
}
|