Skip to content

Releases: ApocDev/pyops

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 17:43
902c223

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)
  • **...
Read more

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 13:44
626ed78

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 autofill setting 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 old autofill_payback key is ignored. chooseModuleFill is replaced by the pure pickAutoModules.

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

  • app: bound the solve query cache to 30s (bc46cfe)
  • planner: batch the module-suggestion pool to one scan per solve (60d49d5), closes #117

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 04:20
9a3ca92

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...
Read more

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 23:18
bd7f4c9

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)

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 01 Jul 13:53
1a8f804

0.4.5 (2026-07-01)

Bug Fixes

  • app: return an empty icon manifest before the first data sync (#65) (b34cc42)

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 01 Jul 13:31
55f5926

0.4.4 (2026-07-01)

Bug Fixes

  • desktop: use the built-in updater/process plugins (fixes the ACL dead end) (#63) (fdc9800)

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 01 Jul 02:58
a047e00

0.4.3 (2026-07-01)

Bug Fixes

  • desktop: kill the node sidecar before self-update restart (#61) (5b502e5)

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 01 Jul 02:47
c691515

0.4.2 (2026-07-01)

Bug Fixes

  • desktop: correct the updater capability URL pattern (#59) (1680dc1)

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 01 Jul 02:16
39842e1

0.4.1 (2026-07-01)

Bug Fixes

  • desktop: grant the localhost webview IPC access so the updater works (#57) (fd1bcca)

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 01:53
99dacd8

0.4.0 (2026-07-01)

Features

  • desktop: show the release date in the update dialog (#55) (63135f7)