|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [1.2.0](https://github.com/ApocDev/pyops/compare/v1.1.0...v1.2.0) (2026-07-12) |
| 4 | + |
| 5 | + |
| 6 | +### Features |
| 7 | + |
| 8 | +* **app:** add "Apply all" whole-factory re-balance to what-if ([8468486](https://github.com/ApocDev/pyops/commit/84684863031730bf9803491622038688b71dda20)) |
| 9 | +* **app:** add Alt-click recipe explorer ([66c2992](https://github.com/ApocDev/pyops/commit/66c2992f97a02b2ea6c144d1c4a164f56f6a6cc3)) |
| 10 | +* **app:** declutter the UI — controls first, explanation on demand ([0b30851](https://github.com/ApocDev/pyops/commit/0b3085110073e5b1bbf26b447aa70c99a5bae7b7)) |
| 11 | +* **app:** redesign home and navigation ([a06ff06](https://github.com/ApocDev/pyops/commit/a06ff06e64295299c302dd3b26200e177604e38f)), closes [#145](https://github.com/ApocDev/pyops/issues/145) [#146](https://github.com/ApocDev/pyops/issues/146) |
| 12 | +* **app:** strengthen overlay separation and add segmented/info-hint primitives ([7e52675](https://github.com/ApocDev/pyops/commit/7e52675d7156989ccfffd71086315ae1b50af9a3)) |
| 13 | +* **app:** suppress native context menu ([df778e7](https://github.com/ApocDev/pyops/commit/df778e7fcd611170ca527dc2d62c104694c24bbc)) |
| 14 | +* **app:** surface Launch Factorio on the home page ([ee997b2](https://github.com/ApocDev/pyops/commit/ee997b2e907ea942e77a1673f50a47f239eeb83c)) |
| 15 | +* **app:** sushi planner for block belt loops ([eda5146](https://github.com/ApocDev/pyops/commit/eda514691b9b330ab66a75c42b7fc609864c397c)) |
| 16 | +* **block:** extract recipe rows into supplier blocks ([5b1ad4d](https://github.com/ApocDev/pyops/commit/5b1ad4d084610424214f0f016ee95f130a9313b8)) |
| 17 | +* **block:** extract recipe rows into supplier blocks ([38a262b](https://github.com/ApocDev/pyops/commit/38a262bc941630d06e22a726b830a3d627cb4b2d)), closes [#133](https://github.com/ApocDev/pyops/issues/133) |
| 18 | +* **block:** model incidental spoilage as byproduct ([3230f30](https://github.com/ApocDev/pyops/commit/3230f30f19fc51c66536fc9b318b61ed248c956e)) |
| 19 | +* **bridge:** deliver app-built blueprints to the game cursor ([2ba8559](https://github.com/ApocDev/pyops/commit/2ba85596d8b5936afc9b6dd69c19363fe8972d60)) |
| 20 | +* **bridge:** refresh built machines automatically ([9463820](https://github.com/ApocDev/pyops/commit/94638200580f63150950c86431b1e76fb1c64f00)) |
| 21 | +* **mod:** in-game sushi-loop tracer (ALT+B) ([117264d](https://github.com/ApocDev/pyops/commit/117264d894521f95428e51a76f1047229882ed24)) |
| 22 | +* **planner:** add factory supply priorities ([0446569](https://github.com/ApocDev/pyops/commit/0446569e4b98c08525276e115d1590573110553c)) |
| 23 | +* **planner:** add supply priority controls ([d071a7d](https://github.com/ApocDev/pyops/commit/d071a7d2cb83598c798f55550f8ff5d122c1659d)) |
| 24 | +* **scenario:** balance factory iteratively ([c4c7435](https://github.com/ApocDev/pyops/commit/c4c74354d5510cda57ed5cb397af40f329b64385)), closes [#147](https://github.com/ApocDev/pyops/issues/147) |
| 25 | +* **solver:** prioritize factory supply allocation ([0ae6441](https://github.com/ApocDev/pyops/commit/0ae644162e1ad5c25ed86bd20402baa96bb94307)) |
| 26 | + |
| 27 | + |
| 28 | +### Bug Fixes |
| 29 | + |
| 30 | +* **app:** hide excluded module and beacon choices ([4d8cdd7](https://github.com/ApocDev/pyops/commit/4d8cdd771da6cd9d8c52a0be2471adff0e7f3de8)) |
| 31 | +* **app:** show fluid fuel recipe icons ([2bee180](https://github.com/ApocDev/pyops/commit/2bee1801e0f62c82d3ee54afc59c86eea87dff36)) |
| 32 | +* **app:** suppress root theme hydration warning ([aa9a323](https://github.com/ApocDev/pyops/commit/aa9a32383acb84a498660a2bce8885bc598e637f)) |
| 33 | +* **app:** tighten block-balance chips ([ee2af23](https://github.com/ApocDev/pyops/commit/ee2af23f7dccf541b83255ebdfc649211b3d4ce7)) |
| 34 | +* **app:** treat sub-1% what-if scale deltas as balanced ([7cc5a1c](https://github.com/ApocDev/pyops/commit/7cc5a1c3c49acd58d203f898dff594bde0645b85)) |
| 35 | +* **block:** align spoilage with recipe rate ([1779c95](https://github.com/ApocDev/pyops/commit/1779c9547775c78b8136b02c6f11b329f03a346f)) |
| 36 | +* **block:** allow secondary consume goals ([7682313](https://github.com/ApocDev/pyops/commit/7682313ac82a4ee7a4dc55c7b90b35f2bbb5633a)) |
| 37 | +* **block:** distinguish consume goals from imports ([62d7a49](https://github.com/ApocDev/pyops/commit/62d7a490330572a5ecc2483387d8d56c630d5e91)) |
| 38 | +* **block:** drain selected byproduct consumers ([225fd2c](https://github.com/ApocDev/pyops/commit/225fd2c6ca85be97e15d68d727825db2fdb908f9)) |
| 39 | +* **block:** flag recipes with spoilable products ([df17962](https://github.com/ApocDev/pyops/commit/df17962e96de0fdea0498267e45e637b302c23c2)) |
| 40 | +* **block:** order imports by relevance ([056d06a](https://github.com/ApocDev/pyops/commit/056d06a0d2e3919c157d29f081dbb617c76e561e)) |
| 41 | +* **block:** process cyclic surplus into sink goals ([21c2f06](https://github.com/ApocDev/pyops/commit/21c2f06febd428d093d60e8162f5949f47928290)) |
| 42 | +* **block:** show spoil times on recipe products ([7a03727](https://github.com/ApocDev/pyops/commit/7a037274723f75fa00829f9ee134812e23891740)) |
| 43 | +* **bridge:** sync exact productivity bonuses ([7442319](https://github.com/ApocDev/pyops/commit/744231931596ae15bb83f7ccb3be971c0b92b8e9)), closes [#112](https://github.com/ApocDev/pyops/issues/112) |
| 44 | +* **bridge:** update bridge version to 4 and handle transient UDP delivery errors ([d12cada](https://github.com/ApocDev/pyops/commit/d12cada90605b86eb7517eb1857d73df11606cd2)) |
| 45 | +* **data:** restore TURD master detection ([48a8c13](https://github.com/ApocDev/pyops/commit/48a8c138819936e8b7020d6647b051f004f81d72)), closes [#143](https://github.com/ApocDev/pyops/issues/143) |
| 46 | +* **data:** support Factorio 2.1 prototype dumps ([26862d1](https://github.com/ApocDev/pyops/commit/26862d1a72f17cca38460faea2ad868f78df8b7a)) |
| 47 | +* **db:** keep project state in SQLite ([3b5d6ab](https://github.com/ApocDev/pyops/commit/3b5d6abb6f762e35923f055f6d8cbf30733ba936)) |
| 48 | +* **db:** serialize overlapping undo actions ([a637bc9](https://github.com/ApocDev/pyops/commit/a637bc9d02581741efaa13912134c3529e70d242)) |
| 49 | +* **db:** track solve projection generations ([9581ce3](https://github.com/ApocDev/pyops/commit/9581ce3f8048fb605cc10bc16d0a2841cae5a349)) |
| 50 | +* **dev:** ignore Nitro proxy resets ([b2a3a82](https://github.com/ApocDev/pyops/commit/b2a3a82b0351a6dd1694af545863d9932a0919d3)) |
| 51 | +* **dev:** suppress aborted hot reload resets ([d9fe23a](https://github.com/ApocDev/pyops/commit/d9fe23ad70d4bde0ed656ac0983651b565158bee)) |
| 52 | +* **mod:** give the top button a slot style and crisp logo ([43b13f8](https://github.com/ApocDev/pyops/commit/43b13f8170a6f455204f326c344acb4e8805d9c9)) |
| 53 | +* **mod:** use pyops logo for mod icons ([7c34538](https://github.com/ApocDev/pyops/commit/7c34538cf7b2edbb902df2c453c3532edfbd8ffc)) |
| 54 | +* **mod:** use pyops logo for mod icons ([001d40e](https://github.com/ApocDev/pyops/commit/001d40ecc6d2cc7bc8965dc83d216a0ef9292d9e)) |
| 55 | +* **scenario:** rebalance individual block goals ([8c8ba4d](https://github.com/ApocDev/pyops/commit/8c8ba4d08087237b175e4f635d463f04a77eb382)) |
| 56 | +* **solver:** tolerate empty legacy block docs ([d69d303](https://github.com/ApocDev/pyops/commit/d69d303ef87290b35715c1c3ed239d9ec4e5152b)) |
| 57 | +* update Factorio version requirement to 2.1 in README and info.json ([3063f3c](https://github.com/ApocDev/pyops/commit/3063f3c7cffbb1f0a345a3df450610d449ba4827)) |
| 58 | +* **whatif:** preserve input focus while solving ([42eb8ad](https://github.com/ApocDev/pyops/commit/42eb8ad6d87d653ece6c843df85852a767811689)) |
| 59 | + |
| 60 | + |
| 61 | +### Performance Improvements |
| 62 | + |
| 63 | +* **agent:** avoid duplicate conversation rewrites ([df5e3b2](https://github.com/ApocDev/pyops/commit/df5e3b2e502108f64900b3563d642967dd376fee)) |
| 64 | +* **agent:** batch recipe option enrichment ([17d01ca](https://github.com/ApocDev/pyops/commit/17d01caf16cf47cb505ddd76fed351e41a51c77c)) |
| 65 | +* **app:** batch item availability lookups ([e6012f5](https://github.com/ApocDev/pyops/commit/e6012f51f8baf817010756b2fe672342c9af13e0)) |
| 66 | +* **app:** consolidate recurring status queries ([80fca58](https://github.com/ApocDev/pyops/commit/80fca58a8ef5f2f43e77b6a8b378933286ae207e)) |
| 67 | +* **block:** batch solve reference lookups ([8939bdc](https://github.com/ApocDev/pyops/commit/8939bdcbfca97564afb04214685d993889df9a62)) |
| 68 | +* **db:** batch block and folder ordering ([6eb1ac3](https://github.com/ApocDev/pyops/commit/6eb1ac30fb87f48391ea41ff6d43ec4822cd81c6)) |
| 69 | +* **db:** batch block projection reads ([be3203b](https://github.com/ApocDev/pyops/commit/be3203ba458befb0e551335df668d985924cabe3)) |
| 70 | +* **db:** batch dependency explorer analysis ([5c33df7](https://github.com/ApocDev/pyops/commit/5c33df73b4a8f7208ece1f4d0a83eff13a453506)) |
| 71 | +* **db:** batch recipe detail queries ([bcd0bf5](https://github.com/ApocDev/pyops/commit/bcd0bf5b9adf5221e955972202ab55674c79f564)) |
| 72 | +* **db:** batch TURD planning queries ([39971e3](https://github.com/ApocDev/pyops/commit/39971e33c67a63a632f774e98770963194f74327)) |
| 73 | +* **db:** centralize SQLite connection policy ([68abc48](https://github.com/ApocDev/pyops/commit/68abc48e744e12e73f6efb677259fc73af46c5a2)) |
| 74 | +* **solver:** coalesce editor solves and saves ([e7222d8](https://github.com/ApocDev/pyops/commit/e7222d89f2bbdaf9de0870270eca60f2d20862b4)) |
| 75 | +* **solver:** reuse block solves during rebalance ([539220c](https://github.com/ApocDev/pyops/commit/539220c0644f8e58560909a3031fca70652dbb08)) |
| 76 | +* **tasks:** batch task reads and mutations ([b3c0951](https://github.com/ApocDev/pyops/commit/b3c0951f417f93763d48660e2d6178e51b69b25d)) |
| 77 | + |
3 | 78 | ## [1.1.0](https://github.com/ApocDev/pyops/compare/v1.0.0...v1.1.0) (2026-07-07) |
4 | 79 |
|
5 | 80 | ### ⚠ BREAKING CHANGES |
|
0 commit comments