Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
58 lines
3.9 KiB
Plaintext
58 lines
3.9 KiB
Plaintext
Ground depot finite loading proposal
|
|
|
|
Apply fix.patch (five production source paths, two new tests) and independently
|
|
reviewed .build/ground-depot-leaf-review-0303/tests.patch (two distinct tests).
|
|
No tracked source, index, native process or original reference was changed here.
|
|
Working/index preimages and hashes are under baseline/. New paths have null
|
|
preimages. source-hashes.json records this proposal. git apply --check passed.
|
|
|
|
Production contract:
|
|
- SiteService retains only exact startup-created OUTPOST magazine identities,
|
|
excludes escape-opening sites and objective-target stock, exposes detached
|
|
lists only after successful readiness; it never adopts later cache deposits.
|
|
- One retained HQ controller, one concurrent job, at most96 admitted attempts.
|
|
An existing idle original mobile responder carries one compatible unchanged
|
|
original magazine through two independent native inventory moves.
|
|
- Existing infantry/mounted/mine/mortar work runs first. Target admission also
|
|
needs known committed original-magazine expenditure beyond prior depot
|
|
imports. Unknown/deleted spent identities and mine expenditure do not qualify.
|
|
This is conservative attempt-ledger depletion, not an asserted live empty truck.
|
|
- Fresh delivered truck position plus a NEW post-hold delivered status is used
|
|
for dispatch. Cache coordinates are own fixed authored knowledge. No players
|
|
queried for task destination, no movement/inventory teleport, no generated stock.
|
|
- Original actor/roster/cache/inventory/task/receipt/crew/root and exact tokens
|
|
are revalidated. Authored storage anchors, distance/LOS, actual managers and
|
|
CanMove capacity gate both once-only native calls. Rounds/capacity stay fixed;
|
|
used/loaded magazines cannot be removed.
|
|
- Source attempt ledger is global to this one controller and DISTINCT from truck
|
|
outgoing spent. Pickup commits before native call. Second leg retains the same
|
|
committed handle and a one-shot claim. Separate callbacks cannot cross-ack.
|
|
- Destination imports append to the exact existing stock array; lifetime96
|
|
includes spent/deleted entries. No eviction, replacement array, refund or refill.
|
|
Continuation validity has no capacity/depletion gate, including95->96 import.
|
|
- Return completion requires near camp and >=6m actual porter/truck separation.
|
|
Deadline180s is fixed and additionally bounded by original report age.
|
|
- SupplyHeld pauses the entire six-vehicle column. Failed submitted unknown work
|
|
retains both group/truck claims and leaf callback after deadline/Stop; no late
|
|
proof can resume movement or admit new stock. Exact callback/custody proof or
|
|
deletion settles uncertainty. Owner-guarded stopped polling only removes own
|
|
timer and stops on HQ/mode replacement; destructor removes it.
|
|
|
|
Validation:
|
|
- test_ground_depot_loading.py executes actual Plan/Tick/Abort/Stop and
|
|
TransferValid/ClaimDelivery/DeliveredTo plus actual AdmitDepot. Native leaves,
|
|
movement/access and wider original identity validation are boundary doubles;
|
|
a structural check ensures Valid depends on DepotCurrent, not admission gates.
|
|
- test_ground_depot_lifecycle.py executes actual HQ Tick/Stop/poll methods.
|
|
- Independent test_ground_depot_transfer.py executes actual full native-move
|
|
leaf with callbacks and custody doubles, including inline Stop resurrection
|
|
red-before/green-after and inline owner revocation.
|
|
- Independent test_ground_depot_provenance.py executes actual startup capture,
|
|
detached accessors, admission/current/depletion predicates and reservation.
|
|
|
|
Not qualified by these model tests: native script compilation, exact ordinary
|
|
cache/vehicle action anchors, navigation/physical approach reliability, network
|
|
inventory callbacks or native successful end-to-end delivery. No engine was run.
|
|
This is opportunistic existing camp stock/team access, not a guaranteed warehouse.
|
|
Existing source camps may be exhausted, busy, far away or physically inaccessible.
|