Releases: ApocDev/pyops
Releases · ApocDev/pyops
Release list
v1.2.0
1.2.0 (2026-07-14)
Features
- app: add "Apply all" whole-factory re-balance to what-if (8468486)
- app: add Alt-click recipe explorer (66c2992)
- app: declutter the UI — controls first, explanation on demand (0b30851)
- app: redesign home and navigation (a06ff06), closes #145 #146
- app: strengthen overlay separation and add segmented/info-hint primitives (7e52675)
- app: suppress native context menu (df778e7)
- app: surface Launch Factorio on the home page (ee997b2)
- app: sushi planner for block belt loops (eda5146)
- block: add best recipe goal shortcut (8a4306e)
- block: copy and paste goals (075d1fb)
- block: extract recipe rows into supplier blocks (5b1ad4d)
- block: extract recipe rows into supplier blocks (38a262b), closes #133
- block: flag imports without enabled suppliers (0de20f0)
- block: model incidental spoilage as byproduct (3230f30)
- block: reorder goals with drag handles (fb3de95)
- blocks: create blocks directly in folders (f6a8b03)
- block: show loading-fit building counts (5e29ee9)
- bridge: deliver app-built blueprints to the game cursor (2ba8559)
- bridge: refresh built machines automatically (9463820)
- factory: replace balance loop with pinned goal solver (cee1822)
- mod: in-game sushi-loop tracer (ALT+B) (117264d)
- planner: add factory supply priorities (0446569)
- planner: add supply priority controls (d071a7d)
- scenario: balance factory iteratively (c4c7435), closes #147
- solver: explain infeasible material balances (3fed877)
- solver: prioritize factory supply allocation (0ae6441)
Bug Fixes
- app: clarify generator output and availability (734dd6d)
- app: hide excluded module and beacon choices (4d8cdd7)
- app: improve factory scenario readability (eea1b59)
- app: keep recipe chance visible in hover cards (8d56880)
- app: show fluid fuel recipe icons (2bee180)
- app: suppress root theme hydration warning (aa9a323)
- app: tighten block-balance chips (ee2af23)
- app: treat sub-1% what-if scale deltas as balanced (7cc5a1c)
- block: align goals to widest content (e9854aa)
- block: align spoilage with recipe rate (1779c95)
- block: allow secondary consume goals (7682313)
- block: distinguish consume goals from imports (62d7a49)
- block: drain selected byproduct consumers (225fd2c)
- block: flag recipes with spoilable products (df17962)
- block: give stock goals a stable two-line layout (a537c8e)
- block: keep import status inside flow chips (e71a29f)
- block: order imports by relevance (056d06a)
- block: process cyclic surplus into sink goals (21c2f06)
- block: rank unlocked recipes before horizon choices (040e690)
- block: send solve payloads via post (821d2fd), closes #153
- block: show spoil times on recipe products (7a03727)
- block: size goal and flow columns to content (e17e646)
- block: wrap balance flows without track overflow (2ee282a)
- bridge: sync exact productivity bonuses (7442319), closes #112
- bridge: update bridge version to 4 and handle transient UDP delivery errors (d12cada)
- data: restore TURD master detection (48a8c13), closes #143
- data: support Factorio 2.1 prototype dumps (26862d1)
- db: keep project state in SQLite (3b5d6ab)
- db: serialize overlapping undo actions (a637bc9)
- db: track solve projection generations (9581ce3)
- dev: ignore Nitro proxy resets (b2a3a82)
- dev: suppress aborted hot reload resets (d9fe23a)
- mod: give the top button a slot style and crisp logo (43b13f8)
- mod: use pyops logo for mod icons (7c34538)
- mod: use pyops logo for mod icons (001d40e)
- planner: link feedback byproduct consumers (39bf86f)
- scenario: prevent sink feedback from ratcheting goals (4cdb043)
- scenario: rebalance individual block goals (8c8ba4d)
- solver: derive rates from stock goals (ae593be)
- solver: honor sinks and explain scenario failures (d3ce2df)
- **...
v1.1.0
1.1.0 (2026-07-07)
⚠ BREAKING CHANGES
- planner: modules are no longer applied automatically. Rows that relied on ambient auto-fill show empty fills (with the hint) until applied — the block toolbar's sparkle button restores them in one click. The
autofillsetting now only controls hint visibility. - planner: the payback-window setting is gone; module auto-fill is now a plain on/off toggle (meta key
autofill, ON by default — previously payback 0 meant off). The oldautofill_paybackkey is ignored.chooseModuleFillis replaced by the purepickAutoModules.
Features
- add support for Vitest in Vite config and enhance AI assistant documentation (0e40a08)
- agent: add blockBuildStatus tool for built-vs-required machines (334cdde), closes #123
- agent: add factory-wide power rollup tool (e3dad05), closes #129
- agent: add logisticsFor tool for belts/inserters at a rate (34bac86), closes #126
- agent: add productionStats tool for synced production stats (d9fa963), closes #124
- agent: add read-only listNotes tool for planning context (53c8173), closes #128
- agent: add researchPath tool for prerequisite closure + science cost (bf0b407), closes #125
- agent: chip technology names too; steer the assistant off Lua for recipe data (0949f01)
- agent: expose factoryWhatIf as a whatIf tool (f8e7655), closes #127
- agent: implement building counts in draft and aggregate machine requirements (00d6b32)
- agent: multi-goal + keep-in-stock goals, and module-fill the building bill (b8f7102)
- agent: resolve recipeOptions' machine to the actual draft pick (86bdc36), closes #130
- app: inline click-to-fix building count with color tint, no badge (3fc1e8f), closes #121
- app: show the heat draw (MW) on heat-powered rows, not just a label (16057f9)
- planner: count pin on a goal's producer supply-pushes instead of fighting the goal (e2ff2ab), closes #121
- planner: module auto-fill becomes suggest + explicit apply (fdd43ca)
- planner: replace payback-economy module auto-fill with the direct algorithm (37b47ba)
- ui: add styled Tooltip primitive, replace native title for explanatory text (6197c83)
Bug Fixes
- agent: address review findings in assistant tool batch (7fca79c)
- app: a sink goal caches the consumed good once, not a duplicate import (e9bd2fb)
- app: a sink goal is met by a consumer, not a producer — no false 'no recipe' warning (46d3d95)
- app: classify factory imbalances by a relative floor, not an absolute epsilon (cc4774a)
- app: gate recipe availability on a tech's full prerequisite closure, not its own cost (e18679d)
- app: size row inserters per built machine, not per fractional machine (cce110a), closes #21
- bridge: stop gating the in-game logistics readout on web display prefs (8d4fc4f), closes #21
- mod: make the summary panel's blueprint a temporary cursor stack (ecc5292)
- planner: drain a byproduct when its consumer is a terminal sink (278edb1), closes #91
- planner: hold module suggestions steady near whole-count boundaries (b1881c7), closes #117
- planner: module auto-fill considers ZERO speed modules (c112097)
- solver: byproduct consumers no longer let the plan import-and-restructure (138c27e), closes #91
- test: type the sink-goal test's block data as saveBlockRow expects (62f990d)
Performance Improvements
v1.0.0
1.0.0 (2026-07-04)
⚠ BREAKING CHANGES
- solver: delete the v1 least-squares solver
- solver: switch the block solve to the v2 LP and the gesture-derived model
Features
- agent: factory-wide coherence audit tool with byproduct disposal verdicts (e13e9c3), closes #11
- agent: per-call approval gate for in-game Lua eval (94b805b), closes #15
- agent: report Claude's 1M context window (GA, no beta header) (c8eda96), closes #72
- agent: reviseBlock can propose recipe-set changes, not just rate (82b7fbd), closes #12
- app: add a sankey/flow view of a solved block's material flow (95d8627), closes #101
- app: add Ctrl+K / '/' command palette (ed95330), closes #78
- app: add global hotkey layer (registry + useHotkey) (ba1ec06), closes #78
- app: add shared toast primitive (queue store + Toaster) (975339c), closes #90
- app: add the dependency explorer page (256932b), closes #100
- app: block snapshots — per-block history, restore, and diff (004a364), closes #85
- app: consistent destructive actions — confirm dialogs + undo toasts (2eac32a), closes #83
- app: light/dark/system theme toggle (#107) (3c00b92)
- app: make PageHeader sticky on scroll (8a45d04), closes #106
- app: match fluid-fuel MJ block-to-block with explicit suppliers (bedf551), closes #115
- app: module templates — icons, compatibility filtering, defaults (0da8069), closes #99
- app: move the factory Machines card onto the sortable-table engine (588620d), closes #80
- app: palette goods search, recents, and the shortcut help sheet (f2e43a7), closes #78
- app: power units for energy rates — 5TW in, '5 GW' out (3d776ed)
- app: project backup and shareable block/plan JSON (#82) (7cfedca)
- app: rank a good's producers/consumers in the browse explorer (5c743cf), closes #97
- app: replace project-create prompt with a real dialog (52be241), closes #84
- app: share one filtered-list primitive across the filterable pages (cd18c65), closes #87
- app: shared query/route error + loading convention (ea1c1f6), closes #81
- app: show fluid temperatures on the recipe-grid chips (bceea15), closes #110
- app: trigger-based undo log with grouped actions and undoLast (08f7374), closes #90
- app: undo UI — Ctrl+Z, nav affordance, editor rehydration (88dbc6e), closes #90
- app: warn when pending db migrations need a restart (d9ac1d4), closes #75
- assistant: one-click follow-up chips on draft and plan cards (25138ad), closes #13
- assistant: push a created block in-game from draft and plan cards (8b29d11), closes #14
- db: synthesize planting and rocket-launch recipes (09bd667), closes #96
- planner: fungible fluid-fuel energy pool (pyops-fluid-fuel) (db7d65a), closes #25
- planner: model temperature-fed fluid energy sources (701fcb8), closes #114
- solver: apply research-driven productivity bonuses (54972ba), closes #92
- solver: fluid temperatures as real identities with range pooling (708a9e0), closes #110
- solver: model reactor neighbour bonus in heat generation (315c25f), closes #94
- solver: sub-blocks v2 — real composition (composed modules) (d675257), closes #76
- solver: switch the block solve to the v2 LP and the gesture-derived model (21a6599), closes #91
- solver: v1 dispositions → v2 made-set migration mapping (0da625d), closes #91
- solver: v2 LP core (HiGHS) and IIS root-cause diagnosis (f22a576), closes #91
- solver: warn per producer on fluid-temperature mismatches (fce65cf), closes #110
- solver: whole-machine mode (MIP), pin editor UI, and cached diagnosis (6e0ba70), closes #98 #91
Bug Fixes
- app: declare @tanstack/store as a direct dependency (40065c9)
- app: split block-solve display names into recipe and good namespaces (34eb72a), closes #113
- app: stop the rate formatter eating integer trailing zeros — (3d776ed)
- solver: a made mark with no producer imports silently, not a nag (51cf62f), closes #91
- solver: drop phantom dust flows; remove whole-machine mode; purge issue #s from UI ([e26f6dc](https://github.com/ApocDev...
v0.5.0
0.5.0 (2026-07-02)
Features
- agent: expose module-slot rules and add a what-if recipe calculator (83cfd66)
- app: adaptive number precision with a compact-numbers toggle (c0fcb87), closes #74
- app: add a Launch Factorio button to the Live bridge card (40b4c9f)
- app: add Callout, Button toggle variant, FieldLabel (d00af1b), closes #17
- app: add Checkbox and DropdownMenu primitives (45158de), closes #17
- app: add responsive Dialog primitive (deee6d3), closes #17
- app: custom block icons; first goal is just the default icon (2ad9d87), closes #40
- app: enable/disable recipes in a block and whole blocks (86120e9), closes #73
- app: enforce design-system defaults in the base layer (dadca09), closes #17
- app: flag recipes not used by a block's goal (1ece93f)
- app: give every icon a rich hover card instead of a native title (9a0e9a5)
- app: migrate Assistant page to the design system (9d50b54), closes #17
- app: migrate block editor to the design system (ad6acb3), closes #17
- app: migrate block rail, landing, recipe card and modules modal (2c61ff5), closes #17
- app: migrate Browse page to the design system (8a2cbbe), closes #17
- app: migrate Coherence page to the design system (2feeda0), closes #17
- app: migrate Factory page to the design system (b40516b), closes #17
- app: migrate home page to the design system (e985018), closes #17
- app: migrate nav shell and shared widgets to the design system (c50666f), closes #17
- app: migrate Settings page to the design system (20a7b43), closes #17
- app: migrate Tasks page to the design system (5cbfa7b), closes #17
- app: migrate TURD page to the design system (356382f), closes #17
- app: migrate What-if page to the design system (0d85cfd), closes #17
- app: per-goal rate windows (/s, /min, /h) and a very-low-rate warning (8f8551a), closes #10 #38
- app: sortable, collapsible factory sections with %-met severity (fe76d21), closes #77
- app: sub-blocks — collapse a recipe chain into a named group (3d1a509), closes #7
- gate the TURD tab on data presence (mod-agnostic step 1) (#69) (a531dc7), closes #68
- mod: auto-detect the udp bridge and drop the enable toggle (37193d3)
- planner: incidental-spoil risk flag and planned spoil losses (bd5aa05), closes #20
- planner: keep-in-stock goals with a refill window (5e5300d), closes #38
- planner: pollution budget per block, rolled up factory-wide (d51aaa1), closes #23
- planner: show the storage buffer a spoiling step needs (79514b0), closes #19
- solver: pin goal-unreachable recipes to 0 instead of failing the block (3e7438d)
- turd: show what each choice changes + recipe-comparison diffs (#70) (88e4fec)
Bug Fixes
- agent: report the real context window instead of the 128k fallback (870df25)
- app: drop item hover cards from block nav icons (8eac33f)
- app: give context-menu icons room to breathe (891dc4b)
- app: navigate outside the setState updater when closing a block tab (e14d82a)
- app: theme the scrollbars (1eab688)
- app: tokenize the last palette stragglers (8c5136e), closes #17
- assistant: pin the sidebar and composer, scroll only the messages (5f13063)