You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Contextual resupply / repair action packages for a specific base — the v1.4.0 "Resupply & Repair" theme. Spec: project-context/apxm/specs/v1.4-resupply-repair.md.
Goal. From a base's BURN or REPAIR detail sheet, get the needed materials bought and onto a ship with minimal taps. Every commit is the user's own (HARD RULE). Ship sending stays the existing SendShipView feature and is not part of a package.
Entry point. Header action button on the base detail sheet (BURN → RESUPPLY, REPAIR → REPAIR), modelled on ContractTerminateButton. The runner opens through detailView; no new tab or navigation mechanism.
Package shapes.
RESUPPLY(site, days, exchange, ship?) — bill per ticker = ceil(max(0, days × dailyBurn − (store + warehouse + remainingAllocation))); buy = bill − CX-warehouse stock at exchange (one CXPO_BUY step per ticker with qty > 0); then MTRA CX-warehouse → ship if a ship is chosen.
REPAIR(site, exchange, ship?, horizon = now | 24h | 48h) — bill = Σ Platform.repairMaterials[horizon] over PRODUCTION/RESOURCES buildings − (store + warehouse); buy/move as above.
Rules.
No ship docked at the exchange must not break the flow: buy-only is a valid outcome. Rerunning later with a ship present buys nothing (netted) and just transfers.
Netting subtracts base STORE + base WAREHOUSE, then CX-warehouse stock. This is a purchasing rule; the burn-days rule still counts STORE only. Deviates from rPrun/fork (which do not net the repair bill) — documented with credit.
Repair quantities come from the server-authoritative repairMaterials fields on SITE_SITES (the BRA figure), not the fork's age/180 proration. FIO-only sites are gated off (FIO cannot distinguish building types).
Staleness: preview shows the data-source badge; EXECUTE is disabled past the staleness threshold with the reason.
Execution dial: manual per commit (default) — each step waits for the user's ACT tap and any APEX confirmation overlay is revealed for the user to confirm. settings.autoConfirm gets a Settings toggle only after the manual path is device-proven. Timed / all-at-once modes are out of scope for this release.
Contextual resupply / repair action packages for a specific base — the v1.4.0 "Resupply & Repair" theme. Spec:
project-context/apxm/specs/v1.4-resupply-repair.md.Goal. From a base's BURN or REPAIR detail sheet, get the needed materials bought and onto a ship with minimal taps. Every commit is the user's own (HARD RULE). Ship sending stays the existing
SendShipViewfeature and is not part of a package.Entry point. Header action button on the base detail sheet (BURN → RESUPPLY, REPAIR → REPAIR), modelled on
ContractTerminateButton. The runner opens throughdetailView; no new tab or navigation mechanism.Package shapes.
ceil(max(0, days × dailyBurn − (store + warehouse + remainingAllocation))); buy = bill − CX-warehouse stock atexchange(one CXPO_BUY step per ticker with qty > 0); then MTRA CX-warehouse → ship if a ship is chosen.Platform.repairMaterials[horizon]over PRODUCTION/RESOURCES buildings − (store + warehouse); buy/move as above.Rules.
repairMaterialsfields onSITE_SITES(the BRA figure), not the fork's age/180 proration. FIO-only sites are gated off (FIO cannot distinguish building types).settings.autoConfirmgets a Settings toggle only after the manual path is device-proven. Timed / all-at-once modes are out of scope for this release.PR plan.
#containerlock across buffer-refresh and the step machine; single disabled-button detection shared bylib/act/apex-button.tsandcontract-actions.ts.autoConfirmSettings toggle.Deferred. Ship-move step in packages (
OPEN_SFCstub stays), timed/all-at-once modes, #31 extraction.Engine ported from refined-prun (MIT, Dan Pavlides) via jackinabox86's fork (https://github.com/jackinabox86/APXM); the transient-package model mirrors refined-prun PR #204 by @jackinabox86. The preview's storage-fit line follows refined-prun PR #206 by @erendrake; the CX Buy
isTrustedguard follows refined-prun PR #199 by @raylu. Credit all in the PRs and CHANGELOG.