pycforge 1.1.3__tar.gz → 1.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2066) hide show
  1. pycforge-1.3.1/CHANGELOG.md +1228 -0
  2. pycforge-1.3.1/CONVERSION_ROADMAP.md +370 -0
  3. pycforge-1.3.1/CURRENT_STATE.md +755 -0
  4. pycforge-1.3.1/HELP.md +218 -0
  5. pycforge-1.3.1/MANIFEST.in +38 -0
  6. pycforge-1.3.1/PKG-INFO +208 -0
  7. pycforge-1.3.1/PYPI_RELEASE.md +425 -0
  8. pycforge-1.3.1/PyCForge-1.3.0-Release-Verification.txt +39 -0
  9. pycforge-1.3.1/PyCForge-1.3.0-Resource-Audit.txt +173 -0
  10. pycforge-1.3.1/PyCForge-1.3.0-Version-Reconciliation.txt +754 -0
  11. pycforge-1.3.1/PyCForge-1.3.0-Windows-Checklist.txt +69 -0
  12. pycforge-1.3.1/PyCForge-1.3.1-Reliability-Audit.txt +420 -0
  13. pycforge-1.3.1/PyCForge-1.3.1-Windows-and-Laptop-Checks.txt +42 -0
  14. pycforge-1.3.1/README.md +178 -0
  15. pycforge-1.3.1/RELEASE_NOTES.md +396 -0
  16. pycforge-1.3.1/THIRD_PARTY_NOTICES.md +47 -0
  17. pycforge-1.3.1/docs/PyCForge-v1.1.7-Engineering-Review.txt +282 -0
  18. pycforge-1.3.1/docs/Windows-Editor-Acceptance-1.1.7.txt +67 -0
  19. pycforge-1.3.1/evidence/consolidation/contracts.log +22 -0
  20. pycforge-1.3.1/evidence/consolidation/contracts.xml +15 -0
  21. pycforge-1.3.1/evidence/consolidation/conversion-memory.json +70 -0
  22. pycforge-1.3.1/evidence/consolidation/conversion-memory.log +70 -0
  23. pycforge-1.3.1/evidence/consolidation/final-contracts.log +5 -0
  24. pycforge-1.3.1/evidence/consolidation/final-contracts.xml +1 -0
  25. pycforge-1.3.1/evidence/consolidation/final-distribution-build.log +3752 -0
  26. pycforge-1.3.1/evidence/consolidation/final-full-suite.log +118 -0
  27. pycforge-1.3.1/evidence/consolidation/final-full-suite.xml +55 -0
  28. pycforge-1.3.1/evidence/consolidation/final-installed-editor.log +72 -0
  29. pycforge-1.3.1/evidence/consolidation/final-installed-regressions.log +2 -0
  30. pycforge-1.3.1/evidence/consolidation/final-installed-regressions.xml +1 -0
  31. pycforge-1.3.1/evidence/consolidation/final-package-verification.json +23 -0
  32. pycforge-1.3.1/evidence/consolidation/final-wheel-install.log +10 -0
  33. pycforge-1.3.1/evidence/consolidation/full-suite.log +306 -0
  34. pycforge-1.3.1/evidence/consolidation/full-suite.xml +223 -0
  35. pycforge-1.3.1/evidence/consolidation/history/README.txt +3 -0
  36. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/PACKAGE-SHA256SUMS.txt +4 -0
  37. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/PyCForge-Editor-Fixes-Validation.txt +83 -0
  38. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/PyCForge-Editor-Fixes-Windows-Checklist.txt +55 -0
  39. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/distribution.json +24 -0
  40. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/install-editor-1.2.1.log +7 -0
  41. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/installed-dialog.log +2 -0
  42. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/installed-dialog.xml +1 -0
  43. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/installed-editor-1.2.1.log +2 -0
  44. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/installed-editor-1.2.1.xml +1 -0
  45. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/preserved-prior-files.json +1 -0
  46. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/traceback-baseline-1.2.0.log +52 -0
  47. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/traceback-baseline-1.2.0.xml +40 -0
  48. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/editor_lifecycle_fixes/wheel-verify-1.2.1.json +12 -0
  49. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/pcfc11_1_2/full-tests.log +23 -0
  50. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/pcfc11_1_2/installed-acceptance.json +440 -0
  51. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/pcfc11_1_2/installed-cli.json +20 -0
  52. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/pcfc11_1_2/source-acceptance.json +440 -0
  53. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/pcfc11_1_2/validation.json +52 -0
  54. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/resource_audit/baseline-first-failure.log +274 -0
  55. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/resource_audit/baseline-regressions.log +652 -0
  56. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/resource_audit/baseline-regressions.xml +560 -0
  57. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/resource_audit/baseline-tests.log +20 -0
  58. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/resource_audit/baseline-tests.xml +22 -0
  59. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/resource_audit/profile-before.json +436 -0
  60. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/evidence/resource_audit/profile-before.log +3 -0
  61. pycforge-1.3.1/evidence/consolidation/history/uploaded-1.2.1/tools/verify_installed_editor_1_2_1.py +69 -0
  62. pycforge-1.3.1/evidence/consolidation/initial.xml +1 -0
  63. pycforge-1.3.1/evidence/consolidation/installed-editor.log +72 -0
  64. pycforge-1.3.1/evidence/consolidation/installed-files.log +13 -0
  65. pycforge-1.3.1/evidence/consolidation/native-pcfc11.log +104 -0
  66. pycforge-1.3.1/evidence/consolidation/native-pcfc11.xml +93 -0
  67. pycforge-1.3.1/evidence/consolidation/release-suite.log +36 -0
  68. pycforge-1.3.1/evidence/consolidation/release-suite.xml +1 -0
  69. pycforge-1.3.1/evidence/consolidation/resource-profile.json +236 -0
  70. pycforge-1.3.1/evidence/consolidation/resource-profile.log +3 -0
  71. pycforge-1.3.1/evidence/consolidation/runtime-build.log +2 -0
  72. pycforge-1.3.1/evidence/consolidation/runtime-build.xml +1 -0
  73. pycforge-1.3.1/evidence/consolidation/source-preservation.json +644 -0
  74. pycforge-1.3.1/evidence/consolidation/startup-shortcuts.log +3 -0
  75. pycforge-1.3.1/evidence/consolidation/startup-shortcuts.xml +1 -0
  76. pycforge-1.3.1/evidence/consolidation/ui-recheck.log +2 -0
  77. pycforge-1.3.1/evidence/consolidation/ui-recheck.xml +1 -0
  78. pycforge-1.3.1/evidence/consolidation/version-file-inventory.csv +1786 -0
  79. pycforge-1.3.1/evidence/consolidation/version-reconciliation.json +655 -0
  80. pycforge-1.3.1/evidence/consolidation/wheel-build.log +1775 -0
  81. pycforge-1.3.1/evidence/consolidation/wheel-install.log +10 -0
  82. pycforge-1.3.1/evidence/consolidation/windows-assembly.log +2 -0
  83. pycforge-1.3.1/evidence/dictionaries_1_1_4/documentation-validation.json +433 -0
  84. pycforge-1.3.1/evidence/dictionaries_1_1_4/documentation.log +1 -0
  85. pycforge-1.3.1/evidence/dictionaries_1_1_4/initial-full-suite-final.log +366 -0
  86. pycforge-1.3.1/evidence/dictionaries_1_1_4/initial-sanitizers.log +886 -0
  87. pycforge-1.3.1/evidence/dictionaries_1_1_4/installed-desktop.json +57 -0
  88. pycforge-1.3.1/evidence/dictionaries_1_1_4/release-suite.log +44 -0
  89. pycforge-1.3.1/evidence/dictionaries_1_1_4/release-suite.xml +1 -0
  90. pycforge-1.3.1/evidence/dictionaries_1_1_4/sanitizers-final.log +3 -0
  91. pycforge-1.3.1/evidence/dictionaries_1_1_4/sanitizers-final.xml +1 -0
  92. pycforge-1.3.1/evidence/dictionaries_1_1_4/source-changes.json +247 -0
  93. pycforge-1.3.1/evidence/dictionaries_1_1_4/validation_report.json +192 -0
  94. pycforge-1.3.1/evidence/editor_1_1_6/automated-tests.txt +24 -0
  95. pycforge-1.3.1/evidence/editor_1_1_6/automated-tests.xml +1 -0
  96. pycforge-1.3.1/evidence/editor_1_1_6/validation_report.json +66 -0
  97. pycforge-1.3.1/evidence/editor_1_1_7/automated-tests.txt +23 -0
  98. pycforge-1.3.1/evidence/editor_1_1_7/automated-tests.xml +1 -0
  99. pycforge-1.3.1/evidence/editor_1_1_7/baseline-1.1.6-responsiveness-structure.json +136 -0
  100. pycforge-1.3.1/evidence/editor_1_1_7/baseline-1.1.6-responsiveness-typing.json +204 -0
  101. pycforge-1.3.1/evidence/editor_1_1_7/change-inventory.json +71 -0
  102. pycforge-1.3.1/evidence/editor_1_1_7/documentation-validation.json +433 -0
  103. pycforge-1.3.1/evidence/editor_1_1_7/environment.json +8 -0
  104. pycforge-1.3.1/evidence/editor_1_1_7/installed-desktop.json +68 -0
  105. pycforge-1.3.1/evidence/editor_1_1_7/performance-gates.json +5 -0
  106. pycforge-1.3.1/evidence/editor_1_1_7/readme-rendering.json +16 -0
  107. pycforge-1.3.1/evidence/editor_1_1_7/responsiveness-structure.json +136 -0
  108. pycforge-1.3.1/evidence/editor_1_1_7/responsiveness-typing.json +204 -0
  109. pycforge-1.3.1/evidence/editor_1_1_7/symlink-save-check.json +8 -0
  110. pycforge-1.3.1/evidence/editor_1_1_7/validation_report.json +24 -0
  111. pycforge-1.3.1/evidence/editor_1_1_7/wheel-verification.json +18 -0
  112. pycforge-1.3.1/evidence/editor_1_1_7/workspace-typing.json +72 -0
  113. pycforge-1.3.1/evidence/editor_lifecycle_fixes/CHANGES.patch +844 -0
  114. pycforge-1.3.1/evidence/editor_lifecycle_fixes/PyCForge-Editor-Fixes-Validation.txt +83 -0
  115. pycforge-1.3.1/evidence/editor_lifecycle_fixes/PyCForge-Editor-Fixes-Windows-Checklist.txt +55 -0
  116. pycforge-1.3.1/evidence/editor_lifecycle_fixes/change-inventory.json +150 -0
  117. pycforge-1.3.1/evidence/editor_lifecycle_fixes/dialog-final.log +3 -0
  118. pycforge-1.3.1/evidence/editor_lifecycle_fixes/dialog-final.xml +1 -0
  119. pycforge-1.3.1/evidence/editor_lifecycle_fixes/editor-final.log +3 -0
  120. pycforge-1.3.1/evidence/editor_lifecycle_fixes/editor-final.xml +1 -0
  121. pycforge-1.3.1/evidence/editor_lifecycle_fixes/editor-regression-selection.json +38 -0
  122. pycforge-1.3.1/evidence/editor_lifecycle_fixes/editor-regression.log +84 -0
  123. pycforge-1.3.1/evidence/editor_lifecycle_fixes/editor-regression.xml +65 -0
  124. pycforge-1.3.1/evidence/editor_lifecycle_fixes/install-editor-1.1.11.log +7 -0
  125. pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-desktop.json +72 -0
  126. pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-editor-1.1.11.log +2 -0
  127. pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-editor-1.1.11.xml +1 -0
  128. pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-native.json +13 -0
  129. pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-version.json +15 -0
  130. pycforge-1.3.1/evidence/editor_lifecycle_fixes/traceback-baseline-1.1.10.log +52 -0
  131. pycforge-1.3.1/evidence/editor_lifecycle_fixes/traceback-baseline-1.1.10.xml +40 -0
  132. pycforge-1.3.1/evidence/editor_lifecycle_fixes/validation.json +134 -0
  133. pycforge-1.3.1/evidence/editor_lifecycle_fixes/wheel-verify-1.1.11.json +18 -0
  134. pycforge-1.3.1/evidence/everyday_1_1_8/CHANGES.patch +2899 -0
  135. pycforge-1.3.1/evidence/everyday_1_1_8/Windows-acceptance.txt +49 -0
  136. pycforge-1.3.1/evidence/everyday_1_1_8/address-undefined-sanitizers.log +31 -0
  137. pycforge-1.3.1/evidence/everyday_1_1_8/allocation.log +2 -0
  138. pycforge-1.3.1/evidence/everyday_1_1_8/baseline.log +2 -0
  139. pycforge-1.3.1/evidence/everyday_1_1_8/change-inventory.json +272 -0
  140. pycforge-1.3.1/evidence/everyday_1_1_8/diagnostic-followup.log +2 -0
  141. pycforge-1.3.1/evidence/everyday_1_1_8/distribution-first.json +1 -0
  142. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/documentation-validation.json +744 -0
  143. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/calls-modules.png +0 -0
  144. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/cli-api.png +0 -0
  145. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/containers-records.png +0 -0
  146. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/contracts-narrow.png +0 -0
  147. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/contracts.png +0 -0
  148. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/control-flow.png +0 -0
  149. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/diagnostics.png +0 -0
  150. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/file-io-read-caller.png +0 -0
  151. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/file-io.png +0 -0
  152. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/help-authoring-typed-caller.png +0 -0
  153. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/help-authoring.png +0 -0
  154. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/runtime-classes.png +0 -0
  155. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/runtime-comprehensions.png +0 -0
  156. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/runtime-containers.png +0 -0
  157. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/runtime-functions.png +0 -0
  158. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/runtime-strings.png +0 -0
  159. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/runtime-values-caller-example.png +0 -0
  160. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/runtime-values.png +0 -0
  161. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/safety-limits.png +0 -0
  162. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/shortcuts-narrow.png +0 -0
  163. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/shortcuts.png +0 -0
  164. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/start.png +0 -0
  165. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/ting-agents.png +0 -0
  166. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/types-expressions.png +0 -0
  167. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/workspace-find-replace.png +0 -0
  168. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/workspace-narrow.png +0 -0
  169. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/workspace-symbol-navigator.png +0 -0
  170. pycforge-1.3.1/evidence/everyday_1_1_8/documentation/visuals/workspace.png +0 -0
  171. pycforge-1.3.1/evidence/everyday_1_1_8/documentation.log +1 -0
  172. pycforge-1.3.1/evidence/everyday_1_1_8/environment.json +9 -0
  173. pycforge-1.3.1/evidence/everyday_1_1_8/focused.log +2 -0
  174. pycforge-1.3.1/evidence/everyday_1_1_8/format-matrix.log +2 -0
  175. pycforge-1.3.1/evidence/everyday_1_1_8/full-suite.log +61 -0
  176. pycforge-1.3.1/evidence/everyday_1_1_8/full-suite.xml +13 -0
  177. pycforge-1.3.1/evidence/everyday_1_1_8/installed-desktop.json +70 -0
  178. pycforge-1.3.1/evidence/everyday_1_1_8/installed-native.json +7 -0
  179. pycforge-1.3.1/evidence/everyday_1_1_8/readme.json +16 -0
  180. pycforge-1.3.1/evidence/everyday_1_1_8/release-followup.log +4 -0
  181. pycforge-1.3.1/evidence/everyday_1_1_8/release-followup.xml +1 -0
  182. pycforge-1.3.1/evidence/everyday_1_1_8/representation-followup.log +2 -0
  183. pycforge-1.3.1/evidence/everyday_1_1_8/sanitizer-followup.log +2 -0
  184. pycforge-1.3.1/evidence/everyday_1_1_8/sanitizers.log +122 -0
  185. pycforge-1.3.1/evidence/everyday_1_1_8/sort-followup.log +2 -0
  186. pycforge-1.3.1/evidence/everyday_1_1_8/twine-first.log +1 -0
  187. pycforge-1.3.1/evidence/everyday_1_1_8/validation.json +71 -0
  188. pycforge-1.3.1/evidence/files_1_1_10/CHANGES.patch +2366 -0
  189. pycforge-1.3.1/evidence/files_1_1_10/Windows-acceptance.txt +62 -0
  190. pycforge-1.3.1/evidence/files_1_1_10/change-inventory.json +327 -0
  191. pycforge-1.3.1/evidence/files_1_1_10/check-windows-file-branch.py +33 -0
  192. pycforge-1.3.1/evidence/files_1_1_10/documentation/documentation-validation.json +805 -0
  193. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/calls-modules.png +0 -0
  194. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/cli-api.png +0 -0
  195. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/containers-records.png +0 -0
  196. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/contracts-narrow.png +0 -0
  197. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/contracts.png +0 -0
  198. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/control-flow.png +0 -0
  199. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/diagnostics.png +0 -0
  200. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/file-io-read-caller.png +0 -0
  201. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/file-io.png +0 -0
  202. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/help-authoring-typed-caller.png +0 -0
  203. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/help-authoring.png +0 -0
  204. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-classes.png +0 -0
  205. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-comprehensions.png +0 -0
  206. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-containers.png +0 -0
  207. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-files-limits.png +0 -0
  208. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-files-methods.png +0 -0
  209. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-files-modules.png +0 -0
  210. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-files-narrow.png +0 -0
  211. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-files.png +0 -0
  212. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-functions.png +0 -0
  213. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-strings.png +0 -0
  214. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-values-caller-example.png +0 -0
  215. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/runtime-values.png +0 -0
  216. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/safety-limits.png +0 -0
  217. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/shortcuts-narrow.png +0 -0
  218. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/shortcuts.png +0 -0
  219. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/start.png +0 -0
  220. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/ting-agents.png +0 -0
  221. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/types-expressions.png +0 -0
  222. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/workspace-find-replace.png +0 -0
  223. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/workspace-narrow.png +0 -0
  224. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/workspace-symbol-navigator.png +0 -0
  225. pycforge-1.3.1/evidence/files_1_1_10/documentation/visuals/workspace.png +0 -0
  226. pycforge-1.3.1/evidence/files_1_1_10/documentation-final.log +1 -0
  227. pycforge-1.3.1/evidence/files_1_1_10/documentation.log +1 -0
  228. pycforge-1.3.1/evidence/files_1_1_10/environment.json +16 -0
  229. pycforge-1.3.1/evidence/files_1_1_10/files-followup.log +2 -0
  230. pycforge-1.3.1/evidence/files_1_1_10/files-followup.xml +1 -0
  231. pycforge-1.3.1/evidence/files_1_1_10/files.log +46 -0
  232. pycforge-1.3.1/evidence/files_1_1_10/files.xml +39 -0
  233. pycforge-1.3.1/evidence/files_1_1_10/fingerprint-followup.log +3 -0
  234. pycforge-1.3.1/evidence/files_1_1_10/fingerprint-followup.xml +1 -0
  235. pycforge-1.3.1/evidence/files_1_1_10/full-suite.log +29 -0
  236. pycforge-1.3.1/evidence/files_1_1_10/full-suite.xml +1 -0
  237. pycforge-1.3.1/evidence/files_1_1_10/help.log +2 -0
  238. pycforge-1.3.1/evidence/files_1_1_10/help.xml +1 -0
  239. pycforge-1.3.1/evidence/files_1_1_10/installed-desktop.json +72 -0
  240. pycforge-1.3.1/evidence/files_1_1_10/installed-desktop.stderr +0 -0
  241. pycforge-1.3.1/evidence/files_1_1_10/installed-native.json +13 -0
  242. pycforge-1.3.1/evidence/files_1_1_10/installed-native.stderr +0 -0
  243. pycforge-1.3.1/evidence/files_1_1_10/readme.json +16 -0
  244. pycforge-1.3.1/evidence/files_1_1_10/sanitizers-followup.log +2 -0
  245. pycforge-1.3.1/evidence/files_1_1_10/sanitizers-followup.xml +1 -0
  246. pycforge-1.3.1/evidence/files_1_1_10/sanitizers.log +2 -0
  247. pycforge-1.3.1/evidence/files_1_1_10/sanitizers.xml +1 -0
  248. pycforge-1.3.1/evidence/files_1_1_10/validation.json +189 -0
  249. pycforge-1.3.1/evidence/files_1_1_10/windows-branch.json +7 -0
  250. pycforge-1.3.1/evidence/files_1_1_10/windows-branch.stderr +0 -0
  251. pycforge-1.3.1/evidence/modules_1_1_9/CHANGES.patch +2306 -0
  252. pycforge-1.3.1/evidence/modules_1_1_9/Windows-acceptance.txt +47 -0
  253. pycforge-1.3.1/evidence/modules_1_1_9/allocation.log +2 -0
  254. pycforge-1.3.1/evidence/modules_1_1_9/change-inventory.json +292 -0
  255. pycforge-1.3.1/evidence/modules_1_1_9/definition-order-followup.log +2 -0
  256. pycforge-1.3.1/evidence/modules_1_1_9/documentation/documentation-validation.json +758 -0
  257. pycforge-1.3.1/evidence/modules_1_1_9/documentation/help-check.ini +0 -0
  258. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/calls-modules.png +0 -0
  259. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/cli-api.png +0 -0
  260. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/containers-records.png +0 -0
  261. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/contracts-narrow.png +0 -0
  262. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/contracts.png +0 -0
  263. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/control-flow.png +0 -0
  264. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/diagnostics.png +0 -0
  265. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/file-io-read-caller.png +0 -0
  266. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/file-io.png +0 -0
  267. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/help-authoring-typed-caller.png +0 -0
  268. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/help-authoring.png +0 -0
  269. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-classes.png +0 -0
  270. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-comprehensions.png +0 -0
  271. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-containers.png +0 -0
  272. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-functions.png +0 -0
  273. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-modules-narrow.png +0 -0
  274. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-modules-wide.png +0 -0
  275. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-strings.png +0 -0
  276. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-values-caller-example.png +0 -0
  277. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/runtime-values.png +0 -0
  278. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/safety-limits.png +0 -0
  279. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/shortcuts-narrow.png +0 -0
  280. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/shortcuts.png +0 -0
  281. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/start.png +0 -0
  282. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/ting-agents.png +0 -0
  283. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/types-expressions.png +0 -0
  284. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/workspace-find-replace.png +0 -0
  285. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/workspace-narrow.png +0 -0
  286. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/workspace-symbol-navigator.png +0 -0
  287. pycforge-1.3.1/evidence/modules_1_1_9/documentation/visuals/workspace.png +0 -0
  288. pycforge-1.3.1/evidence/modules_1_1_9/documentation-final.log +1 -0
  289. pycforge-1.3.1/evidence/modules_1_1_9/documentation.log +1 -0
  290. pycforge-1.3.1/evidence/modules_1_1_9/environment.json +16 -0
  291. pycforge-1.3.1/evidence/modules_1_1_9/full-suite.log +195 -0
  292. pycforge-1.3.1/evidence/modules_1_1_9/full-suite.xml +163 -0
  293. pycforge-1.3.1/evidence/modules_1_1_9/initial-regression.log +2 -0
  294. pycforge-1.3.1/evidence/modules_1_1_9/installed-desktop.json +71 -0
  295. pycforge-1.3.1/evidence/modules_1_1_9/installed-desktop.stderr +0 -0
  296. pycforge-1.3.1/evidence/modules_1_1_9/installed-native.json +9 -0
  297. pycforge-1.3.1/evidence/modules_1_1_9/installed-native.stderr +0 -0
  298. pycforge-1.3.1/evidence/modules_1_1_9/inventory-final.log +2 -0
  299. pycforge-1.3.1/evidence/modules_1_1_9/inventory-final.xml +1 -0
  300. pycforge-1.3.1/evidence/modules_1_1_9/module-followup.log +2 -0
  301. pycforge-1.3.1/evidence/modules_1_1_9/module-tests.log +41 -0
  302. pycforge-1.3.1/evidence/modules_1_1_9/readme.json +16 -0
  303. pycforge-1.3.1/evidence/modules_1_1_9/readme.stderr +0 -0
  304. pycforge-1.3.1/evidence/modules_1_1_9/release-followup.log +18 -0
  305. pycforge-1.3.1/evidence/modules_1_1_9/release-followup.xml +11 -0
  306. pycforge-1.3.1/evidence/modules_1_1_9/sanitizers.log +2 -0
  307. pycforge-1.3.1/evidence/modules_1_1_9/validation.json +182 -0
  308. pycforge-1.3.1/evidence/reliability-allocations-before.log +1 -0
  309. pycforge-1.3.1/evidence/reliability-before.log +106 -0
  310. pycforge-1.3.1/evidence/reliability_1_3/address-undefined-sanitizers.log +2 -0
  311. pycforge-1.3.1/evidence/reliability_1_3/address-undefined-sanitizers.xml +1 -0
  312. pycforge-1.3.1/evidence/reliability_1_3/allocations-after.json +104 -0
  313. pycforge-1.3.1/evidence/reliability_1_3/allocations-after.log +1 -0
  314. pycforge-1.3.1/evidence/reliability_1_3/allocations-before.json +104 -0
  315. pycforge-1.3.1/evidence/reliability_1_3/before-fixes.xml +91 -0
  316. pycforge-1.3.1/evidence/reliability_1_3/conversion-memory-after.json +70 -0
  317. pycforge-1.3.1/evidence/reliability_1_3/conversion-memory-after.log +70 -0
  318. pycforge-1.3.1/evidence/reliability_1_3/conversion-preservation-baseline.json +92 -0
  319. pycforge-1.3.1/evidence/reliability_1_3/earlier-failures-exact.json +80 -0
  320. pycforge-1.3.1/evidence/reliability_1_3/full-suite-first.log +137 -0
  321. pycforge-1.3.1/evidence/reliability_1_3/full-suite-first.xml +92 -0
  322. pycforge-1.3.1/evidence/reliability_1_3/full-suite.log +24 -0
  323. pycforge-1.3.1/evidence/reliability_1_3/full-suite.xml +1 -0
  324. pycforge-1.3.1/evidence/reliability_1_3/implementation-changes-preversion.json +92 -0
  325. pycforge-1.3.1/evidence/reliability_1_3/installed-editor.log +72 -0
  326. pycforge-1.3.1/evidence/reliability_1_3/installed-files.log +13 -0
  327. pycforge-1.3.1/evidence/reliability_1_3/installed-regressions.log +2 -0
  328. pycforge-1.3.1/evidence/reliability_1_3/installed-regressions.xml +1 -0
  329. pycforge-1.3.1/evidence/reliability_1_3/installed-wheel.log +10 -0
  330. pycforge-1.3.1/evidence/reliability_1_3/native-sanitizers.log +316 -0
  331. pycforge-1.3.1/evidence/reliability_1_3/native-sanitizers.xml +277 -0
  332. pycforge-1.3.1/evidence/reliability_1_3/outline-start-before.log +37 -0
  333. pycforge-1.3.1/evidence/reliability_1_3/outline-start-before.xml +30 -0
  334. pycforge-1.3.1/evidence/reliability_1_3/ownership-before.log +117 -0
  335. pycforge-1.3.1/evidence/reliability_1_3/ownership-before.xml +110 -0
  336. pycforge-1.3.1/evidence/reliability_1_3/ownership-cancellation.log +2 -0
  337. pycforge-1.3.1/evidence/reliability_1_3/ownership-cancellation.xml +1 -0
  338. pycforge-1.3.1/evidence/reliability_1_3/qt-preview-fixes.log +2 -0
  339. pycforge-1.3.1/evidence/reliability_1_3/qt-preview-fixes.xml +1 -0
  340. pycforge-1.3.1/evidence/reliability_1_3/resource-soak-100.json +316 -0
  341. pycforge-1.3.1/evidence/reliability_1_3/resource-soak-100.log +3 -0
  342. pycforge-1.3.1/evidence/reliability_1_3/skipped-checks.json +78 -0
  343. pycforge-1.3.1/evidence/reliability_1_3/source-preservation.json +5021 -0
  344. pycforge-1.3.1/evidence/reliability_1_3/source-publication.log +2 -0
  345. pycforge-1.3.1/evidence/reliability_1_3/source-publication.xml +1 -0
  346. pycforge-1.3.1/evidence/reliability_1_3/token-budget-after.log +2 -0
  347. pycforge-1.3.1/evidence/reliability_1_3/token-budget-after.xml +1 -0
  348. pycforge-1.3.1/evidence/reliability_1_3/token-budget-before.log +64 -0
  349. pycforge-1.3.1/evidence/reliability_1_3/token-budget-before.xml +53 -0
  350. pycforge-1.3.1/evidence/reliability_1_3/wheel-build.log +1786 -0
  351. pycforge-1.3.1/evidence/reliability_1_3/wheel-source-verification.json +13 -0
  352. pycforge-1.3.1/evidence/resource_audit/CHANGES.patch +1159 -0
  353. pycforge-1.3.1/evidence/resource_audit/PyCForge-Resource-Audit.txt +225 -0
  354. pycforge-1.3.1/evidence/resource_audit/PyCForge-Resource-Windows-Checklist.txt +64 -0
  355. pycforge-1.3.1/evidence/resource_audit/REPRODUCE.txt +16 -0
  356. pycforge-1.3.1/evidence/resource_audit/baseline-desktop-1.1.11.json +171 -0
  357. pycforge-1.3.1/evidence/resource_audit/baseline-desktop-1.1.11.log +5 -0
  358. pycforge-1.3.1/evidence/resource_audit/baseline-desktop-1.1.11.stderr +0 -0
  359. pycforge-1.3.1/evidence/resource_audit/baseline-desktop-1.2.1.json +203 -0
  360. pycforge-1.3.1/evidence/resource_audit/baseline-desktop-1.2.1.log +6 -0
  361. pycforge-1.3.1/evidence/resource_audit/baseline-desktop-1.2.1.stderr +2 -0
  362. pycforge-1.3.1/evidence/resource_audit/baseline-ipc-1.2.1.json +26 -0
  363. pycforge-1.3.1/evidence/resource_audit/baseline-ipc-1.2.1.log +26 -0
  364. pycforge-1.3.1/evidence/resource_audit/baseline-ipc-1.2.1.stderr +0 -0
  365. pycforge-1.3.1/evidence/resource_audit/baseline-worker-regressions.log +145 -0
  366. pycforge-1.3.1/evidence/resource_audit/baseline-worker-regressions.xml +110 -0
  367. pycforge-1.3.1/evidence/resource_audit/build-wheel-1.1.12.log +2539 -0
  368. pycforge-1.3.1/evidence/resource_audit/build-wheel-1.2.2.log +2383 -0
  369. pycforge-1.3.1/evidence/resource_audit/change-inventory.json +186 -0
  370. pycforge-1.3.1/evidence/resource_audit/fixed-desktop-1.1.12.json +159 -0
  371. pycforge-1.3.1/evidence/resource_audit/fixed-desktop-1.1.12.log +5 -0
  372. pycforge-1.3.1/evidence/resource_audit/fixed-desktop-1.1.12.stderr +0 -0
  373. pycforge-1.3.1/evidence/resource_audit/fixed-desktop-1.2.2.json +186 -0
  374. pycforge-1.3.1/evidence/resource_audit/fixed-desktop-1.2.2.log +6 -0
  375. pycforge-1.3.1/evidence/resource_audit/fixed-desktop-1.2.2.stderr +2 -0
  376. pycforge-1.3.1/evidence/resource_audit/fixed-ipc-1.2.2.json +22 -0
  377. pycforge-1.3.1/evidence/resource_audit/fixed-ipc-1.2.2.log +22 -0
  378. pycforge-1.3.1/evidence/resource_audit/fixed-ipc-1.2.2.stderr +0 -0
  379. pycforge-1.3.1/evidence/resource_audit/fixed-workspace-1.1.12.json +142 -0
  380. pycforge-1.3.1/evidence/resource_audit/fixed-workspace-1.1.12.log +4 -0
  381. pycforge-1.3.1/evidence/resource_audit/fixed-workspace-1.1.12.stderr +0 -0
  382. pycforge-1.3.1/evidence/resource_audit/fixed-workspace-1.2.2.json +125 -0
  383. pycforge-1.3.1/evidence/resource_audit/fixed-workspace-1.2.2.log +4 -0
  384. pycforge-1.3.1/evidence/resource_audit/fixed-workspace-1.2.2.stderr +0 -0
  385. pycforge-1.3.1/evidence/resource_audit/install-1.1.12.log +6 -0
  386. pycforge-1.3.1/evidence/resource_audit/install-1.2.2.log +3 -0
  387. pycforge-1.3.1/evidence/resource_audit/installed-harness-import-error-1.2.2.log +79 -0
  388. pycforge-1.3.1/evidence/resource_audit/installed-harness-import-error-1.2.2.stderr +0 -0
  389. pycforge-1.3.1/evidence/resource_audit/installed-harness-import-error-1.2.2.xml +34 -0
  390. pycforge-1.3.1/evidence/resource_audit/installed-regressions-1.1.12.log +2 -0
  391. pycforge-1.3.1/evidence/resource_audit/installed-regressions-1.1.12.stderr +0 -0
  392. pycforge-1.3.1/evidence/resource_audit/installed-regressions-1.1.12.xml +1 -0
  393. pycforge-1.3.1/evidence/resource_audit/installed-regressions-1.2.2.log +2 -0
  394. pycforge-1.3.1/evidence/resource_audit/installed-regressions-1.2.2.stderr +0 -0
  395. pycforge-1.3.1/evidence/resource_audit/installed-regressions-1.2.2.xml +1 -0
  396. pycforge-1.3.1/evidence/resource_audit/installed-version-1.1.12.log +15 -0
  397. pycforge-1.3.1/evidence/resource_audit/installed-version-1.1.12.stderr +0 -0
  398. pycforge-1.3.1/evidence/resource_audit/installed-version-1.2.2.log +18 -0
  399. pycforge-1.3.1/evidence/resource_audit/installed-version-1.2.2.stderr +1 -0
  400. pycforge-1.3.1/evidence/resource_audit/native-arena-arena.c +7633 -0
  401. pycforge-1.3.1/evidence/resource_audit/native-arena-leaksan-environment-error.json +20 -0
  402. pycforge-1.3.1/evidence/resource_audit/native-arena-result.json +20 -0
  403. pycforge-1.3.1/evidence/resource_audit/native-arena.log +20 -0
  404. pycforge-1.3.1/evidence/resource_audit/probe_desktop_resources.py +97 -0
  405. pycforge-1.3.1/evidence/resource_audit/probe_runtime_arena.py +63 -0
  406. pycforge-1.3.1/evidence/resource_audit/probe_supervisor_stalls.py +38 -0
  407. pycforge-1.3.1/evidence/resource_audit/probe_workspace_cycles.py +72 -0
  408. pycforge-1.3.1/evidence/resource_audit/resource-final-gates.log +4 -0
  409. pycforge-1.3.1/evidence/resource_audit/resource-final-gates.xml +1 -0
  410. pycforge-1.3.1/evidence/resource_audit/resource-lifecycle.log +3 -0
  411. pycforge-1.3.1/evidence/resource_audit/resource-lifecycle.xml +1 -0
  412. pycforge-1.3.1/evidence/resource_audit/resource-services.log +3 -0
  413. pycforge-1.3.1/evidence/resource_audit/resource-services.xml +1 -0
  414. pycforge-1.3.1/evidence/resource_audit/test_resource_ownership.py +86 -0
  415. pycforge-1.3.1/evidence/resource_audit/test_resource_supervisor.py +63 -0
  416. pycforge-1.3.1/evidence/resource_audit/unchanged-1.1.12.json +6 -0
  417. pycforge-1.3.1/evidence/resource_audit/unchanged-1.2.2.json +6 -0
  418. pycforge-1.3.1/evidence/startup_fix_1_3_1/current-deps-focused.log +24 -0
  419. pycforge-1.3.1/evidence/startup_fix_1_3_1/current-final-focused.log +3 -0
  420. pycforge-1.3.1/evidence/startup_fix_1_3_1/current-rename.log +2 -0
  421. pycforge-1.3.1/evidence/startup_fix_1_3_1/dependency-installation.json +322 -0
  422. pycforge-1.3.1/evidence/startup_fix_1_3_1/final-scale-1.25.log +2 -0
  423. pycforge-1.3.1/evidence/startup_fix_1_3_1/final-scale-1.5.log +2 -0
  424. pycforge-1.3.1/evidence/startup_fix_1_3_1/final-scale-2.log +2 -0
  425. pycforge-1.3.1/evidence/startup_fix_1_3_1/focused.log +2 -0
  426. pycforge-1.3.1/evidence/startup_fix_1_3_1/focused.xml +1 -0
  427. pycforge-1.3.1/evidence/startup_fix_1_3_1/fresh-install-file-integrity.json +23 -0
  428. pycforge-1.3.1/evidence/startup_fix_1_3_1/fresh-installed-editor.log +72 -0
  429. pycforge-1.3.1/evidence/startup_fix_1_3_1/full-current-display-fixture-crash.log +85 -0
  430. pycforge-1.3.1/evidence/startup_fix_1_3_1/full-current.log +22 -0
  431. pycforge-1.3.1/evidence/startup_fix_1_3_1/full-current.xml +1 -0
  432. pycforge-1.3.1/evidence/startup_fix_1_3_1/installed-editor.log +72 -0
  433. pycforge-1.3.1/evidence/startup_fix_1_3_1/installed-regressions.log +2 -0
  434. pycforge-1.3.1/evidence/startup_fix_1_3_1/installed-regressions.xml +1 -0
  435. pycforge-1.3.1/evidence/startup_fix_1_3_1/native-pcfc11.log +2 -0
  436. pycforge-1.3.1/evidence/startup_fix_1_3_1/native-pcfc11.xml +1 -0
  437. pycforge-1.3.1/evidence/startup_fix_1_3_1/older-dependencies.log +2 -0
  438. pycforge-1.3.1/evidence/startup_fix_1_3_1/package-preservation.json +17 -0
  439. pycforge-1.3.1/evidence/startup_fix_1_3_1/scale-1.25.log +2 -0
  440. pycforge-1.3.1/evidence/startup_fix_1_3_1/scale-1.5.log +2 -0
  441. pycforge-1.3.1/evidence/startup_fix_1_3_1/scale-2.log +2 -0
  442. pycforge-1.3.1/evidence/startup_fix_1_3_1/skipped-checks.json +116 -0
  443. pycforge-1.3.1/evidence/startup_fix_1_3_1/wheel-installation-verification.json +5 -0
  444. pycforge-1.3.1/evidence/ui_1_1_5/documentation-checks.json +11 -0
  445. pycforge-1.3.1/evidence/ui_1_1_5/installed-desktop.json +59 -0
  446. pycforge-1.3.1/evidence/ui_1_1_5/pytest.log +45 -0
  447. pycforge-1.3.1/evidence/ui_1_1_5/pytest.xml +1 -0
  448. pycforge-1.3.1/evidence/ui_1_1_5/validation_report.json +98 -0
  449. pycforge-1.3.1/fixtures/runtime_dictionaries_1_1_4/grouping.py +12 -0
  450. pycforge-1.3.1/fixtures/runtime_dictionaries_1_1_4/word_count.py +12 -0
  451. pycforge-1.3.1/fixtures/runtime_everyday_1_1_8/everyday.py +25 -0
  452. pycforge-1.3.1/fixtures/runtime_files_1_1_10/expected-report.txt +5 -0
  453. pycforge-1.3.1/fixtures/runtime_files_1_1_10/main.py +9 -0
  454. pycforge-1.3.1/fixtures/runtime_files_1_1_10/prices.txt +3 -0
  455. pycforge-1.3.1/fixtures/runtime_files_1_1_10/pricing.py +9 -0
  456. pycforge-1.3.1/fixtures/runtime_files_1_1_10/text_files.py +7 -0
  457. pycforge-1.3.1/fixtures/runtime_modules_1_1_9/invoice.py +8 -0
  458. pycforge-1.3.1/fixtures/runtime_modules_1_1_9/main.py +11 -0
  459. pycforge-1.3.1/fixtures/runtime_modules_1_1_9/models.py +7 -0
  460. pycforge-1.3.1/fixtures/runtime_modules_1_1_9/settings.py +3 -0
  461. pycforge-1.3.1/pycforge/_vendor/ting_reasoner/numeric.py +181 -0
  462. pycforge-1.3.1/pycforge/_vendor/ting_reasoner_provenance.json +46 -0
  463. pycforge-1.3.1/pycforge/_version.py +1 -0
  464. pycforge-1.3.1/pycforge/build/__init__.py +4 -0
  465. pycforge-1.3.1/pycforge/build/__main__.py +71 -0
  466. pycforge-1.3.1/pycforge/build/_launcher.py +12 -0
  467. pycforge-1.3.1/pycforge/build/_winjob.py +61 -0
  468. pycforge-1.3.1/pycforge/build/runtime_entry.py +26 -0
  469. pycforge-1.3.1/pycforge/build/service.py +296 -0
  470. pycforge-1.3.1/pycforge/build/windows_include/assert.h +9 -0
  471. pycforge-1.3.1/pycforge/build/windows_include/fenv.h +5 -0
  472. pycforge-1.3.1/pycforge/build/windows_include/inttypes.h +6 -0
  473. pycforge-1.3.1/pycforge/build/windows_include/locale.h +16 -0
  474. pycforge-1.3.1/pycforge/build/windows_include/math.h +20 -0
  475. pycforge-1.3.1/pycforge/build/windows_include/stdio.h +11 -0
  476. pycforge-1.3.1/pycforge/build/windows_include/wchar.h +6 -0
  477. pycforge-1.3.1/pycforge/converter/__init__.py +0 -0
  478. pycforge-1.3.1/pycforge/converter/c_output/renderer.py +239 -0
  479. pycforge-1.3.1/pycforge/converter/contracts/__init__.py +0 -0
  480. pycforge-1.3.1/pycforge/converter/contracts/configuration.py +244 -0
  481. pycforge-1.3.1/pycforge/converter/core/__init__.py +0 -0
  482. pycforge-1.3.1/pycforge/converter/core/canonicalization.py +271 -0
  483. pycforge-1.3.1/pycforge/converter/decision_trace/__init__.py +0 -0
  484. pycforge-1.3.1/pycforge/converter/frontend/parser.py +51 -0
  485. pycforge-1.3.1/pycforge/converter/frontend/source_document.py +112 -0
  486. pycforge-1.3.1/pycforge/converter/frontend/stages.py +547 -0
  487. pycforge-1.3.1/pycforge/converter/io/__init__.py +0 -0
  488. pycforge-1.3.1/pycforge/converter/runtime_values/__init__.py +4 -0
  489. pycforge-1.3.1/pycforge/converter/runtime_values/compiler.py +766 -0
  490. pycforge-1.3.1/pycforge/converter/runtime_values/dict_ops.h +276 -0
  491. pycforge-1.3.1/pycforge/converter/runtime_values/everyday_ops.h +255 -0
  492. pycforge-1.3.1/pycforge/converter/runtime_values/file_ops.h +182 -0
  493. pycforge-1.3.1/pycforge/converter/runtime_values/format_ops.h +307 -0
  494. pycforge-1.3.1/pycforge/converter/runtime_values/module_ops.h +58 -0
  495. pycforge-1.3.1/pycforge/converter/runtime_values/modules.py +139 -0
  496. pycforge-1.3.1/pycforge/converter/runtime_values/runtime.h +515 -0
  497. pycforge-1.3.1/pycforge/converter/runtime_values/service.py +75 -0
  498. pycforge-1.3.1/pycforge/converter/runtime_values/unicode_data.h +4322 -0
  499. pycforge-1.3.1/pycforge/converter/telemetry/__init__.py +0 -0
  500. pycforge-1.3.1/pycforge/ide/action_contract.py +526 -0
  501. pycforge-1.3.1/pycforge/ide/analysis_cache.py +74 -0
  502. pycforge-1.3.1/pycforge/ide/controller.py +998 -0
  503. pycforge-1.3.1/pycforge/ide/controller_conversion.py +570 -0
  504. pycforge-1.3.1/pycforge/ide/controller_edits.py +23 -0
  505. pycforge-1.3.1/pycforge/ide/controller_io.py +211 -0
  506. pycforge-1.3.1/pycforge/ide/conversion_profiles.py +85 -0
  507. pycforge-1.3.1/pycforge/ide/editing_operations.py +260 -0
  508. pycforge-1.3.1/pycforge/ide/editing_worker.py +70 -0
  509. pycforge-1.3.1/pycforge/ide/editor.py +971 -0
  510. pycforge-1.3.1/pycforge/ide/editor_commands_qt.py +599 -0
  511. pycforge-1.3.1/pycforge/ide/editor_offsets.py +20 -0
  512. pycforge-1.3.1/pycforge/ide/editor_productivity.py +430 -0
  513. pycforge-1.3.1/pycforge/ide/editor_sidebars.py +258 -0
  514. pycforge-1.3.1/pycforge/ide/find_advanced.py +154 -0
  515. pycforge-1.3.1/pycforge/ide/find_replace.py +650 -0
  516. pycforge-1.3.1/pycforge/ide/io_service.py +233 -0
  517. pycforge-1.3.1/pycforge/ide/model.py +165 -0
  518. pycforge-1.3.1/pycforge/ide/outline_parser.py +56 -0
  519. pycforge-1.3.1/pycforge/ide/outline_process.py +124 -0
  520. pycforge-1.3.1/pycforge/ide/outline_protocol.py +70 -0
  521. pycforge-1.3.1/pycforge/ide/positions.py +253 -0
  522. pycforge-1.3.1/pycforge/ide/qt.py +297 -0
  523. pycforge-1.3.1/pycforge/ide/qt_about.py +327 -0
  524. pycforge-1.3.1/pycforge/ide/qt_actions.py +501 -0
  525. pycforge-1.3.1/pycforge/ide/qt_build.py +365 -0
  526. pycforge-1.3.1/pycforge/ide/qt_build_files.py +31 -0
  527. pycforge-1.3.1/pycforge/ide/qt_close.py +238 -0
  528. pycforge-1.3.1/pycforge/ide/qt_command_palette.py +374 -0
  529. pycforge-1.3.1/pycforge/ide/qt_dialog_chrome.py +311 -0
  530. pycforge-1.3.1/pycforge/ide/qt_documents.py +545 -0
  531. pycforge-1.3.1/pycforge/ide/qt_edit_preview.py +171 -0
  532. pycforge-1.3.1/pycforge/ide/qt_editing_helpers.py +66 -0
  533. pycforge-1.3.1/pycforge/ide/qt_editing_service.py +196 -0
  534. pycforge-1.3.1/pycforge/ide/qt_editor_buffers.py +144 -0
  535. pycforge-1.3.1/pycforge/ide/qt_editor_settings.py +242 -0
  536. pycforge-1.3.1/pycforge/ide/qt_editor_surfaces.py +139 -0
  537. pycforge-1.3.1/pycforge/ide/qt_editor_tools.py +406 -0
  538. pycforge-1.3.1/pycforge/ide/qt_file_dialogs.py +969 -0
  539. pycforge-1.3.1/pycforge/ide/qt_menus.py +402 -0
  540. pycforge-1.3.1/pycforge/ide/qt_preview_service.py +52 -0
  541. pycforge-1.3.1/pycforge/ide/qt_projection.py +598 -0
  542. pycforge-1.3.1/pycforge/ide/qt_session_state.py +164 -0
  543. pycforge-1.3.1/pycforge/ide/qt_shell.py +519 -0
  544. pycforge-1.3.1/pycforge/ide/qt_shell_interactions.py +417 -0
  545. pycforge-1.3.1/pycforge/ide/qt_startup.py +450 -0
  546. pycforge-1.3.1/pycforge/ide/qt_state.py +457 -0
  547. pycforge-1.3.1/pycforge/ide/qt_symbol_icons.py +45 -0
  548. pycforge-1.3.1/pycforge/ide/qt_symbol_navigator.py +309 -0
  549. pycforge-1.3.1/pycforge/ide/qt_ting_actions.py +103 -0
  550. pycforge-1.3.1/pycforge/ide/qt_workspace_features.py +574 -0
  551. pycforge-1.3.1/pycforge/ide/qt_workspace_navigation.py +310 -0
  552. pycforge-1.3.1/pycforge/ide/qt_workspace_observers.py +201 -0
  553. pycforge-1.3.1/pycforge/ide/rename_safety.py +90 -0
  554. pycforge-1.3.1/pycforge/ide/resources/help/calls-modules.html +104 -0
  555. pycforge-1.3.1/pycforge/ide/resources/help/catalog.json +394 -0
  556. pycforge-1.3.1/pycforge/ide/resources/help/cli-api.html +130 -0
  557. pycforge-1.3.1/pycforge/ide/resources/help/containers-records.html +59 -0
  558. pycforge-1.3.1/pycforge/ide/resources/help/contracts.html +44 -0
  559. pycforge-1.3.1/pycforge/ide/resources/help/control-flow.html +75 -0
  560. pycforge-1.3.1/pycforge/ide/resources/help/diagnostics.html +98 -0
  561. pycforge-1.3.1/pycforge/ide/resources/help/file-io.html +102 -0
  562. pycforge-1.3.1/pycforge/ide/resources/help/help-authoring.html +63 -0
  563. pycforge-1.3.1/pycforge/ide/resources/help/help.css +145 -0
  564. pycforge-1.3.1/pycforge/ide/resources/help/runtime-classes.html +57 -0
  565. pycforge-1.3.1/pycforge/ide/resources/help/runtime-comprehensions.html +49 -0
  566. pycforge-1.3.1/pycforge/ide/resources/help/runtime-containers.html +120 -0
  567. pycforge-1.3.1/pycforge/ide/resources/help/runtime-files.html +133 -0
  568. pycforge-1.3.1/pycforge/ide/resources/help/runtime-functions.html +108 -0
  569. pycforge-1.3.1/pycforge/ide/resources/help/runtime-strings.html +88 -0
  570. pycforge-1.3.1/pycforge/ide/resources/help/runtime-values.html +123 -0
  571. pycforge-1.3.1/pycforge/ide/resources/help/safety-limits.html +48 -0
  572. pycforge-1.3.1/pycforge/ide/resources/help/shortcuts.html +102 -0
  573. pycforge-1.3.1/pycforge/ide/resources/help/start.html +74 -0
  574. pycforge-1.3.1/pycforge/ide/resources/help/ting-agents.html +42 -0
  575. pycforge-1.3.1/pycforge/ide/resources/help/types-expressions.html +107 -0
  576. pycforge-1.3.1/pycforge/ide/resources/help/workspace.html +121 -0
  577. pycforge-1.3.1/pycforge/ide/revisions.py +475 -0
  578. pycforge-1.3.1/pycforge/ide/search_service.py +281 -0
  579. pycforge-1.3.1/pycforge/ide/source_preview.py +249 -0
  580. pycforge-1.3.1/pycforge/ide/source_structure.py +514 -0
  581. pycforge-1.3.1/pycforge/ide/source_structure_async.py +233 -0
  582. pycforge-1.3.1/pycforge/ide/supervisor.py +553 -0
  583. pycforge-1.3.1/pycforge/ide/supervisor_transport.py +67 -0
  584. pycforge-1.3.1/pycforge/ide/symbol_navigation.py +73 -0
  585. pycforge-1.3.1/pycforge/ide/text_changes.py +26 -0
  586. pycforge-1.3.1/pycforge/ide/theme_steel_stylesheet.py +826 -0
  587. pycforge-1.3.1/pycforge/ide/work_budget.py +63 -0
  588. pycforge-1.3.1/pycforge/ide/workspace_search.py +463 -0
  589. pycforge-1.3.1/pycforge/laboratory/cli.py +133 -0
  590. pycforge-1.3.1/pycforge.egg-info/PKG-INFO +208 -0
  591. pycforge-1.3.1/pycforge.egg-info/SOURCES.txt +1923 -0
  592. pycforge-1.3.1/pycforge.egg-info/requires.txt +5 -0
  593. pycforge-1.3.1/pyproject.toml +58 -0
  594. pycforge-1.3.1/specifications/editor_responsiveness_1_1_7.md +130 -0
  595. pycforge-1.3.1/specifications/runtime_files_1_1_10.md +141 -0
  596. pycforge-1.3.1/specifications/runtime_modules_1_1_9.md +128 -0
  597. pycforge-1.3.1/specifications/runtime_values_1_1_4.md +113 -0
  598. pycforge-1.3.1/specifications/runtime_values_1_1_8.md +118 -0
  599. pycforge-1.3.1/tests/test_about_and_window_chrome_review.py +252 -0
  600. pycforge-1.3.1/tests/test_build_resource_lifecycle.py +68 -0
  601. pycforge-1.3.1/tests/test_checkpoint_e_versioning.py +154 -0
  602. pycforge-1.3.1/tests/test_consolidated_build.py +110 -0
  603. pycforge-1.3.1/tests/test_conversion_correctness_1_1_2.py +276 -0
  604. pycforge-1.3.1/tests/test_conversion_coverage_1_1_3.py +194 -0
  605. pycforge-1.3.1/tests/test_conversion_mode_ui_1_1_5.py +186 -0
  606. pycforge-1.3.1/tests/test_dialog_control_focus_1_0_5.py +149 -0
  607. pycforge-1.3.1/tests/test_editor_behavior_qt.py +174 -0
  608. pycforge-1.3.1/tests/test_editor_lifecycle_regressions.py +188 -0
  609. pycforge-1.3.1/tests/test_editor_productivity_1_1_6.py +411 -0
  610. pycforge-1.3.1/tests/test_editor_regressions_1_1_7.py +430 -0
  611. pycforge-1.3.1/tests/test_editor_responsiveness_1_1_7.py +393 -0
  612. pycforge-1.3.1/tests/test_everyday_runtime_1_1_8.py +277 -0
  613. pycforge-1.3.1/tests/test_find_paste_1_1_7.py +292 -0
  614. pycforge-1.3.1/tests/test_folding_assistance_1_1_7.py +222 -0
  615. pycforge-1.3.1/tests/test_help_documentation_0_16_3.py +273 -0
  616. pycforge-1.3.1/tests/test_numeric_dependency_compatibility.py +61 -0
  617. pycforge-1.3.1/tests/test_pcfc11_build.py +155 -0
  618. pycforge-1.3.1/tests/test_pcfc11_build_qt.py +98 -0
  619. pycforge-1.3.1/tests/test_pcfc11_dialog_paths.py +174 -0
  620. pycforge-1.3.1/tests/test_phase0.py +50 -0
  621. pycforge-1.3.1/tests/test_phase10_opening.py +137 -0
  622. pycforge-1.3.1/tests/test_phase12_1_editor.py +126 -0
  623. pycforge-1.3.1/tests/test_phase12_2_metadata.py +252 -0
  624. pycforge-1.3.1/tests/test_phase12_2_qt.py +294 -0
  625. pycforge-1.3.1/tests/test_phase13_contracts.py +210 -0
  626. pycforge-1.3.1/tests/test_phase14_numeric_contracts.py +159 -0
  627. pycforge-1.3.1/tests/test_phase14b_conditional_contracts.py +235 -0
  628. pycforge-1.3.1/tests/test_phase14c_keyword_contracts.py +253 -0
  629. pycforge-1.3.1/tests/test_phase14d_keyword_only_contracts.py +486 -0
  630. pycforge-1.3.1/tests/test_phase15a_metadata.py +253 -0
  631. pycforge-1.3.1/tests/test_phase15a_qt_decomposition.py +95 -0
  632. pycforge-1.3.1/tests/test_phase15a_release_packaging.py +159 -0
  633. pycforge-1.3.1/tests/test_phase15b_action_foundation.py +224 -0
  634. pycforge-1.3.1/tests/test_phase15b_action_integration.py +206 -0
  635. pycforge-1.3.1/tests/test_phase15b_release_packaging.py +1018 -0
  636. pycforge-1.3.1/tests/test_phase15c_action_contract.py +435 -0
  637. pycforge-1.3.1/tests/test_phase15c_qt_workspace_integration.py +902 -0
  638. pycforge-1.3.1/tests/test_phase15c_release_packaging.py +1049 -0
  639. pycforge-1.3.1/tests/test_phase15c_source_structure.py +378 -0
  640. pycforge-1.3.1/tests/test_phase8.py +56 -0
  641. pycforge-1.3.1/tests/test_public_distribution.py +177 -0
  642. pycforge-1.3.1/tests/test_release_contract_0_16_3.py +284 -0
  643. pycforge-1.3.1/tests/test_reliability_audit.py +134 -0
  644. pycforge-1.3.1/tests/test_resource_dialogs.py +77 -0
  645. pycforge-1.3.1/tests/test_resource_lifecycle.py +242 -0
  646. pycforge-1.3.1/tests/test_resource_lifecycle_qt.py +173 -0
  647. pycforge-1.3.1/tests/test_resource_ownership.py +86 -0
  648. pycforge-1.3.1/tests/test_resource_supervisor.py +79 -0
  649. pycforge-1.3.1/tests/test_runtime_arena_cleanup.py +100 -0
  650. pycforge-1.3.1/tests/test_runtime_dictionaries_1_1_4.py +339 -0
  651. pycforge-1.3.1/tests/test_runtime_files_1_1_10.py +389 -0
  652. pycforge-1.3.1/tests/test_runtime_modules_1_1_9.py +351 -0
  653. pycforge-1.3.1/tests/test_runtime_values_integration.py +160 -0
  654. pycforge-1.3.1/tests/test_runtime_values_preview.py +410 -0
  655. pycforge-1.3.1/tests/test_set_conversion_1_0_1.py +249 -0
  656. pycforge-1.3.1/tests/test_source_publication_memory.py +45 -0
  657. pycforge-1.3.1/tests/test_startup_layout_1_3_1.py +166 -0
  658. pycforge-1.3.1/tests/test_startup_progress_0_16_3.py +134 -0
  659. pycforge-1.3.1/tests/test_symbol_navigator_1_1_7.py +349 -0
  660. pycforge-1.3.1/tests/test_ui_review_corrections_1_0_1.py +324 -0
  661. pycforge-1.3.1/tests/test_validate_checkpoint_e.py +319 -0
  662. pycforge-1.3.1/tests/test_validate_phase15a.py +482 -0
  663. pycforge-1.3.1/tests/test_validate_phase15b.py +482 -0
  664. pycforge-1.3.1/tests/test_validate_phase15c.py +530 -0
  665. pycforge-1.3.1/tests/test_validate_phase16.py +349 -0
  666. pycforge-1.3.1/tests/test_validate_pycforge_workspace_0_12_2.py +179 -0
  667. pycforge-1.3.1/tests/test_validate_workspace_usability_0_15_3.py +164 -0
  668. pycforge-1.3.1/tools/_phase15a_runtime_validation.py +467 -0
  669. pycforge-1.3.1/tools/benchmark_editor_responsiveness.py +139 -0
  670. pycforge-1.3.1/tools/benchmark_workspace_typing.py +66 -0
  671. pycforge-1.3.1/tools/check_editor_responsiveness.py +45 -0
  672. pycforge-1.3.1/tools/generate_runtime_printable.py +23 -0
  673. pycforge-1.3.1/tools/profile_conversion_allocations.py +44 -0
  674. pycforge-1.3.1/tools/profile_conversion_memory.py +99 -0
  675. pycforge-1.3.1/tools/profile_resources.py +208 -0
  676. pycforge-1.3.1/tools/reconcile_release.py +89 -0
  677. pycforge-1.3.1/tools/runtime_preview_smoke.py +69 -0
  678. pycforge-1.3.1/tools/validate_phase16.py +1375 -0
  679. pycforge-1.3.1/tools/validate_workspace_usability_0_15_3.py +460 -0
  680. pycforge-1.3.1/tools/verify_conversion_documentation.py +367 -0
  681. pycforge-1.3.1/tools/verify_installed_editor_1_1_7.py +196 -0
  682. pycforge-1.3.1/tools/verify_installed_everyday_1_1_8.py +33 -0
  683. pycforge-1.3.1/tools/verify_installed_files_1_1_10.py +64 -0
  684. pycforge-1.3.1/tools/verify_installed_modules_1_1_9.py +50 -0
  685. pycforge-1.3.1/tools/verify_installed_version_surfaces.py +82 -0
  686. pycforge-1.3.1/tools/verify_public_distribution.py +615 -0
  687. pycforge-1.1.3/CHANGELOG.md +0 -957
  688. pycforge-1.1.3/CONVERSION_ROADMAP.md +0 -260
  689. pycforge-1.1.3/CURRENT_STATE.md +0 -489
  690. pycforge-1.1.3/HELP.md +0 -39
  691. pycforge-1.1.3/MANIFEST.in +0 -34
  692. pycforge-1.1.3/PKG-INFO +0 -197
  693. pycforge-1.1.3/PYPI_RELEASE.md +0 -281
  694. pycforge-1.1.3/README.md +0 -169
  695. pycforge-1.1.3/RELEASE_NOTES.md +0 -86
  696. pycforge-1.1.3/THIRD_PARTY_NOTICES.md +0 -39
  697. pycforge-1.1.3/pycforge/_vendor/ting_reasoner/numeric.py +0 -188
  698. pycforge-1.1.3/pycforge/_vendor/ting_reasoner_provenance.json +0 -45
  699. pycforge-1.1.3/pycforge/_version.py +0 -1
  700. pycforge-1.1.3/pycforge/converter/c_output/renderer.py +0 -237
  701. pycforge-1.1.3/pycforge/converter/contracts/configuration.py +0 -238
  702. pycforge-1.1.3/pycforge/converter/core/canonicalization.py +0 -270
  703. pycforge-1.1.3/pycforge/converter/frontend/parser.py +0 -46
  704. pycforge-1.1.3/pycforge/converter/frontend/source_document.py +0 -103
  705. pycforge-1.1.3/pycforge/converter/frontend/stages.py +0 -533
  706. pycforge-1.1.3/pycforge/converter/runtime_values/__init__.py +0 -4
  707. pycforge-1.1.3/pycforge/converter/runtime_values/compiler.py +0 -595
  708. pycforge-1.1.3/pycforge/converter/runtime_values/runtime.h +0 -436
  709. pycforge-1.1.3/pycforge/converter/runtime_values/service.py +0 -67
  710. pycforge-1.1.3/pycforge/converter/runtime_values/unicode_data.h +0 -3607
  711. pycforge-1.1.3/pycforge/ide/action_contract.py +0 -498
  712. pycforge-1.1.3/pycforge/ide/controller.py +0 -999
  713. pycforge-1.1.3/pycforge/ide/controller_conversion.py +0 -599
  714. pycforge-1.1.3/pycforge/ide/controller_io.py +0 -205
  715. pycforge-1.1.3/pycforge/ide/conversion_profiles.py +0 -22
  716. pycforge-1.1.3/pycforge/ide/editor.py +0 -941
  717. pycforge-1.1.3/pycforge/ide/editor_commands_qt.py +0 -599
  718. pycforge-1.1.3/pycforge/ide/editor_sidebars.py +0 -245
  719. pycforge-1.1.3/pycforge/ide/find_replace.py +0 -547
  720. pycforge-1.1.3/pycforge/ide/io_service.py +0 -196
  721. pycforge-1.1.3/pycforge/ide/model.py +0 -164
  722. pycforge-1.1.3/pycforge/ide/positions.py +0 -252
  723. pycforge-1.1.3/pycforge/ide/qt.py +0 -287
  724. pycforge-1.1.3/pycforge/ide/qt_about.py +0 -323
  725. pycforge-1.1.3/pycforge/ide/qt_actions.py +0 -488
  726. pycforge-1.1.3/pycforge/ide/qt_close.py +0 -223
  727. pycforge-1.1.3/pycforge/ide/qt_command_palette.py +0 -368
  728. pycforge-1.1.3/pycforge/ide/qt_dialog_chrome.py +0 -307
  729. pycforge-1.1.3/pycforge/ide/qt_documents.py +0 -528
  730. pycforge-1.1.3/pycforge/ide/qt_editor_buffers.py +0 -125
  731. pycforge-1.1.3/pycforge/ide/qt_editor_settings.py +0 -236
  732. pycforge-1.1.3/pycforge/ide/qt_editor_surfaces.py +0 -139
  733. pycforge-1.1.3/pycforge/ide/qt_file_dialogs.py +0 -946
  734. pycforge-1.1.3/pycforge/ide/qt_menus.py +0 -329
  735. pycforge-1.1.3/pycforge/ide/qt_projection.py +0 -595
  736. pycforge-1.1.3/pycforge/ide/qt_session_state.py +0 -157
  737. pycforge-1.1.3/pycforge/ide/qt_shell.py +0 -511
  738. pycforge-1.1.3/pycforge/ide/qt_shell_interactions.py +0 -402
  739. pycforge-1.1.3/pycforge/ide/qt_startup.py +0 -397
  740. pycforge-1.1.3/pycforge/ide/qt_state.py +0 -449
  741. pycforge-1.1.3/pycforge/ide/qt_ting_actions.py +0 -96
  742. pycforge-1.1.3/pycforge/ide/qt_workspace_features.py +0 -530
  743. pycforge-1.1.3/pycforge/ide/qt_workspace_navigation.py +0 -310
  744. pycforge-1.1.3/pycforge/ide/qt_workspace_observers.py +0 -201
  745. pycforge-1.1.3/pycforge/ide/resources/help/calls-modules.html +0 -63
  746. pycforge-1.1.3/pycforge/ide/resources/help/catalog.json +0 -336
  747. pycforge-1.1.3/pycforge/ide/resources/help/cli-api.html +0 -86
  748. pycforge-1.1.3/pycforge/ide/resources/help/containers-records.html +0 -55
  749. pycforge-1.1.3/pycforge/ide/resources/help/contracts.html +0 -42
  750. pycforge-1.1.3/pycforge/ide/resources/help/control-flow.html +0 -71
  751. pycforge-1.1.3/pycforge/ide/resources/help/diagnostics.html +0 -86
  752. pycforge-1.1.3/pycforge/ide/resources/help/file-io.html +0 -80
  753. pycforge-1.1.3/pycforge/ide/resources/help/help-authoring.html +0 -49
  754. pycforge-1.1.3/pycforge/ide/resources/help/help.css +0 -144
  755. pycforge-1.1.3/pycforge/ide/resources/help/runtime-classes.html +0 -57
  756. pycforge-1.1.3/pycforge/ide/resources/help/runtime-comprehensions.html +0 -45
  757. pycforge-1.1.3/pycforge/ide/resources/help/runtime-containers.html +0 -61
  758. pycforge-1.1.3/pycforge/ide/resources/help/runtime-functions.html +0 -95
  759. pycforge-1.1.3/pycforge/ide/resources/help/runtime-strings.html +0 -74
  760. pycforge-1.1.3/pycforge/ide/resources/help/runtime-values.html +0 -67
  761. pycforge-1.1.3/pycforge/ide/resources/help/safety-limits.html +0 -47
  762. pycforge-1.1.3/pycforge/ide/resources/help/shortcuts.html +0 -69
  763. pycforge-1.1.3/pycforge/ide/resources/help/start.html +0 -63
  764. pycforge-1.1.3/pycforge/ide/resources/help/ting-agents.html +0 -41
  765. pycforge-1.1.3/pycforge/ide/resources/help/types-expressions.html +0 -102
  766. pycforge-1.1.3/pycforge/ide/resources/help/workspace.html +0 -59
  767. pycforge-1.1.3/pycforge/ide/revisions.py +0 -401
  768. pycforge-1.1.3/pycforge/ide/search_service.py +0 -280
  769. pycforge-1.1.3/pycforge/ide/source_preview.py +0 -236
  770. pycforge-1.1.3/pycforge/ide/source_structure.py +0 -561
  771. pycforge-1.1.3/pycforge/ide/source_structure_async.py +0 -191
  772. pycforge-1.1.3/pycforge/ide/supervisor.py +0 -503
  773. pycforge-1.1.3/pycforge/ide/theme_steel_stylesheet.py +0 -820
  774. pycforge-1.1.3/pycforge/ide/workspace_search.py +0 -462
  775. pycforge-1.1.3/pycforge/laboratory/cli.py +0 -122
  776. pycforge-1.1.3/pycforge.egg-info/PKG-INFO +0 -197
  777. pycforge-1.1.3/pycforge.egg-info/SOURCES.txt +0 -1379
  778. pycforge-1.1.3/pycforge.egg-info/requires.txt +0 -3
  779. pycforge-1.1.3/pyproject.toml +0 -56
  780. pycforge-1.1.3/tests/test_about_and_window_chrome_review.py +0 -231
  781. pycforge-1.1.3/tests/test_checkpoint_e_versioning.py +0 -154
  782. pycforge-1.1.3/tests/test_conversion_correctness_1_1_2.py +0 -276
  783. pycforge-1.1.3/tests/test_conversion_coverage_1_1_3.py +0 -197
  784. pycforge-1.1.3/tests/test_dialog_control_focus_1_0_5.py +0 -149
  785. pycforge-1.1.3/tests/test_editor_behavior_qt.py +0 -172
  786. pycforge-1.1.3/tests/test_help_documentation_0_16_3.py +0 -273
  787. pycforge-1.1.3/tests/test_phase0.py +0 -50
  788. pycforge-1.1.3/tests/test_phase10_opening.py +0 -137
  789. pycforge-1.1.3/tests/test_phase12_1_editor.py +0 -125
  790. pycforge-1.1.3/tests/test_phase12_2_metadata.py +0 -252
  791. pycforge-1.1.3/tests/test_phase12_2_qt.py +0 -290
  792. pycforge-1.1.3/tests/test_phase13_contracts.py +0 -210
  793. pycforge-1.1.3/tests/test_phase14_numeric_contracts.py +0 -159
  794. pycforge-1.1.3/tests/test_phase14b_conditional_contracts.py +0 -235
  795. pycforge-1.1.3/tests/test_phase14c_keyword_contracts.py +0 -253
  796. pycforge-1.1.3/tests/test_phase14d_keyword_only_contracts.py +0 -486
  797. pycforge-1.1.3/tests/test_phase15a_metadata.py +0 -253
  798. pycforge-1.1.3/tests/test_phase15a_qt_decomposition.py +0 -94
  799. pycforge-1.1.3/tests/test_phase15a_release_packaging.py +0 -159
  800. pycforge-1.1.3/tests/test_phase15b_action_foundation.py +0 -224
  801. pycforge-1.1.3/tests/test_phase15b_action_integration.py +0 -202
  802. pycforge-1.1.3/tests/test_phase15b_release_packaging.py +0 -1018
  803. pycforge-1.1.3/tests/test_phase15c_action_contract.py +0 -430
  804. pycforge-1.1.3/tests/test_phase15c_qt_workspace_integration.py +0 -898
  805. pycforge-1.1.3/tests/test_phase15c_release_packaging.py +0 -1049
  806. pycforge-1.1.3/tests/test_phase15c_source_structure.py +0 -378
  807. pycforge-1.1.3/tests/test_phase8.py +0 -56
  808. pycforge-1.1.3/tests/test_public_distribution.py +0 -177
  809. pycforge-1.1.3/tests/test_release_contract_0_16_3.py +0 -284
  810. pycforge-1.1.3/tests/test_runtime_arena_cleanup.py +0 -82
  811. pycforge-1.1.3/tests/test_runtime_values_integration.py +0 -159
  812. pycforge-1.1.3/tests/test_runtime_values_preview.py +0 -410
  813. pycforge-1.1.3/tests/test_set_conversion_1_0_1.py +0 -249
  814. pycforge-1.1.3/tests/test_startup_progress_0_16_3.py +0 -134
  815. pycforge-1.1.3/tests/test_ui_review_corrections_1_0_1.py +0 -324
  816. pycforge-1.1.3/tests/test_validate_checkpoint_e.py +0 -319
  817. pycforge-1.1.3/tests/test_validate_phase15a.py +0 -482
  818. pycforge-1.1.3/tests/test_validate_phase15b.py +0 -482
  819. pycforge-1.1.3/tests/test_validate_phase15c.py +0 -530
  820. pycforge-1.1.3/tests/test_validate_phase16.py +0 -349
  821. pycforge-1.1.3/tests/test_validate_pycforge_workspace_0_12_2.py +0 -179
  822. pycforge-1.1.3/tests/test_validate_workspace_usability_0_15_3.py +0 -164
  823. pycforge-1.1.3/tools/_phase15a_runtime_validation.py +0 -467
  824. pycforge-1.1.3/tools/runtime_preview_smoke.py +0 -69
  825. pycforge-1.1.3/tools/validate_phase16.py +0 -1375
  826. pycforge-1.1.3/tools/validate_workspace_usability_0_15_3.py +0 -458
  827. pycforge-1.1.3/tools/verify_conversion_documentation.py +0 -154
  828. pycforge-1.1.3/tools/verify_public_distribution.py +0 -615
  829. {pycforge-1.1.3 → pycforge-1.3.1}/EXPERT_REVIEW_1.0.1.md +0 -0
  830. {pycforge-1.1.3 → pycforge-1.3.1}/LICENSE +0 -0
  831. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Checkpoint_E_v0_14_4_Project_Handoff.txt +0 -0
  832. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_10_v0_10_0_Project_Handoff.txt +0 -0
  833. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_11_v0_11_0_Project_Handoff.txt +0 -0
  834. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_12_v0_12_0_Project_Handoff.txt +0 -0
  835. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_13_v0_13_0_Project_Handoff.txt +0 -0
  836. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_14A_v0_14_0_Project_Handoff.txt +0 -0
  837. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_14B_v0_14_1_Project_Handoff.txt +0 -0
  838. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_14C_v0_14_2_Project_Handoff.txt +0 -0
  839. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_14D_v0_14_3_Project_Handoff.txt +0 -0
  840. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_15A_v0_15_0_Project_Handoff.txt +0 -0
  841. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_15B_v0_15_1_Project_Handoff.txt +0 -0
  842. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_15C_v0_15_2_Project_Handoff.txt +0 -0
  843. {pycforge-1.1.3 → pycforge-1.3.1}/PyCForge_Phase_9_v0_9_0_Project_Handoff.txt +0 -0
  844. {pycforge-1.1.3 → pycforge-1.3.1}/ROADMAP.md +0 -0
  845. {pycforge-1.1.3 → pycforge-1.3.1}/TING_INTEGRATION_REVIEW.md +0 -0
  846. {pycforge-1.1.3 → pycforge-1.3.1}/docs/CONVERSION_AUDIT_1_1_2.txt +0 -0
  847. {pycforge-1.1.3 → pycforge-1.3.1}/docs/HELP_AUTHORING.md +0 -0
  848. {pycforge-1.1.3 → pycforge-1.3.1}/docs/PyCForge_v0_15_2_Conversion_Examples_Reference_Edition.pdf +0 -0
  849. {pycforge-1.1.3 → pycforge-1.3.1}/docs/PyCForge_v0_16_0_Programmers_Conversion_Guide.pdf +0 -0
  850. {pycforge-1.1.3 → pycforge-1.3.1}/docs/RUNTIME_PREVIEW_REVIEW.txt +0 -0
  851. {pycforge-1.1.3 → pycforge-1.3.1}/docs/images/pycforge-help-0.16.3.png +0 -0
  852. {pycforge-1.1.3 → pycforge-1.3.1}/docs/images/pycforge-ting-agents-1.0.2.png +0 -0
  853. {pycforge-1.1.3 → pycforge-1.3.1}/docs/images/pycforge-workspace-0.15.2.png +0 -0
  854. {pycforge-1.1.3 → pycforge-1.3.1}/docs/images/pycforge-workspace-0.16.1.png +0 -0
  855. {pycforge-1.1.3 → pycforge-1.3.1}/docs/images/pycforge-workspace-0.16.3.png +0 -0
  856. {pycforge-1.1.3 → pycforge-1.3.1}/docs/images/pycforge-workspace-1.0.2.png +0 -0
  857. {pycforge-1.1.3 → pycforge-1.3.1}/docs/pycforge_workspace_quality_addendum.md +0 -0
  858. {pycforge-1.1.3 → pycforge-1.3.1}/docs/python_to_c_converter_architecture_revision_3_1.txt +0 -0
  859. {pycforge-1.1.3 → pycforge-1.3.1}/docs/python_to_c_converter_architecture_revision_3_2_addendum.md +0 -0
  860. {pycforge-1.1.3 → pycforge-1.3.1}/docs/python_to_c_converter_architecture_revision_3_3_workspace_addendum.md +0 -0
  861. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/checkpoint_e/debt_delta.json +0 -0
  862. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/checkpoint_e/entry_report.json +0 -0
  863. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/checkpoint_e/full_subset_validation.json +0 -0
  864. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/checkpoint_e/release_report.json +0 -0
  865. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/checkpoint_e/workspace_debt.json +0 -0
  866. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/full-suite.log +0 -0
  867. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/initial-missing-dependency.log +0 -0
  868. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/installed-desktop.json +0 -0
  869. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/run-with-evidence-write-race.log +0 -0
  870. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/sanitizers.log +0 -0
  871. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/suite-before-breadcrumb-fix.log +0 -0
  872. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/suite-before-span-fixes.log +0 -0
  873. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/correctness_1_1_2/validation_report.json +0 -0
  874. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/documentation-validation.json +0 -0
  875. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/final-focused.log +0 -0
  876. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/full-suite-final.log +0 -0
  877. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/gate-corrections.log +0 -0
  878. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/generate_ryu.py +0 -0
  879. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/generate_unicode.py +0 -0
  880. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/installed-desktop.json +0 -0
  881. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/package-tests.log +0 -0
  882. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/readme-verification.json +0 -0
  883. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/LICENSE-Apache2 +0 -0
  884. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/LICENSE-Boost +0 -0
  885. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/common.h +0 -0
  886. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/d2s.c +0 -0
  887. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/d2s_full_table.h +0 -0
  888. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/d2s_intrinsics.h +0 -0
  889. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/digit_table.h +0 -0
  890. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/provenance.txt +0 -0
  891. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/ryu_upstream/ryu.h +0 -0
  892. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/sanitizers-final.log +0 -0
  893. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/unicode_provenance.txt +0 -0
  894. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/coverage_1_1_3/validation_report.json +0 -0
  895. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/documentation_1_1_2/full-suite.log +0 -0
  896. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/documentation_1_1_2/help-and-startup-tests.log +0 -0
  897. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/documentation_1_1_2/readme-regression-tests.log +0 -0
  898. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/documentation_1_1_2/validation_report.json +0 -0
  899. /pycforge-1.1.3/pycforge/converter/__init__.py → /pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-desktop.stderr +0 -0
  900. /pycforge-1.1.3/pycforge/converter/contracts/__init__.py → /pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-native.stderr +0 -0
  901. /pycforge-1.1.3/pycforge/converter/core/__init__.py → /pycforge-1.3.1/evidence/editor_lifecycle_fixes/installed-version.stderr +0 -0
  902. /pycforge-1.1.3/pycforge/converter/decision_trace/__init__.py → /pycforge-1.3.1/evidence/everyday_1_1_8/documentation/help-check.ini +0 -0
  903. /pycforge-1.1.3/pycforge/converter/io/__init__.py → /pycforge-1.3.1/evidence/everyday_1_1_8/installed-desktop.stderr +0 -0
  904. /pycforge-1.1.3/pycforge/converter/telemetry/__init__.py → /pycforge-1.3.1/evidence/files_1_1_10/documentation/help-check.ini +0 -0
  905. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/architecture_report.json +0 -0
  906. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/artifact_manifest.json +0 -0
  907. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/debt_delta.json +0 -0
  908. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/decision_trace_sample.json +0 -0
  909. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/determinism_report.json +0 -0
  910. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/golden_manifest.json +0 -0
  911. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/resource_report.json +0 -0
  912. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/rule_manifest.json +0 -0
  913. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/semantics_report.json +0 -0
  914. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/test_summary.json +0 -0
  915. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_02/transition_packet.json +0 -0
  916. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_04/golden_manifest.json +0 -0
  917. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/architecture_report.json +0 -0
  918. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/conversion_debt.json +0 -0
  919. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/decision_trace_sample.json +0 -0
  920. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/determinism_report.json +0 -0
  921. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/first_slice_report.json +0 -0
  922. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/golden_manifest.json +0 -0
  923. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/rule_report.json +0 -0
  924. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/test_summary.json +0 -0
  925. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_06/transition_report.json +0 -0
  926. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_07/architecture_report.json +0 -0
  927. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_07/determinism_report.json +0 -0
  928. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_07/rule_report.json +0 -0
  929. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_07/transition_report.json +0 -0
  930. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_08/architecture_report.json +0 -0
  931. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_08/checkpoint_c.json +0 -0
  932. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_08/determinism_report.json +0 -0
  933. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_08/observer_cancellation_report.json +0 -0
  934. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_08/rule_report.json +0 -0
  935. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_08/test_summary.json +0 -0
  936. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_08/transition_report.json +0 -0
  937. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/architecture_report.json +0 -0
  938. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/conversion_debt.json +0 -0
  939. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/determinism_report.json +0 -0
  940. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/mapping_report.json +0 -0
  941. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/observer_cancellation_resource_report.json +0 -0
  942. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/phase9_report.json +0 -0
  943. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/python_package_report.json +0 -0
  944. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/review_report.json +0 -0
  945. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/rule_report.json +0 -0
  946. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/semantic_gate_report.json +0 -0
  947. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/test_summary.json +0 -0
  948. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_09/transition_report.json +0 -0
  949. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/architecture_report.json +0 -0
  950. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/determinism_report.json +0 -0
  951. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/helper_registry_report.json +0 -0
  952. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/opening_checkpoint_report.json +0 -0
  953. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/opening_package_report.json +0 -0
  954. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/opening_test_summary.json +0 -0
  955. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/package_report.json +0 -0
  956. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/phase10_report.json +0 -0
  957. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/progress_observer_report.json +0 -0
  958. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/qt_widget_smoke_report.json +0 -0
  959. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/rule_report.json +0 -0
  960. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/semantic_preservation_report.json +0 -0
  961. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/test_summary.json +0 -0
  962. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_10/transition_report.json +0 -0
  963. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/architecture_report.json +0 -0
  964. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/container_report.json +0 -0
  965. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/determinism_report.json +0 -0
  966. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/helper_registry_report.json +0 -0
  967. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/package_report.json +0 -0
  968. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/phase11_report.json +0 -0
  969. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/rule_report.json +0 -0
  970. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/schema_report.json +0 -0
  971. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/semantic_preservation_report.json +0 -0
  972. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/test_summary.json +0 -0
  973. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_11/transition_report.json +0 -0
  974. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/architecture_report.json +0 -0
  975. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/container_report.json +0 -0
  976. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/determinism_report.json +0 -0
  977. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/helper_registry_report.json +0 -0
  978. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/module_report.json +0 -0
  979. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/package_report.json +0 -0
  980. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/phase12_report.json +0 -0
  981. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/rule_report.json +0 -0
  982. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/schema_report.json +0 -0
  983. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/semantic_preservation_report.json +0 -0
  984. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/source_boundary_report.json +0 -0
  985. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/test_summary.json +0 -0
  986. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_12/transition_report.json +0 -0
  987. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_13/release_report.json +0 -0
  988. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14/conversion_debt.json +0 -0
  989. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14/entry_report.json +0 -0
  990. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14/release_report.json +0 -0
  991. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14b/conversion_debt.json +0 -0
  992. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14b/entry_report.json +0 -0
  993. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14b/release_report.json +0 -0
  994. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14c/conversion_debt.json +0 -0
  995. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14c/entry_report.json +0 -0
  996. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14c/release_report.json +0 -0
  997. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14d/conversion_debt.json +0 -0
  998. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14d/entry_report.json +0 -0
  999. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_14d/release_report.json +0 -0
  1000. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15a/performance_evidence.json +0 -0
  1001. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15a/release_report.json +0 -0
  1002. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15a/validation_report.json +0 -0
  1003. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15b/action_registry_evidence.json +0 -0
  1004. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15b/validation_report.json +0 -0
  1005. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15b/visual_system_evidence.json +0 -0
  1006. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15c/action_registry_evidence.json +0 -0
  1007. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15c/feature_evidence.json +0 -0
  1008. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15c/performance_evidence.json +0 -0
  1009. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/phase_15c/validation_report.json +0 -0
  1010. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_1/gate_evidence.md +0 -0
  1011. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_1/release_report.json +0 -0
  1012. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_2/manual_review.md +0 -0
  1013. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_1.json +0 -0
  1014. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_1.png +0 -0
  1015. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_2.json +0 -0
  1016. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_2.png +0 -0
  1017. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/pycforge_workspace_0_12_2/release_report.json +0 -0
  1018. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/runtime_values_1_1_2a1/desktop_action.log +0 -0
  1019. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/runtime_values_1_1_2a1/full_regression.log +0 -0
  1020. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/runtime_values_1_1_2a1/integration_and_allocation_cleanup.log +0 -0
  1021. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/runtime_values_1_1_2a1/sanitizers.log +0 -0
  1022. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/runtime_values_1_1_2a1/validation_report.json +0 -0
  1023. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/scalar_1_1/help-examples.json +0 -0
  1024. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/scalar_1_1/readme-preservation.json +0 -0
  1025. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/scalar_1_1/ting-reproduction.json +0 -0
  1026. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/scalar_1_1/validation_report.json +0 -0
  1027. {pycforge-1.1.3 → pycforge-1.3.1}/evidence/ting_agents/compiler_custody_attestation.json +0 -0
  1028. {pycforge-1.1.3 → pycforge-1.3.1}/fixtures/c_ir/essential_golden.c +0 -0
  1029. {pycforge-1.1.3 → pycforge-1.3.1}/fixtures/first_milestone/add.py +0 -0
  1030. {pycforge-1.1.3 → pycforge-1.3.1}/fixtures/first_milestone/expected.c +0 -0
  1031. {pycforge-1.1.3 → pycforge-1.3.1}/fixtures/first_milestone/expected_ruleplans.json +0 -0
  1032. {pycforge-1.1.3 → pycforge-1.3.1}/fixtures/runtime_values/coverage_demo.py +0 -0
  1033. {pycforge-1.1.3 → pycforge-1.3.1}/fixtures/support_templates/pycf_i64_floor_div_v1.c +0 -0
  1034. {pycforge-1.1.3 → pycforge-1.3.1}/fixtures/support_templates/pycf_i64_floor_mod_v1.c +0 -0
  1035. {pycforge-1.1.3 → pycforge-1.3.1}/licenses/Python.txt +0 -0
  1036. {pycforge-1.1.3 → pycforge-1.3.1}/licenses/Ryu-Boost-1.0.txt +0 -0
  1037. {pycforge-1.1.3 → pycforge-1.3.1}/licenses/TING_REASONER.txt +0 -0
  1038. {pycforge-1.1.3 → pycforge-1.3.1}/licenses/Unicode.txt +0 -0
  1039. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/__init__.py +0 -0
  1040. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/__main__.py +0 -0
  1041. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/__init__.py +0 -0
  1042. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/__init__.py +0 -0
  1043. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/_matching.py +0 -0
  1044. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/_numeric_kernels.py +0 -0
  1045. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/_universal.py +0 -0
  1046. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/classification.py +0 -0
  1047. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/decision_model.py +0 -0
  1048. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/engine.py +0 -0
  1049. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/entities.py +0 -0
  1050. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/errors.py +0 -0
  1051. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/indexes.py +0 -0
  1052. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/ir.py +0 -0
  1053. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/link_model.py +0 -0
  1054. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/maintenance.py +0 -0
  1055. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/memory.py +0 -0
  1056. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/model.py +0 -0
  1057. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/nd.py +0 -0
  1058. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/optimization.py +0 -0
  1059. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/py.typed +0 -0
  1060. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/results.py +0 -0
  1061. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/sharing.py +0 -0
  1062. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/store.py +0 -0
  1063. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/_vendor/ting_reasoner/transactions.py +0 -0
  1064. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/analysis/__init__.py +0 -0
  1065. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/analysis/functions.py +0 -0
  1066. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/analysis/model.py +0 -0
  1067. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/analysis/planning.py +0 -0
  1068. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/analysis/stage.py +0 -0
  1069. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/analysis/symbols.py +0 -0
  1070. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/analysis/validation.py +0 -0
  1071. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/c_output/__init__.py +0 -0
  1072. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/c_output/conformance.py +0 -0
  1073. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/conditional_regions/__init__.py +0 -0
  1074. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/conditional_regions/analysis.py +0 -0
  1075. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/conditional_regions/lowering.py +0 -0
  1076. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/conditional_regions/model.py +0 -0
  1077. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/conditional_regions/validation.py +0 -0
  1078. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/containers/__init__.py +0 -0
  1079. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/containers/analysis.py +0 -0
  1080. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/containers/lowering.py +0 -0
  1081. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/containers/model.py +0 -0
  1082. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/contracts/identifiers.py +0 -0
  1083. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/contracts/versions.py +0 -0
  1084. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/artifact_io.py +0 -0
  1085. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/cancellation.py +0 -0
  1086. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/context.py +0 -0
  1087. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/diagnostics.py +0 -0
  1088. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/enums.py +0 -0
  1089. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/fingerprint.py +0 -0
  1090. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/pipeline.py +0 -0
  1091. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/progress.py +0 -0
  1092. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/request.py +0 -0
  1093. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/resource_policy.py +0 -0
  1094. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/result.py +0 -0
  1095. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/serialization.py +0 -0
  1096. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/stage.py +0 -0
  1097. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/stage_artifact.py +0 -0
  1098. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/core/stage_outcome.py +0 -0
  1099. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/decision_trace/recorder.py +0 -0
  1100. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/facade.py +0 -0
  1101. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/file_io/__init__.py +0 -0
  1102. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/file_io/analysis.py +0 -0
  1103. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/file_io/conformance.py +0 -0
  1104. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/file_io/model.py +0 -0
  1105. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/file_io/runtime.py +0 -0
  1106. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/file_io/validation.py +0 -0
  1107. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/frontend/__init__.py +0 -0
  1108. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/frontend/normalizer.py +0 -0
  1109. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/frontend/validation.py +0 -0
  1110. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/io/atomic_writer.py +0 -0
  1111. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/__init__.py +0 -0
  1112. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/c_ir/__init__.py +0 -0
  1113. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/c_ir/builder.py +0 -0
  1114. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/c_ir/model.py +0 -0
  1115. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/c_ir/serialization.py +0 -0
  1116. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/c_ir/validation.py +0 -0
  1117. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/python_ir/__init__.py +0 -0
  1118. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/ir/python_ir/nodes.py +0 -0
  1119. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_calls/__init__.py +0 -0
  1120. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_calls/analysis.py +0 -0
  1121. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_calls/lowering.py +0 -0
  1122. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_calls/model.py +0 -0
  1123. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_calls/validation.py +0 -0
  1124. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_only_calls/__init__.py +0 -0
  1125. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_only_calls/analysis.py +0 -0
  1126. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_only_calls/lowering.py +0 -0
  1127. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_only_calls/model.py +0 -0
  1128. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/keyword_only_calls/validation.py +0 -0
  1129. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/loop_completion/__init__.py +0 -0
  1130. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/loop_completion/analysis.py +0 -0
  1131. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/loop_completion/lowering.py +0 -0
  1132. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/loop_completion/model.py +0 -0
  1133. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/loop_completion/validation.py +0 -0
  1134. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/lowering.py +0 -0
  1135. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/modules/__init__.py +0 -0
  1136. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/modules/analysis.py +0 -0
  1137. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/modules/lowering.py +0 -0
  1138. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/modules/model.py +0 -0
  1139. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/modules/stage.py +0 -0
  1140. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/numeric_semantics/__init__.py +0 -0
  1141. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/numeric_semantics/analysis.py +0 -0
  1142. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/numeric_semantics/lowering.py +0 -0
  1143. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/numeric_semantics/model.py +0 -0
  1144. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/records/__init__.py +0 -0
  1145. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/records/analysis.py +0 -0
  1146. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/records/lowering.py +0 -0
  1147. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/records/model.py +0 -0
  1148. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/rules/__init__.py +0 -0
  1149. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/runtime_values/ryu_data.h +0 -0
  1150. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/runtime_values/ryu_provenance.json +0 -0
  1151. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/runtime_values/text_ops.h +0 -0
  1152. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scalars/__init__.py +0 -0
  1153. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scalars/expansion.py +0 -0
  1154. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scalars/lowering.py +0 -0
  1155. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scalars/runtime.py +0 -0
  1156. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scalars/validation.py +0 -0
  1157. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scope_lifetimes/__init__.py +0 -0
  1158. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scope_lifetimes/analysis.py +0 -0
  1159. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scope_lifetimes/model.py +0 -0
  1160. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/scope_lifetimes/validation.py +0 -0
  1161. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/support_templates/__init__.py +0 -0
  1162. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/support_templates/assembly.py +0 -0
  1163. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/support_templates/factories.py +0 -0
  1164. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/support_templates/model.py +0 -0
  1165. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/support_templates/registry.py +0 -0
  1166. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/converter/telemetry/sink.py +0 -0
  1167. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/__init__.py +0 -0
  1168. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/__main__.py +0 -0
  1169. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_forgelens_builder.py +0 -0
  1170. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_forgelens_model.py +0 -0
  1171. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_worker_event_codec.py +0 -0
  1172. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_worker_protocol_json.py +0 -0
  1173. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_worker_protocol_types.py +0 -0
  1174. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_worker_request_codec.py +0 -0
  1175. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_worker_request_data.py +0 -0
  1176. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/_worker_result_data.py +0 -0
  1177. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/action_validation.py +0 -0
  1178. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/command_palette.py +0 -0
  1179. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/editor_lexical.py +0 -0
  1180. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/editor_markers.py +0 -0
  1181. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/editor_syntax.py +0 -0
  1182. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/forgelens.py +0 -0
  1183. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/icons.py +0 -0
  1184. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/panels.py +0 -0
  1185. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/process_worker.py +0 -0
  1186. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_contract.py +0 -0
  1187. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_forgelens.py +0 -0
  1188. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_help.py +0 -0
  1189. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_icons.py +0 -0
  1190. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_open_queue.py +0 -0
  1191. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_screen_geometry.py +0 -0
  1192. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_session.py +0 -0
  1193. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_source_preview.py +0 -0
  1194. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_text_settings.py +0 -0
  1195. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_ting_feedback.py +0 -0
  1196. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_ting_flow.py +0 -0
  1197. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_toast.py +0 -0
  1198. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_window_chrome.py +0 -0
  1199. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_window_resize.py +0 -0
  1200. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_workspace_panels.py +0 -0
  1201. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/qt_workspace_widgets.py +0 -0
  1202. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/add-document.png +0 -0
  1203. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/brand-mark.png +0 -0
  1204. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/bundle-search.png +0 -0
  1205. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/cancel.png +0 -0
  1206. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/check.png +0 -0
  1207. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/chevron-right.png +0 -0
  1208. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/close.png +0 -0
  1209. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/collapse-all.png +0 -0
  1210. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/command-palette.png +0 -0
  1211. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/convert.png +0 -0
  1212. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/copy.png +0 -0
  1213. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/cut.png +0 -0
  1214. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/decision-trace.png +0 -0
  1215. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/details.png +0 -0
  1216. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/diagnostics.png +0 -0
  1217. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/duplicate-line.png +0 -0
  1218. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/exit.png +0 -0
  1219. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/expand-all.png +0 -0
  1220. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/export.png +0 -0
  1221. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/find.png +0 -0
  1222. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/go-to-line.png +0 -0
  1223. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/go-to-output.png +0 -0
  1224. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/go-to-source.png +0 -0
  1225. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/help.png +0 -0
  1226. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/history.png +0 -0
  1227. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/indent.png +0 -0
  1228. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/link-c.png +0 -0
  1229. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/mappings.png +0 -0
  1230. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/module.png +0 -0
  1231. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/move-down.png +0 -0
  1232. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/move-line-down.png +0 -0
  1233. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/move-line-up.png +0 -0
  1234. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/move-up.png +0 -0
  1235. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/next.png +0 -0
  1236. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/open.png +0 -0
  1237. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/outdent.png +0 -0
  1238. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/outline.png +0 -0
  1239. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/paste.png +0 -0
  1240. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/previous.png +0 -0
  1241. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/primary-module.png +0 -0
  1242. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/redo.png +0 -0
  1243. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/remove-document.png +0 -0
  1244. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/replace.png +0 -0
  1245. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/save-as.png +0 -0
  1246. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/save.png +0 -0
  1247. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/select-all.png +0 -0
  1248. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/settings.png +0 -0
  1249. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/show-c.png +0 -0
  1250. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/split-view.png +0 -0
  1251. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/summary.png +0 -0
  1252. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/telemetry.png +0 -0
  1253. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/toggle-comment.png +0 -0
  1254. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/toggle-fold.png +0 -0
  1255. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/undo.png +0 -0
  1256. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/128/whitespace.png +0 -0
  1257. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/add-document.png +0 -0
  1258. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/brand-mark.png +0 -0
  1259. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/bundle-search.png +0 -0
  1260. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/cancel.png +0 -0
  1261. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/check.png +0 -0
  1262. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/chevron-right.png +0 -0
  1263. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/close.png +0 -0
  1264. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/collapse-all.png +0 -0
  1265. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/command-palette.png +0 -0
  1266. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/convert.png +0 -0
  1267. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/copy.png +0 -0
  1268. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/cut.png +0 -0
  1269. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/decision-trace.png +0 -0
  1270. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/details.png +0 -0
  1271. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/diagnostics.png +0 -0
  1272. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/duplicate-line.png +0 -0
  1273. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/exit.png +0 -0
  1274. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/expand-all.png +0 -0
  1275. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/export.png +0 -0
  1276. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/find.png +0 -0
  1277. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/go-to-line.png +0 -0
  1278. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/go-to-output.png +0 -0
  1279. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/go-to-source.png +0 -0
  1280. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/help.png +0 -0
  1281. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/history.png +0 -0
  1282. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/indent.png +0 -0
  1283. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/link-c.png +0 -0
  1284. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/mappings.png +0 -0
  1285. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/module.png +0 -0
  1286. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/move-down.png +0 -0
  1287. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/move-line-down.png +0 -0
  1288. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/move-line-up.png +0 -0
  1289. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/move-up.png +0 -0
  1290. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/next.png +0 -0
  1291. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/open.png +0 -0
  1292. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/outdent.png +0 -0
  1293. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/outline.png +0 -0
  1294. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/paste.png +0 -0
  1295. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/previous.png +0 -0
  1296. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/primary-module.png +0 -0
  1297. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/redo.png +0 -0
  1298. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/remove-document.png +0 -0
  1299. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/replace.png +0 -0
  1300. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/save-as.png +0 -0
  1301. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/save.png +0 -0
  1302. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/select-all.png +0 -0
  1303. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/settings.png +0 -0
  1304. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/show-c.png +0 -0
  1305. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/split-view.png +0 -0
  1306. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/summary.png +0 -0
  1307. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/telemetry.png +0 -0
  1308. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/toggle-comment.png +0 -0
  1309. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/toggle-fold.png +0 -0
  1310. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/undo.png +0 -0
  1311. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/16/whitespace.png +0 -0
  1312. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/add-document.png +0 -0
  1313. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/brand-mark.png +0 -0
  1314. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/bundle-search.png +0 -0
  1315. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/cancel.png +0 -0
  1316. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/check.png +0 -0
  1317. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/chevron-right.png +0 -0
  1318. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/close.png +0 -0
  1319. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/collapse-all.png +0 -0
  1320. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/command-palette.png +0 -0
  1321. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/convert.png +0 -0
  1322. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/copy.png +0 -0
  1323. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/cut.png +0 -0
  1324. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/decision-trace.png +0 -0
  1325. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/details.png +0 -0
  1326. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/diagnostics.png +0 -0
  1327. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/duplicate-line.png +0 -0
  1328. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/exit.png +0 -0
  1329. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/expand-all.png +0 -0
  1330. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/export.png +0 -0
  1331. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/find.png +0 -0
  1332. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/go-to-line.png +0 -0
  1333. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/go-to-output.png +0 -0
  1334. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/go-to-source.png +0 -0
  1335. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/help.png +0 -0
  1336. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/history.png +0 -0
  1337. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/indent.png +0 -0
  1338. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/link-c.png +0 -0
  1339. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/mappings.png +0 -0
  1340. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/module.png +0 -0
  1341. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/move-down.png +0 -0
  1342. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/move-line-down.png +0 -0
  1343. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/move-line-up.png +0 -0
  1344. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/move-up.png +0 -0
  1345. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/next.png +0 -0
  1346. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/open.png +0 -0
  1347. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/outdent.png +0 -0
  1348. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/outline.png +0 -0
  1349. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/paste.png +0 -0
  1350. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/previous.png +0 -0
  1351. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/primary-module.png +0 -0
  1352. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/redo.png +0 -0
  1353. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/remove-document.png +0 -0
  1354. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/replace.png +0 -0
  1355. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/save-as.png +0 -0
  1356. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/save.png +0 -0
  1357. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/select-all.png +0 -0
  1358. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/settings.png +0 -0
  1359. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/show-c.png +0 -0
  1360. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/split-view.png +0 -0
  1361. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/summary.png +0 -0
  1362. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/telemetry.png +0 -0
  1363. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/toggle-comment.png +0 -0
  1364. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/toggle-fold.png +0 -0
  1365. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/undo.png +0 -0
  1366. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/20/whitespace.png +0 -0
  1367. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/add-document.png +0 -0
  1368. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/brand-mark.png +0 -0
  1369. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/bundle-search.png +0 -0
  1370. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/cancel.png +0 -0
  1371. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/check.png +0 -0
  1372. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/chevron-right.png +0 -0
  1373. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/close.png +0 -0
  1374. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/collapse-all.png +0 -0
  1375. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/command-palette.png +0 -0
  1376. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/convert.png +0 -0
  1377. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/copy.png +0 -0
  1378. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/cut.png +0 -0
  1379. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/decision-trace.png +0 -0
  1380. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/details.png +0 -0
  1381. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/diagnostics.png +0 -0
  1382. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/duplicate-line.png +0 -0
  1383. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/exit.png +0 -0
  1384. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/expand-all.png +0 -0
  1385. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/export.png +0 -0
  1386. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/find.png +0 -0
  1387. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/go-to-line.png +0 -0
  1388. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/go-to-output.png +0 -0
  1389. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/go-to-source.png +0 -0
  1390. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/help.png +0 -0
  1391. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/history.png +0 -0
  1392. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/indent.png +0 -0
  1393. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/link-c.png +0 -0
  1394. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/mappings.png +0 -0
  1395. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/module.png +0 -0
  1396. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/move-down.png +0 -0
  1397. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/move-line-down.png +0 -0
  1398. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/move-line-up.png +0 -0
  1399. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/move-up.png +0 -0
  1400. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/next.png +0 -0
  1401. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/open.png +0 -0
  1402. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/outdent.png +0 -0
  1403. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/outline.png +0 -0
  1404. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/paste.png +0 -0
  1405. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/previous.png +0 -0
  1406. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/primary-module.png +0 -0
  1407. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/redo.png +0 -0
  1408. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/remove-document.png +0 -0
  1409. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/replace.png +0 -0
  1410. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/save-as.png +0 -0
  1411. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/save.png +0 -0
  1412. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/select-all.png +0 -0
  1413. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/settings.png +0 -0
  1414. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/show-c.png +0 -0
  1415. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/split-view.png +0 -0
  1416. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/summary.png +0 -0
  1417. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/telemetry.png +0 -0
  1418. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/toggle-comment.png +0 -0
  1419. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/toggle-fold.png +0 -0
  1420. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/undo.png +0 -0
  1421. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/24/whitespace.png +0 -0
  1422. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/add-document.png +0 -0
  1423. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/brand-mark.png +0 -0
  1424. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/bundle-search.png +0 -0
  1425. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/cancel.png +0 -0
  1426. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/check.png +0 -0
  1427. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/chevron-right.png +0 -0
  1428. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/close.png +0 -0
  1429. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/collapse-all.png +0 -0
  1430. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/command-palette.png +0 -0
  1431. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/convert.png +0 -0
  1432. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/copy.png +0 -0
  1433. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/cut.png +0 -0
  1434. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/decision-trace.png +0 -0
  1435. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/details.png +0 -0
  1436. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/diagnostics.png +0 -0
  1437. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/duplicate-line.png +0 -0
  1438. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/exit.png +0 -0
  1439. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/expand-all.png +0 -0
  1440. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/export.png +0 -0
  1441. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/find.png +0 -0
  1442. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/go-to-line.png +0 -0
  1443. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/go-to-output.png +0 -0
  1444. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/go-to-source.png +0 -0
  1445. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/help.png +0 -0
  1446. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/history.png +0 -0
  1447. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/indent.png +0 -0
  1448. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/link-c.png +0 -0
  1449. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/mappings.png +0 -0
  1450. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/module.png +0 -0
  1451. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/move-down.png +0 -0
  1452. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/move-line-down.png +0 -0
  1453. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/move-line-up.png +0 -0
  1454. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/move-up.png +0 -0
  1455. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/next.png +0 -0
  1456. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/open.png +0 -0
  1457. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/outdent.png +0 -0
  1458. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/outline.png +0 -0
  1459. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/paste.png +0 -0
  1460. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/previous.png +0 -0
  1461. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/primary-module.png +0 -0
  1462. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/redo.png +0 -0
  1463. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/remove-document.png +0 -0
  1464. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/replace.png +0 -0
  1465. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/save-as.png +0 -0
  1466. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/save.png +0 -0
  1467. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/select-all.png +0 -0
  1468. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/settings.png +0 -0
  1469. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/show-c.png +0 -0
  1470. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/split-view.png +0 -0
  1471. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/summary.png +0 -0
  1472. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/telemetry.png +0 -0
  1473. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/toggle-comment.png +0 -0
  1474. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/toggle-fold.png +0 -0
  1475. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/undo.png +0 -0
  1476. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/256/whitespace.png +0 -0
  1477. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/add-document.png +0 -0
  1478. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/brand-mark.png +0 -0
  1479. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/bundle-search.png +0 -0
  1480. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/cancel.png +0 -0
  1481. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/check.png +0 -0
  1482. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/chevron-right.png +0 -0
  1483. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/close.png +0 -0
  1484. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/collapse-all.png +0 -0
  1485. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/command-palette.png +0 -0
  1486. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/convert.png +0 -0
  1487. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/copy.png +0 -0
  1488. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/cut.png +0 -0
  1489. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/decision-trace.png +0 -0
  1490. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/details.png +0 -0
  1491. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/diagnostics.png +0 -0
  1492. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/duplicate-line.png +0 -0
  1493. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/exit.png +0 -0
  1494. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/expand-all.png +0 -0
  1495. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/export.png +0 -0
  1496. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/find.png +0 -0
  1497. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/go-to-line.png +0 -0
  1498. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/go-to-output.png +0 -0
  1499. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/go-to-source.png +0 -0
  1500. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/help.png +0 -0
  1501. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/history.png +0 -0
  1502. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/indent.png +0 -0
  1503. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/link-c.png +0 -0
  1504. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/mappings.png +0 -0
  1505. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/module.png +0 -0
  1506. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/move-down.png +0 -0
  1507. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/move-line-down.png +0 -0
  1508. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/move-line-up.png +0 -0
  1509. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/move-up.png +0 -0
  1510. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/next.png +0 -0
  1511. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/open.png +0 -0
  1512. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/outdent.png +0 -0
  1513. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/outline.png +0 -0
  1514. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/paste.png +0 -0
  1515. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/previous.png +0 -0
  1516. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/primary-module.png +0 -0
  1517. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/redo.png +0 -0
  1518. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/remove-document.png +0 -0
  1519. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/replace.png +0 -0
  1520. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/save-as.png +0 -0
  1521. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/save.png +0 -0
  1522. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/select-all.png +0 -0
  1523. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/settings.png +0 -0
  1524. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/show-c.png +0 -0
  1525. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/split-view.png +0 -0
  1526. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/summary.png +0 -0
  1527. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/telemetry.png +0 -0
  1528. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/toggle-comment.png +0 -0
  1529. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/toggle-fold.png +0 -0
  1530. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/undo.png +0 -0
  1531. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/32/whitespace.png +0 -0
  1532. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/add-document.png +0 -0
  1533. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/brand-mark.png +0 -0
  1534. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/bundle-search.png +0 -0
  1535. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/cancel.png +0 -0
  1536. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/check.png +0 -0
  1537. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/chevron-right.png +0 -0
  1538. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/close.png +0 -0
  1539. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/collapse-all.png +0 -0
  1540. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/command-palette.png +0 -0
  1541. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/convert.png +0 -0
  1542. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/copy.png +0 -0
  1543. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/cut.png +0 -0
  1544. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/decision-trace.png +0 -0
  1545. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/details.png +0 -0
  1546. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/diagnostics.png +0 -0
  1547. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/duplicate-line.png +0 -0
  1548. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/exit.png +0 -0
  1549. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/expand-all.png +0 -0
  1550. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/export.png +0 -0
  1551. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/find.png +0 -0
  1552. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/go-to-line.png +0 -0
  1553. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/go-to-output.png +0 -0
  1554. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/go-to-source.png +0 -0
  1555. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/help.png +0 -0
  1556. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/history.png +0 -0
  1557. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/indent.png +0 -0
  1558. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/link-c.png +0 -0
  1559. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/mappings.png +0 -0
  1560. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/module.png +0 -0
  1561. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/move-down.png +0 -0
  1562. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/move-line-down.png +0 -0
  1563. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/move-line-up.png +0 -0
  1564. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/move-up.png +0 -0
  1565. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/next.png +0 -0
  1566. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/open.png +0 -0
  1567. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/outdent.png +0 -0
  1568. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/outline.png +0 -0
  1569. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/paste.png +0 -0
  1570. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/previous.png +0 -0
  1571. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/primary-module.png +0 -0
  1572. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/redo.png +0 -0
  1573. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/remove-document.png +0 -0
  1574. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/replace.png +0 -0
  1575. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/save-as.png +0 -0
  1576. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/save.png +0 -0
  1577. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/select-all.png +0 -0
  1578. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/settings.png +0 -0
  1579. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/show-c.png +0 -0
  1580. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/split-view.png +0 -0
  1581. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/summary.png +0 -0
  1582. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/telemetry.png +0 -0
  1583. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/toggle-comment.png +0 -0
  1584. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/toggle-fold.png +0 -0
  1585. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/undo.png +0 -0
  1586. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/48/whitespace.png +0 -0
  1587. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/add-document.png +0 -0
  1588. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/brand-mark.png +0 -0
  1589. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/bundle-search.png +0 -0
  1590. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/cancel.png +0 -0
  1591. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/check.png +0 -0
  1592. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/chevron-right.png +0 -0
  1593. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/close.png +0 -0
  1594. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/collapse-all.png +0 -0
  1595. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/command-palette.png +0 -0
  1596. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/convert.png +0 -0
  1597. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/copy.png +0 -0
  1598. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/cut.png +0 -0
  1599. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/decision-trace.png +0 -0
  1600. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/details.png +0 -0
  1601. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/diagnostics.png +0 -0
  1602. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/duplicate-line.png +0 -0
  1603. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/exit.png +0 -0
  1604. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/expand-all.png +0 -0
  1605. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/export.png +0 -0
  1606. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/find.png +0 -0
  1607. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/go-to-line.png +0 -0
  1608. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/go-to-output.png +0 -0
  1609. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/go-to-source.png +0 -0
  1610. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/help.png +0 -0
  1611. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/history.png +0 -0
  1612. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/indent.png +0 -0
  1613. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/link-c.png +0 -0
  1614. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/mappings.png +0 -0
  1615. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/module.png +0 -0
  1616. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/move-down.png +0 -0
  1617. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/move-line-down.png +0 -0
  1618. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/move-line-up.png +0 -0
  1619. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/move-up.png +0 -0
  1620. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/next.png +0 -0
  1621. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/open.png +0 -0
  1622. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/outdent.png +0 -0
  1623. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/outline.png +0 -0
  1624. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/paste.png +0 -0
  1625. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/previous.png +0 -0
  1626. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/primary-module.png +0 -0
  1627. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/redo.png +0 -0
  1628. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/remove-document.png +0 -0
  1629. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/replace.png +0 -0
  1630. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/save-as.png +0 -0
  1631. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/save.png +0 -0
  1632. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/select-all.png +0 -0
  1633. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/settings.png +0 -0
  1634. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/show-c.png +0 -0
  1635. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/split-view.png +0 -0
  1636. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/summary.png +0 -0
  1637. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/telemetry.png +0 -0
  1638. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/toggle-comment.png +0 -0
  1639. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/toggle-fold.png +0 -0
  1640. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/undo.png +0 -0
  1641. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/64/whitespace.png +0 -0
  1642. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/add-document.png +0 -0
  1643. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/brand-mark.png +0 -0
  1644. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/bundle-search.png +0 -0
  1645. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/cancel.png +0 -0
  1646. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/check.png +0 -0
  1647. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/chevron-right.png +0 -0
  1648. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/close.png +0 -0
  1649. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/collapse-all.png +0 -0
  1650. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/command-palette.png +0 -0
  1651. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/convert.png +0 -0
  1652. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/copy.png +0 -0
  1653. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/cut.png +0 -0
  1654. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/decision-trace.png +0 -0
  1655. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/details.png +0 -0
  1656. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/diagnostics.png +0 -0
  1657. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/duplicate-line.png +0 -0
  1658. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/exit.png +0 -0
  1659. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/expand-all.png +0 -0
  1660. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/export.png +0 -0
  1661. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/find.png +0 -0
  1662. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/go-to-line.png +0 -0
  1663. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/go-to-output.png +0 -0
  1664. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/go-to-source.png +0 -0
  1665. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/help.png +0 -0
  1666. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/history.png +0 -0
  1667. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/indent.png +0 -0
  1668. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/link-c.png +0 -0
  1669. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/mappings.png +0 -0
  1670. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/module.png +0 -0
  1671. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/move-down.png +0 -0
  1672. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/move-line-down.png +0 -0
  1673. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/move-line-up.png +0 -0
  1674. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/move-up.png +0 -0
  1675. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/next.png +0 -0
  1676. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/open.png +0 -0
  1677. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/outdent.png +0 -0
  1678. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/outline.png +0 -0
  1679. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/paste.png +0 -0
  1680. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/previous.png +0 -0
  1681. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/primary-module.png +0 -0
  1682. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/redo.png +0 -0
  1683. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/remove-document.png +0 -0
  1684. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/replace.png +0 -0
  1685. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/save-as.png +0 -0
  1686. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/save.png +0 -0
  1687. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/select-all.png +0 -0
  1688. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/settings.png +0 -0
  1689. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/show-c.png +0 -0
  1690. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/split-view.png +0 -0
  1691. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/summary.png +0 -0
  1692. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/telemetry.png +0 -0
  1693. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/toggle-comment.png +0 -0
  1694. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/toggle-fold.png +0 -0
  1695. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/undo.png +0 -0
  1696. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/resources/icons/96/whitespace.png +0 -0
  1697. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/session_history.py +0 -0
  1698. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/source_editing.py +0 -0
  1699. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/theme.py +0 -0
  1700. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/theme_stylesheet.py +0 -0
  1701. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/theme_workspace_stylesheet.py +0 -0
  1702. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/ting_feedback.py +0 -0
  1703. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/visual_tokens.py +0 -0
  1704. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/worker_protocol.py +0 -0
  1705. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ide/workspace_session.py +0 -0
  1706. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/laboratory/__init__.py +0 -0
  1707. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/laboratory/audits.py +0 -0
  1708. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/laboratory/checkpoint_e.py +0 -0
  1709. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/laboratory/exit_codes.py +0 -0
  1710. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/laboratory/keyword_audit.py +0 -0
  1711. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/laboratory/keyword_only_audit.py +0 -0
  1712. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/__init__.py +0 -0
  1713. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/coordinator.py +0 -0
  1714. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/errors.py +0 -0
  1715. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/model.py +0 -0
  1716. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/registry.py +0 -0
  1717. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/capability.ting +0 -0
  1718. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/capability.tingspec.json +0 -0
  1719. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/lowering.ting +0 -0
  1720. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/lowering.tingspec.json +0 -0
  1721. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/ownership.ting +0 -0
  1722. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/ownership.tingspec.json +0 -0
  1723. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/registry.json +0 -0
  1724. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/semantics.ting +0 -0
  1725. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/semantics.tingspec.json +0 -0
  1726. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/syntax.ting +0 -0
  1727. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/syntax.tingspec.json +0 -0
  1728. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/verification.ting +0 -0
  1729. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/rulesets/verification.tingspec.json +0 -0
  1730. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge/ting_agents/startup.py +0 -0
  1731. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge.egg-info/dependency_links.txt +0 -0
  1732. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge.egg-info/entry_points.txt +0 -0
  1733. {pycforge-1.1.3 → pycforge-1.3.1}/pycforge.egg-info/top_level.txt +0 -0
  1734. {pycforge-1.1.3 → pycforge-1.3.1}/schemas/decision_trace.schema.json +0 -0
  1735. {pycforge-1.1.3 → pycforge-1.3.1}/schemas/telemetry.schema.json +0 -0
  1736. {pycforge-1.1.3 → pycforge-1.3.1}/setup.cfg +0 -0
  1737. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/analysis_and_planning.md +0 -0
  1738. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/approximation_policy.md +0 -0
  1739. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/bounded_containers.md +0 -0
  1740. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/c_ir_schema.md +0 -0
  1741. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/c_output_style.md +0 -0
  1742. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/c_renderer_contract.md +0 -0
  1743. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/configuration.md +0 -0
  1744. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/conversion_semantics.md +0 -0
  1745. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/diagnostics.md +0 -0
  1746. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/fact_table_schema.md +0 -0
  1747. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/feature_matrix.json +0 -0
  1748. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/generated_c_conformance.md +0 -0
  1749. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/module_bundles.md +0 -0
  1750. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase14a_bounded_integer_divmod.md +0 -0
  1751. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase14b_conditional_temporary_regions.md +0 -0
  1752. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase14c_direct_keyword_calls.md +0 -0
  1753. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase14d_required_keyword_only_calls.md +0 -0
  1754. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase6_first_complete_slice.md +0 -0
  1755. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase7_workspace.md +0 -0
  1756. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase8_control_flow.md +0 -0
  1757. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/phase9_functions_calls.md +0 -0
  1758. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/product_boundary.md +0 -0
  1759. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/pycforge_workspace.md +0 -0
  1760. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/pycforge_workspace_legacy_0_1.md +0 -0
  1761. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/python_ir_schema.md +0 -0
  1762. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/representation_ownership_lifetime.md +0 -0
  1763. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/resource_cancellation_save.md +0 -0
  1764. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/result_and_fingerprints.md +0 -0
  1765. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/rule_plan_schema.md +0 -0
  1766. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/runtime_values_1_1_2.md +0 -0
  1767. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/runtime_values_1_1_3.md +0 -0
  1768. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/scalar_strings_1_1.md +0 -0
  1769. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/source_bundle.md +0 -0
  1770. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/source_frontend.md +0 -0
  1771. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/static_records.md +0 -0
  1772. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/support_templates.md +0 -0
  1773. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/supported_python.md +0 -0
  1774. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/target_c_source_contract.md +0 -0
  1775. {pycforge-1.1.3 → pycforge-1.3.1}/specifications/ting_agent_architecture.md +0 -0
  1776. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_checkpoint_e_audits.py +0 -0
  1777. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_checkpoint_e_feature_matrix.py +0 -0
  1778. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_checkpoint_e_predecessor_equivalence.py +0 -0
  1779. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_checkpoint_e_release_packaging.py +0 -0
  1780. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_editor_settings_qt.py +0 -0
  1781. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_final_windows_acceptance_1_0_1.py +0 -0
  1782. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_forgelens.py +0 -0
  1783. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_forgelens_controller.py +0 -0
  1784. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_frontend_eof_boundaries.py +0 -0
  1785. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase1.py +0 -0
  1786. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase10.py +0 -0
  1787. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase11.py +0 -0
  1788. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase12.py +0 -0
  1789. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase12_1_pycforge_theme.py +0 -0
  1790. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase12_2_components.py +0 -0
  1791. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase12_2_controller.py +0 -0
  1792. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase13_audits.py +0 -0
  1793. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase13_c_ir.py +0 -0
  1794. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase13_end_to_end.py +0 -0
  1795. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase13_record_analysis.py +0 -0
  1796. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase13_record_lowering.py +0 -0
  1797. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase13_record_validation.py +0 -0
  1798. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14_numeric_end_to_end.py +0 -0
  1799. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14_numeric_hardening.py +0 -0
  1800. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14b_audits.py +0 -0
  1801. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14b_conditional_analysis.py +0 -0
  1802. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14b_conditional_hardening.py +0 -0
  1803. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14b_conditional_lowering.py +0 -0
  1804. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14c_cumulative_eligibility.py +0 -0
  1805. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14c_keyword_analysis.py +0 -0
  1806. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14c_keyword_audits.py +0 -0
  1807. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14c_keyword_hardening.py +0 -0
  1808. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14c_keyword_lowering.py +0 -0
  1809. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14d_cumulative_eligibility.py +0 -0
  1810. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14d_keyword_only_analysis.py +0 -0
  1811. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14d_keyword_only_hardening.py +0 -0
  1812. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase14d_keyword_only_lowering.py +0 -0
  1813. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_async_search.py +0 -0
  1814. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_controller.py +0 -0
  1815. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_editor_decomposition.py +0 -0
  1816. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_editor_large_file.py +0 -0
  1817. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_io_service.py +0 -0
  1818. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_position_indexes.py +0 -0
  1819. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_revisions.py +0 -0
  1820. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_stress.py +0 -0
  1821. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_supervisor.py +0 -0
  1822. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15a_worker_protocol.py +0 -0
  1823. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15b_release_contract.py +0 -0
  1824. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15b_visual_foundation.py +0 -0
  1825. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15b_visual_integration.py +0 -0
  1826. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_command_palette.py +0 -0
  1827. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_qt_command_contract.py +0 -0
  1828. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_qt_panels_contract.py +0 -0
  1829. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_qt_position_reverse.py +0 -0
  1830. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_release_contract.py +0 -0
  1831. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_session_history.py +0 -0
  1832. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_source_editing.py +0 -0
  1833. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_visual_system.py +0 -0
  1834. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_workspace_search.py +0 -0
  1835. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase15c_workspace_session.py +0 -0
  1836. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_c_ir_validation_hardening.py +0 -0
  1837. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_file_io_analysis.py +0 -0
  1838. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_file_io_end_to_end.py +0 -0
  1839. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_file_io_payload_validation.py +0 -0
  1840. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_file_io_registry.py +0 -0
  1841. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_file_io_rejections.py +0 -0
  1842. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_file_io_runtime.py +0 -0
  1843. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_file_io_validation.py +0 -0
  1844. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_loop_analysis.py +0 -0
  1845. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_loop_end_to_end.py +0 -0
  1846. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_loop_lowering.py +0 -0
  1847. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_loop_payload_validation.py +0 -0
  1848. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_loop_resources.py +0 -0
  1849. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_loop_validation.py +0 -0
  1850. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_scope_analysis.py +0 -0
  1851. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_scope_boundaries.py +0 -0
  1852. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_scope_payload_validation.py +0 -0
  1853. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase16_scope_validation.py +0 -0
  1854. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase2.py +0 -0
  1855. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase3.py +0 -0
  1856. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase4.py +0 -0
  1857. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase5.py +0 -0
  1858. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase6.py +0 -0
  1859. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase7.py +0 -0
  1860. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_phase9.py +0 -0
  1861. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_programmers_guide.py +0 -0
  1862. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_pycforge_qt_integration.py +0 -0
  1863. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_pycforge_workspace.py +0 -0
  1864. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_qt_file_dialogs.py +0 -0
  1865. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_qt_forgelens.py +0 -0
  1866. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_qt_open_queue.py +0 -0
  1867. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_release_1_0_2_presentation.py +0 -0
  1868. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_review_hardening.py +0 -0
  1869. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_scalar_strings_1_1.py +0 -0
  1870. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_smoke_pycforge_workspace_0_12_2.py +0 -0
  1871. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_source_preview.py +0 -0
  1872. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_steel_theme.py +0 -0
  1873. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_ting_agents.py +0 -0
  1874. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_typing_ui_stability_qt.py +0 -0
  1875. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_ui_continuity_1_0_1.py +0 -0
  1876. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_ui_lifecycle_0_16_3.py +0 -0
  1877. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_validate_phase13.py +0 -0
  1878. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_validate_phase14.py +0 -0
  1879. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_validate_phase14b.py +0 -0
  1880. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_validate_phase14c.py +0 -0
  1881. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_validate_phase14d.py +0 -0
  1882. {pycforge-1.1.3 → pycforge-1.3.1}/tests/test_windows_ui_scale_and_identity_1_0_1.py +0 -0
  1883. {pycforge-1.1.3 → pycforge-1.3.1}/tools/_phase15b_release_contract.py +0 -0
  1884. {pycforge-1.1.3 → pycforge-1.3.1}/tools/_phase15c_release_contract.py +0 -0
  1885. {pycforge-1.1.3 → pycforge-1.3.1}/tools/build_checkpoint_e_release.py +0 -0
  1886. {pycforge-1.1.3 → pycforge-1.3.1}/tools/build_phase15a_release.py +0 -0
  1887. {pycforge-1.1.3 → pycforge-1.3.1}/tools/build_phase15b_release.py +0 -0
  1888. {pycforge-1.1.3 → pycforge-1.3.1}/tools/build_phase15c_release.py +0 -0
  1889. {pycforge-1.1.3 → pycforge-1.3.1}/tools/build_programmers_guide.py +0 -0
  1890. {pycforge-1.1.3 → pycforge-1.3.1}/tools/checkpoint_e_predecessor_equivalence.py +0 -0
  1891. {pycforge-1.1.3 → pycforge-1.3.1}/tools/collect_phase11_evidence.py +0 -0
  1892. {pycforge-1.1.3 → pycforge-1.3.1}/tools/collect_phase12_evidence.py +0 -0
  1893. {pycforge-1.1.3 → pycforge-1.3.1}/tools/normalize_sdist.py +0 -0
  1894. {pycforge-1.1.3 → pycforge-1.3.1}/tools/smoke_phase10_qt.py +0 -0
  1895. {pycforge-1.1.3 → pycforge-1.3.1}/tools/smoke_phase11_qt.py +0 -0
  1896. {pycforge-1.1.3 → pycforge-1.3.1}/tools/smoke_pycforge_workspace_0_12_2.py +0 -0
  1897. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_checkpoint_e.py +0 -0
  1898. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase0.py +0 -0
  1899. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase1.py +0 -0
  1900. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase10.py +0 -0
  1901. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase10_opening.py +0 -0
  1902. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase11.py +0 -0
  1903. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase12.py +0 -0
  1904. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase13.py +0 -0
  1905. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase14.py +0 -0
  1906. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase14b.py +0 -0
  1907. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase14c.py +0 -0
  1908. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase14d.py +0 -0
  1909. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase15a.py +0 -0
  1910. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase15b.py +0 -0
  1911. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase15c.py +0 -0
  1912. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase2.py +0 -0
  1913. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase3.py +0 -0
  1914. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase4.py +0 -0
  1915. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase5.py +0 -0
  1916. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase6.py +0 -0
  1917. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase7.py +0 -0
  1918. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase8.py +0 -0
  1919. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_phase9.py +0 -0
  1920. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_pycforge_workspace_0_12_1.py +0 -0
  1921. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_pycforge_workspace_0_12_2.py +0 -0
  1922. {pycforge-1.1.3 → pycforge-1.3.1}/tools/validate_ting_agents.py +0 -0
  1923. {pycforge-1.1.3 → pycforge-1.3.1}/tools/verify_pypi_readme.py +0 -0
  1924. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/architecture_and_workspace_decision.md +0 -0
  1925. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/breadth_and_change_budgets.md +0 -0
  1926. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/entry_criteria.md +0 -0
  1927. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/feature_boundaries.md +0 -0
  1928. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/feature_matrix_reconciliation.md +0 -0
  1929. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/gate_evidence.md +0 -0
  1930. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/manifest.json +0 -0
  1931. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/opening_evidence.md +0 -0
  1932. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/performance_budgets.md +0 -0
  1933. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/release_fingerprint.json +0 -0
  1934. {pycforge-1.1.3 → pycforge-1.3.1}/transition/checkpoint_e/rollback_conditions.md +0 -0
  1935. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_0/baseline_fingerprint.json +0 -0
  1936. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_0/first_milestone_contract.md +0 -0
  1937. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_0/manifest.json +0 -0
  1938. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_0/non_goals_by_phase.md +0 -0
  1939. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_1/baseline_fingerprint.json +0 -0
  1940. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_1/empty_pipeline_invariants.md +0 -0
  1941. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_1/facade_contract.md +0 -0
  1942. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_1/manifest.json +0 -0
  1943. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/baseline_fingerprint.json +0 -0
  1944. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/entry_criteria.md +0 -0
  1945. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/entry_gate.md +0 -0
  1946. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/gate_evidence.md +0 -0
  1947. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/helper_feasibility_decisions.md +0 -0
  1948. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/manifest.json +0 -0
  1949. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/opening_checkpoint_fingerprint.json +0 -0
  1950. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/opening_checkpoint_manifest.json +0 -0
  1951. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_10/rollback_conditions.md +0 -0
  1952. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_11/baseline_fingerprint.json +0 -0
  1953. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_11/container_representation_decisions.md +0 -0
  1954. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_11/entry_criteria.md +0 -0
  1955. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_11/gate_evidence.md +0 -0
  1956. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_11/manifest.json +0 -0
  1957. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_11/rollback_conditions.md +0 -0
  1958. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_12/baseline_fingerprint.json +0 -0
  1959. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_12/entry_criteria.md +0 -0
  1960. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_12/gate_evidence.md +0 -0
  1961. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_12/manifest.json +0 -0
  1962. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_12/module_bundle_decisions.md +0 -0
  1963. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_12/rollback_conditions.md +0 -0
  1964. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/baseline_fingerprint.json +0 -0
  1965. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/candidate_reseed.md +0 -0
  1966. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/entry_criteria.md +0 -0
  1967. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/gate_evidence.md +0 -0
  1968. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/manifest.json +0 -0
  1969. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/record_representation_decisions.md +0 -0
  1970. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/release_fingerprint.json +0 -0
  1971. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_13/rollback_conditions.md +0 -0
  1972. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/baseline_fingerprint.json +0 -0
  1973. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/breadth_and_change_budgets.md +0 -0
  1974. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/entry_criteria.md +0 -0
  1975. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/gate_evidence.md +0 -0
  1976. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/integer_divmod_decision.md +0 -0
  1977. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/manifest.json +0 -0
  1978. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/opening_evidence.md +0 -0
  1979. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/release_fingerprint.json +0 -0
  1980. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14/rollback_conditions.md +0 -0
  1981. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/baseline_fingerprint.json +0 -0
  1982. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/breadth_and_change_budgets.md +0 -0
  1983. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/conditional_temporary_regions_decision.md +0 -0
  1984. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/entry_criteria.md +0 -0
  1985. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/gate_evidence.md +0 -0
  1986. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/manifest.json +0 -0
  1987. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/opening_evidence.md +0 -0
  1988. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/release_fingerprint.json +0 -0
  1989. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14b/rollback_conditions.md +0 -0
  1990. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/baseline_fingerprint.json +0 -0
  1991. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/breadth_and_change_budgets.md +0 -0
  1992. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/direct_keyword_calls_decision.md +0 -0
  1993. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/entry_criteria.md +0 -0
  1994. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/gate_evidence.md +0 -0
  1995. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/manifest.json +0 -0
  1996. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/opening_evidence.md +0 -0
  1997. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/release_fingerprint.json +0 -0
  1998. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14c/rollback_conditions.md +0 -0
  1999. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/baseline_fingerprint.json +0 -0
  2000. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/breadth_and_change_budgets.md +0 -0
  2001. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/entry_criteria.md +0 -0
  2002. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/gate_evidence.md +0 -0
  2003. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/manifest.json +0 -0
  2004. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/opening_evidence.md +0 -0
  2005. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/release_fingerprint.json +0 -0
  2006. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/required_keyword_only_calls_decision.md +0 -0
  2007. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_14d/rollback_conditions.md +0 -0
  2008. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15a/entry_criteria.md +0 -0
  2009. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15a/gate_evidence.md +0 -0
  2010. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15a/manifest.json +0 -0
  2011. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15a/release_fingerprint.json +0 -0
  2012. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15a/responsiveness_and_isolation_decision.md +0 -0
  2013. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15a/rollback_conditions.md +0 -0
  2014. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15b/application_shell_decision.md +0 -0
  2015. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15b/entry_criteria.md +0 -0
  2016. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15b/gate_evidence.md +0 -0
  2017. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15b/manifest.json +0 -0
  2018. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15b/release_fingerprint.json +0 -0
  2019. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15b/rollback_conditions.md +0 -0
  2020. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15c/entry_criteria.md +0 -0
  2021. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15c/gate_evidence.md +0 -0
  2022. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15c/manifest.json +0 -0
  2023. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15c/release_fingerprint.json +0 -0
  2024. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15c/rollback_conditions.md +0 -0
  2025. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_15c/workspace_completeness_decision.md +0 -0
  2026. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_2/baseline_fingerprint.json +0 -0
  2027. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_2/checkpoint_a.md +0 -0
  2028. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_2/laboratory_contract.md +0 -0
  2029. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_2/manifest.json +0 -0
  2030. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_3/baseline_fingerprint.json +0 -0
  2031. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_3/gate_evidence.md +0 -0
  2032. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_3/manifest.json +0 -0
  2033. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_4/baseline_fingerprint.json +0 -0
  2034. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_4/gate_evidence.md +0 -0
  2035. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_4/manifest.json +0 -0
  2036. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_5/baseline_fingerprint.json +0 -0
  2037. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_5/entry_criteria.md +0 -0
  2038. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_5/gate_evidence.md +0 -0
  2039. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_5/manifest.json +0 -0
  2040. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_6/baseline_fingerprint.json +0 -0
  2041. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_6/checkpoint_b.md +0 -0
  2042. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_6/entry_criteria.md +0 -0
  2043. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_6/gate_evidence.md +0 -0
  2044. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_6/manifest.json +0 -0
  2045. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_7/baseline_fingerprint.json +0 -0
  2046. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_7/entry_criteria.md +0 -0
  2047. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_7/gate_evidence.md +0 -0
  2048. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_7/manifest.json +0 -0
  2049. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_7/rollback_conditions.md +0 -0
  2050. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_8/baseline_fingerprint.json +0 -0
  2051. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_8/entry_criteria.md +0 -0
  2052. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_8/gate_evidence.md +0 -0
  2053. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_8/manifest.json +0 -0
  2054. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_8/rollback_conditions.md +0 -0
  2055. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_9/baseline_fingerprint.json +0 -0
  2056. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_9/entry_criteria.md +0 -0
  2057. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_9/gate_evidence.md +0 -0
  2058. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_9/manifest.json +0 -0
  2059. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_9/rollback_conditions.md +0 -0
  2060. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_minus_1/feasibility_decisions.md +0 -0
  2061. {pycforge-1.1.3 → pycforge-1.3.1}/transition/phase_minus_1/risk_register.json +0 -0
  2062. {pycforge-1.1.3 → pycforge-1.3.1}/transition/workspace_hardening_0_12_1/README.md +0 -0
  2063. {pycforge-1.1.3 → pycforge-1.3.1}/transition/workspace_hardening_0_12_1/manifest.json +0 -0
  2064. {pycforge-1.1.3 → pycforge-1.3.1}/transition/workspace_hardening_0_12_2/README.md +0 -0
  2065. {pycforge-1.1.3 → pycforge-1.3.1}/transition/workspace_hardening_0_12_2/gate_evidence.md +0 -0
  2066. {pycforge-1.1.3 → pycforge-1.3.1}/transition/workspace_hardening_0_12_2/manifest.json +0 -0
@@ -0,0 +1,1228 @@
1
+ # PyCForge 1.3.1 — reliability update
2
+
3
+ This is one cumulative update to the complete PyCForge application.
4
+
5
+ Installation/splash correction, keeping version 1.3.1:
6
+ - Declare PySide6, NumPy, Numba, Jedi and autopep8 by name without dependency version pins.
7
+ - Check numeric dependency presence without comparing version numbers; retain real import/kernel readiness checks.
8
+ - Fit the complete splash icon, subtitle descenders and wrapped failure details using layout size hints.
9
+ - Give Cancel/Close initial keyboard focus so the title-bar X does not appear stuck highlighted.
10
+ - Resolve parameter rename references safely with both tested Jedi generations, preserving unrelated same-named globals.
11
+
12
+ - Bind deferred Qt callbacks to their owner and release pending generated-C projection on shutdown.
13
+ - Reject non-regular preview inputs without blocking on POSIX named pipes; retain UTF-8 and size checks.
14
+ - Reap an outline child and close its handles if process startup raises after creating it.
15
+ - Publish immutable source-token records incrementally to avoid holding two complete dictionary trees.
16
+ - Enforce Typed token budgets during tokenization, preserving supported conversion output and diagnostic codes.
17
+ - Preserve all Typed/Runtime, module/file, editor, Jedi/autopep8, tooltip, gutter and PCFC11 features.
18
+
19
+ See PyCForge-1.3.1-Reliability-Audit.txt for exact findings, measurements, validation and remaining native-platform checks.
20
+
21
+ # PyCForge 1.3.0 — complete consolidated release
22
+
23
+ One installation now contains the complete 1.1.12 advanced conversion/editor
24
+ line plus the 1.2.2 PCFC11 integration and additional resource-lifecycle fixes.
25
+ There is no choice between conversion coverage and compilation support.
26
+
27
+ - Both Typed and Runtime modes; runtime strings, lists, dictionaries, classes,
28
+ closures, comprehensions, everyday builtins/formatting, supplied modules and
29
+ connected UTF-8 file workflows are retained.
30
+ - Current editor tools, shared work admission, bounded caches, Open/New Module
31
+ recovery and fold-marker fixes are retained.
32
+ - PCFC11 dialog focus and custom compiler/output chooser fixes are included.
33
+ Object and executable builds accept both conversion ABIs. Runtime executable
34
+ adapters handle errors and destroy their value context before returning.
35
+ Windows UCRT compatibility headers supply runtime declarations missing
36
+ from PCFC11 0.1.1; Windows assembly generation is checked at O0 and O1.
37
+ - Cancelled application startup now finishes and releases its modal dialog,
38
+ preventing it from blocking subsequent windows and keyboard shortcuts.
39
+ - Conversion cancellation is retained throughout request encoding/spawning; idle
40
+ service frames release payloads. Modal children are destroyed; hidden timers
41
+ stop. Slow file previews cannot keep the interpreter alive through Qt's pool.
42
+ Regular workspace file reads are bounded to 16 MiB and reject special files.
43
+ - The README and 21 offline Help pages describe the combined application.
44
+ Existing screenshot links and advanced runtime implementation are preserved.
45
+
46
+ PCFC11 remains a separately installed compiler with a system assembler/linker.
47
+ The package adds no dependency beyond those already required by 1.1.12.
48
+ Native Linux validation is recorded in evidence/consolidation. Native Windows
49
+ acceptance and actual laptop energy measurements remain outstanding. Runtime
50
+ values retain their documented arena lifetime; whole-process memory is not
51
+ bounded by the arena budget. No PyPI publication was performed.
52
+
53
+ The evidence/consolidation directory records this release's checks. Historical
54
+ release notes and evidence below describe their original versions only.
55
+
56
+ ---
57
+
58
+ # PyCForge 1.1.12 — resource ownership and process reliability
59
+
60
+ This patch updates 1.1.11. Closed temporary dialogs and their filesystem models
61
+ are destroyed after use; About clocks run only while visible. Idle conversion
62
+ supervisors wait for work, and idle service threads release completed payloads.
63
+ Conversion pipe transfers cannot block cancellation or shutdown. Malformed
64
+ worker envelopes trigger process reclamation, and reaped process handles close.
65
+
66
+ The app, package metadata, About, startup, Help and reports use the same product
67
+ version. Converter source, semantic contracts, dependencies, and HTML Help
68
+ content are unchanged. Earlier editor lifecycle and About improvements remain.
69
+
70
+ Measured evidence, reproduced baseline failures, scope and native Windows
71
+ acceptance steps are in evidence/resource_audit. These checks do not certify
72
+ battery life or the absence of every possible resource leak.
73
+
74
+ # PyCForge 1.1.11
75
+
76
+ The About dialog omits the Ting Shadow / Advisory badge. Application version
77
+ metadata, window titles, startup, About, Help and package metadata use 1.1.11.
78
+
79
+ - Fix the empty-workspace marker refresh after closing the last Python tab with generated C visible.
80
+ - Recover stale Source Bundle selections so Open Python and New Module remain usable.
81
+ - Restore fold markers on module changes and syntax highlighting without parsing large source on the GUI thread.
82
+ - Cover rejected transpilation, late callbacks, pending edits, shared gutters, and repeated close/reopen cycles.
83
+
84
+ # PyCForge 1.1.10 — connected UTF-8 file workflows
85
+
86
+ Runtime functions can now read text, process it through local or imported
87
+ helpers, and write or append results. Scoped open calls support character-sized
88
+ reads, line iteration/readlines, write/writelines, flush, and early close.
89
+ UTF-8 contents support embedded NUL; paths support Unicode and reject NUL.
90
+ Newline=None and newline="" have distinct documented translation behavior.
91
+
92
+ Cleanup covers normal exits, return, break, continue, failed later opens, and
93
+ runtime errors. Handles passed to helpers share their cursor; returned text
94
+ outlives its handle. Per-context limits bound open handles, operations, retained
95
+ read buffers, and per-handle input consumption. Obsolete transient read buffers
96
+ are reclaimed while public values retain the established arena lifetime.
97
+
98
+ The 21-page HTML Help is a user manual with no development-cycle status. It
99
+ adds complete read/process/write examples, a three-module report, input and
100
+ expected output files, operation tables, newline rules, and error guidance.
101
+ Stale module-limit and install examples were corrected. README retains its two
102
+ original screenshot links and 200-line limit. Dependencies are unchanged.
103
+
104
+ Typed file functions retain their external status-pointer ABI; connected file
105
+ calls use Runtime mode. Exception recovery, independent runtime C-IR validation,
106
+ and exact runtime ForgeLens mappings remain outside this delivery. PYC4699 is
107
+ retained. Native Windows acceptance is pending; no PyPI publication occurred.
108
+ See specifications/runtime_files_1_1_10.md, fixtures/runtime_files_1_1_10, and
109
+ evidence/files_1_1_10 for the contract, runnable report, and validation evidence.
110
+
111
+ ---
112
+
113
+ # PyCForge 1.1.9 — runtime programs across supplied files
114
+
115
+ Runtime conversion now accepts explicit source bundles. Named imports, module
116
+ aliases, re-exports, imported classes/functions/constants, and immutable
117
+ scalar/tuple module constants work with the existing runtime operations.
118
+ Namespaces remain separate. Imports and defaults initialize in source order,
119
+ once per C context; remaining supplied files initialize as explicit roots.
120
+
121
+ The workspace converts all open documents. CLI conversion/validation accepts
122
+ repeated `--module ID=PATH` and `--module-id ID`. C runtime failures now preserve
123
+ the logical source file and line. Runtime artifacts can be inspected with the
124
+ CLI. No installation dependency changed.
125
+
126
+ Relative/star/local/conditional/cyclic imports, implicit packages, file discovery,
127
+ writable globals, and general module execution remain excluded. Runtime file
128
+ I/O and exception recovery remain the next coverage work. Runtime C-IR proof
129
+ validation, exact ForgeLens mappings, and reclamation during a context lifetime
130
+ remain unfinished. The development warning is retained. Windows acceptance is
131
+ pending; no PyPI publication is part of this release.
132
+
133
+ See `specifications/runtime_modules_1_1_9.md`, the four-file invoice fixture,
134
+ and `evidence/modules_1_1_9/` for contracts, examples, and recorded verification.
135
+
136
+ ---
137
+
138
+ # PyCForge 1.1.8 — everyday runtime conversions
139
+
140
+ Runtime conversion now implements sum, min/max (key/default), abs, round,
141
+ any/all, stable sorted and list.sort (key/reverse), lazy enumerate and zip
142
+ (including strict), iter/next, and builtin function values such as key=abs.
143
+ Lists add extend, pop, insert, remove, reverse, clear, copy, and index; tuples
144
+ also add index. Shared list identity is preserved through mutations.
145
+
146
+ F-strings, format(), and str.format() share bounded precision, width,
147
+ alignment, sign, grouping, decimal/base and floating presentation. !s/!r/!a,
148
+ named/numbered fields, field access, and nested width/precision are supported.
149
+ Print/str/repr/ascii now render nested lists, tuples, dictionaries and views,
150
+ including cycle markers. Numeric rounding uses exact binary64 decimal digits.
151
+
152
+ Select Transpile → Runtime; the CLI uses --runtime-values. No installation
153
+ dependencies changed. The README retains exactly its two screenshot links.
154
+ The existing 20-page HTML Help now documents these operations and examples.
155
+
156
+ Runtime remains a bounded development backend: one source document, no imports,
157
+ module assignments, file I/O, exception recovery, generators or runtime sets.
158
+ Integers are checked int64; floating sums follow Python 3.12 compensated summation.
159
+ Formatting excludes locale-sensitive n, character c, z and custom protocols;
160
+ width is at most 1,000,000 and precision at most 1,000. Numeric formatting needs
161
+ C numeric locale and round-to-nearest. Values remain owned until pv_destroy().
162
+ Exact ForgeLens mappings and the typed C-IR validation path are still absent.
163
+ Native Windows acceptance and PyPI publication have not been performed.
164
+
165
+ See specifications/runtime_values_1_1_8.md for the conversion contract and
166
+ tests/test_everyday_runtime_1_1_8.py for native comparisons against Python.
167
+
168
+ ---
169
+
170
+ # PyCForge 1.1.7 — editor responsiveness and correctness
171
+
172
+ This release batches occurrence selection and caret merging, removes fold parsing
173
+ from gutter painting, and fixes the large-document replacement transition.
174
+ Unchanged documents reuse byte-bounded position and outline caches. Outline
175
+ parsing runs in a persistent, cancellable process and extracts symbols without
176
+ building conversion IR. A shared work budget prioritizes explicit operations,
177
+ limits admitted CPU work to one or two jobs, and defers passive observers while
178
+ typing. Current immutable source snapshots are shared between editor consumers.
179
+
180
+ Editor workers retain bounded exact-request replies; formatting diffs are built
181
+ in the worker. New edits still invalidate publication and preview authority.
182
+ Cancellation stops active outline parsing, and obsolete revision indexes check
183
+ for cancellation during scanning. Closed documents leave the document caches.
184
+
185
+ Correctness fixes preserve multiple carets across physical modifier presses,
186
+ prevent extra quote insertion inside comments/strings, replace the existing
187
+ identifier tail when accepting completion, keep selection formatting inside its
188
+ original lines, and correct form-feed navigation offsets. Unsafe inheritance,
189
+ class-private, Unicode-alias, and decorated-parameter renames are refused with an
190
+ explanation. Atomic saves retain existing permission modes and follow symlink
191
+ targets rather than replacing the link.
192
+
193
+ The typed/runtime converter implementations and dependency requirements are
194
+ unchanged. Both README screenshot URLs are preserved. Local Qt measurements,
195
+ regression results, and a focused Windows acceptance checklist accompany this
196
+ candidate. Native Windows acceptance is pending; local timings are not a
197
+ cross-platform input-to-display guarantee. No PyPI publication was performed.
198
+
199
+ ---
200
+
201
+ # PyCForge 1.1.6 — professional Python editing
202
+
203
+ This release adds smart pairs and selection wrapping, up to 256 simultaneous
204
+ cursors, regex and selection-scoped search, previewed replacement across open
205
+ source documents, offline completion and parameter hints, definition navigation
206
+ with return, current-document scope-aware rename with preview, and explicit
207
+ undoable formatting of a document or selected lines.
208
+
209
+ Edit now has compact Selection, Lines, Find and Replace, Code, and Folding
210
+ Functions submenus. All native menu surfaces are bounded to the current monitor
211
+ work area, using More Commands submenus for overflow. The existing toolbar is unchanged.
212
+
213
+ Jedi 0.19.x and autopep8 2.3.x are new installation dependencies; parso and
214
+ pycodestyle are installed with them. Editing runs offline. Source analysis and
215
+ regex searches run in deadline-bound processes, use source as data, and reject
216
+ stale results. No backups, autosave, recovery snapshots, or source execution were
217
+ added. The Python-to-C converter implementations are unchanged from 1.1.5.
218
+
219
+ Rename is limited to statically resolved references in the current document,
220
+ refuses name collisions, and preserves imported exports with explicit aliases.
221
+ Dynamic string lookups and references in other documents require manual review.
222
+ Formatting checks syntax-tree equivalence before applying. Analysis accepts
223
+ 500,000 characters per document; search previews accept up to 64 open documents,
224
+ 4 million characters total, and 2,000 matches. Oversized results are not applied.
225
+
226
+ Automated validation and native Windows acceptance status are recorded in the
227
+ release evidence and Windows checklist included with the distribution bundle.
228
+
229
+ # PyCForge 1.1.5 — conversion mode selection and C scrollbar
230
+
231
+ The Transpile menu now contains exactly two mutually exclusive checked choices:
232
+ Typed and Runtime. Choosing a mode does not convert. The existing Transpile
233
+ button and Ctrl+Enter execute the selected mode; the choice is remembered
234
+ between launches, initially defaulting to Typed. Mode changes retire the previous
235
+ result so it cannot be saved as current until conversion succeeds again.
236
+
237
+ Generated C now uses its normal scrollbar without the dense mapping overview
238
+ strip. Search, mapping navigation, read-only output, and ForgeLens highlighting
239
+ remain available. The hidden strip performs no marker overview projection.
240
+
241
+ No backup, autosave, recovery, snapshot-history, compiler, or other suggested
242
+ feature is added. The typed and runtime conversion capabilities are unchanged
243
+ from 1.1.4. CLI and Python API mode selection are unchanged. Both README
244
+ screenshot URLs are preserved. Native Windows acceptance remains pending.
245
+
246
+ ---
247
+
248
+ # PyCForge 1.1.4 — ordered runtime dictionaries
249
+
250
+ Runtime value conversion now handles ordered mutable dictionaries, dictionary
251
+ comprehensions, dict[K, V] annotations, scalar/immutable-tuple keys, key deletion,
252
+ and get/setdefault/update/copy/clear/pop/popitem. Live keys/values/items views
253
+ support iteration, length, truth, membership, and list/tuple snapshots.
254
+
255
+ Shared references, first-insertion order, equal numeric keys, definition-time
256
+ defaults, and nested mutable values are preserved. A hash index supports ordinary
257
+ lookup workloads. Memory, work, missing-key, key-type, and iterator mutation
258
+ checks use the existing C context. Active dictionary iterators permit value
259
+ replacement and reject structural key changes, including equal-size changes.
260
+
261
+ The existing runtime action, CLI, and API expose these additions. Searchable
262
+ HTML help, the supported-conversions table, README, and examples describe the
263
+ implemented forms and boundaries. Both README screenshots retain their URLs.
264
+ No new dependencies, source execution, embedded C compiler, or PyPI publication
265
+ are introduced. See specifications/runtime_values_1_1_4.md and the new tests.
266
+
267
+ This is a development candidate with a documented Python subset. Native
268
+ Windows acceptance remains outstanding; performance needs workload benchmarks.
269
+
270
+ ---
271
+
272
+ # 1.1.3 — 2026-10-12
273
+
274
+ The runtime value converter now implements default arguments, named keyword
275
+ calls, positional-only and keyword-only parameters for functions, methods,
276
+ constructors, and lambdas. Defaults are evaluated at definition time and keep
277
+ shared mutable values; lambda defaults can capture each comprehension value.
278
+
279
+ Unicode lower/upper, strip/lstrip/rstrip, whitespace and explicit-separator split
280
+ with maxsplit, numeric text parsing, optional integer bases, finite float
281
+ formatting, simple f-strings, print sep/end, and empty scalar/container
282
+ constructors are implemented. Unsupported calls on known receiver types have
283
+ source diagnostics. Ryu supplies shortest binary64 decimal formatting under its
284
+ Boost license; Unicode case data is pinned to Unicode 15.0.
285
+
286
+ The README and installed HTML help describe these operations as supported
287
+ features, include runnable examples, and retain the two screenshot-only README
288
+ links. The existing typed converter, PySide6 workspace, Ting runtime, splash,
289
+ and PlutoAI boundary remain in place. No PyPI publication is performed here.
290
+
291
+ Validation is recorded in `evidence/coverage_1_1_3/validation_report.json`.
292
+ The preceding 1.1.2 audit and its evidence are retained below as history.
293
+
294
+ ---
295
+
296
+ # 1.1.2 — 2026-10-12
297
+
298
+ Correctness audit fixes: integer true division now rounds the exact int64 ratio; bound methods compare by receiver identity and method; duplicate runtime parameters and writes to Python's read-only __debug__ binding reject; the default converter accepts the minimum signed 64-bit literal. Corrected Unicode diagnostic spans, syntax-error positions, and bare-CR source tokenization. Guarded breadcrumb updates when the workspace is empty or closing. Native regression tests cover both conversion paths. See docs/CONVERSION_AUDIT_1_1_2.txt and evidence/correctness_1_1_2/validation_report.json.
299
+
300
+ Added an opt-in runtime-values Python-to-C preview based on 1.1.1; runtime strings, mutable class/list aliases, mixed tuples/lists, annotated unions and containers, comprehensions and captured lambdas. Updated embedded Ting execution to 0.10.0a21 with NumPy/Numba dependencies and background numeric warmup in the splash. No C-to-assembly integration; that work is in PlutoAI. See specifications/runtime_values_1_1_2.md for exact limits.
301
+
302
+ # 1.1.1 — PyPI README correction
303
+
304
+ - Remove badges and relative documentation links from the PyPI README.
305
+ - Retain only the two unchanged Cloudinary screenshot URLs.
306
+ - Remove the outdated PDF reference and direct users to installed Help.
307
+ - Validate the rendered README against the exact screenshot-only link policy.
308
+ - Conversion behavior remains unchanged from 1.1.0.
309
+
310
+ # 1.1.0 — Scalar and string conversion expansion
311
+
312
+ This release expands conversion, with the new default profile
313
+ `scalar-strings-v1.1` paired with `c-renderer-v1.1`.
314
+
315
+ - Checked int/float/bool/str locals, declarations without initializers, chained
316
+ scalar assignments, flat unpacking/swaps and scalar augmented assignment.
317
+ - Static module declarations and assignments, constant expressions, aliases
318
+ and source-order updates, frozen before entry-function calls.
319
+ - Runtime UTF-8 code-point length, content comparison, prefix/suffix checks,
320
+ search and membership; bounded compile-time construction and string methods.
321
+ - Explicit source-span evidence, exact helper plans and independent serialized
322
+ validation. Existing definite-assignment and representation checks remain.
323
+ - Six existing TING agents receive the new strategy identity. Their unchanged
324
+ artifacts reproduce byte-for-byte through the private compiler.
325
+
326
+ Dynamic owned-string construction and mutable globals remain unsupported.
327
+ External C callers must satisfy the documented borrowed UTF-8 ABI. Historical
328
+ profiles are still selectable. Desktop appearance, screenshots and links are
329
+ preserved. See `specifications/scalar_strings_1_1.md` for the complete contract.
330
+
331
+ This is a locally tested release candidate; it has not been uploaded to PyPI.
332
+ Validation details are in `evidence/scalar_1_1/validation_report.json`.
333
+
334
+ # Changelog
335
+
336
+ ## 1.0.5 — Focused IDE refinement
337
+
338
+ Reduced all non-editor UI text by one point while preserving the Python and
339
+ generated-C editors at 14 pt and 12 pt. Added restrained glass depth to controls,
340
+ wider squarer scrollbars, slim illuminated state lines for the generated-C and
341
+ Details toolbar toggles, and a gradient-backed Help navigation rail.
342
+
343
+ Removed the Python indentation-guide overlay and its setting. Function-fold
344
+ layout now synchronizes each shared source view immediately, moves cursors out
345
+ of newly hidden blocks, preserves access to the final function at the scroll
346
+ boundary, and remains stable while Generated C is repeatedly hidden or shown.
347
+ A fresh publishable conversion reveals hidden generated C automatically.
348
+ Transpilation Details returns as a resizable lower inspector opening at 38
349
+ percent of the available workspace instead of replacing the editors.
350
+
351
+ Replaced runtime SVG resources with 495 packaged PNG assets: 55 established
352
+ glyphs at nine resolutions from 16 through 256 pixels. Ting feedback now has
353
+ wide, labeled previous/next agent controls plus a live graphical Flow Map of the
354
+ source-free evidence fan-out, six current agent decisions, and advisory-only
355
+ fan-in. About now presents a 42-pixel brand mark, a fixed-size surface with a
356
+ titlebar-blended live world UTC clock, converter identities, full workspace
357
+ state topology, and authenticated Ting engine, registry, agent, rule, and test
358
+ telemetry.
359
+
360
+ Advanced the package to 1.0.5, the workspace contract to 0.8, the action
361
+ registry to 0.6, and the visual system to 0.5. Converter schemas, rules,
362
+ renderer, generated C, and Ting shadow authority remain unchanged at 0.16.0.
363
+
364
+ Corrected the final physical-Windows dialog review without changing the shared
365
+ hover design. Help, About, Ting Agent Feedback, and Ting Agent Flow Map now
366
+ open and reopen with focus in their content, matching the Open Python dialog.
367
+ Their maximize and close controls therefore illuminate only while genuinely
368
+ hovered or deliberately keyboard-focused instead of retaining a blue or red
369
+ focus line on activation. All other dialogs and converter behavior are
370
+ unchanged.
371
+
372
+ ## 1.0.4 — PyPI publication refresh
373
+
374
+ Reissued the fully validated 1.0.3 package under a fresh public version for a
375
+ clean PyPI upload. The two README screenshots retain their fixed, versioned
376
+ Cloudinary PNG delivery URLs.
377
+
378
+ Advanced the package and application version to 1.0.4. Converter behavior,
379
+ generated C, Ting agents and authority, the notification correction, workspace
380
+ behavior, and all UI and dialog presentation remain unchanged from 1.0.3.
381
+
382
+ ## 1.0.3 — Reliable PyPI screenshot delivery
383
+
384
+ Replaced the two unreliable public README image addresses with fixed,
385
+ versioned Cloudinary PNG delivery URLs. Both remote objects were independently
386
+ retrieved as 1920 × 1080 PNG files and matched the packaged screenshots byte
387
+ for byte before the release was built.
388
+
389
+ Advanced the package and application version to 1.0.3. The converter, generated
390
+ C, Ting agents and authority, notification fix, workspace, and every other UI
391
+ or dialog behavior remain unchanged from 1.0.2.
392
+
393
+ ## 1.0.2 — Focused presentation and notification polish
394
+
395
+ Replaced the former release-contract-heavy README with a shorter public guide
396
+ centered on PyCForge's purpose, installation, upgrades, immediate desktop
397
+ launch, principal workspace features, Ting agent integration, built-in Help,
398
+ CLI/API access, and safety boundary. Added current full-workspace and Ting
399
+ feedback screenshots to the source distribution and PyPI description.
400
+
401
+ Made the top notification banner's SVG close control follow the active
402
+ information, success, warning, or error foreground color. Hover, focus, and
403
+ pressed states retain the same semantic background and border family, so the
404
+ control no longer appears detached from its message. No other workspace or
405
+ dialog presentation was changed.
406
+
407
+ Advanced the package and application version to 1.0.2. Converter schemas,
408
+ lowering, generated-C behavior, Ting shadow authority, workspace contracts,
409
+ and the authenticated 1.0.1 fixed-set rules remain unchanged.
410
+
411
+ ## 1.0.1 — Fixed sets and professional workspace continuity
412
+
413
+ Added a fail-closed fixed-set profile to the active Phase 16 base. Direct
414
+ function-local literals of 1–64 unique homogeneous integer, finite-float, or
415
+ Boolean elements lower to read-only automatic C arrays. Exact-representation
416
+ `in` and `not in` evaluate their searched expression once and use bounded
417
+ linear equality. New authenticated membership facts, 1.0.1 rule identities,
418
+ independent validation, conversion summary records, exact diagnostics, and
419
+ positive/negative tests cover declaration and lowering. Unsupported order,
420
+ hash-table, mutation, alias, and escape behavior remains outside the contract.
421
+
422
+ Added parser-authenticated Python function folding, Fold All and Unfold All
423
+ source controls, and subtle Python-only indent guides. Generated C remains a
424
+ plain immutable inspection surface. Large-source fold discovery now consumes
425
+ the existing authenticated background structure result; Fold All returns to
426
+ the event loop immediately and applies bounded regions only after exact
427
+ document/revision validation. Fold application touches only changed bounded
428
+ block lines, preventing the synchronous parser/block-scan freeze reported on
429
+ Windows.
430
+
431
+ Removed the desktop shell's synthetic permanent first document. A new window
432
+ may be genuinely empty; the first opened or created Python module becomes
433
+ primary automatically, and every tab—including the first or final restored
434
+ tab—can be closed. Closing the final tab persists an intentionally empty
435
+ restart session. Linked files that remain open at exit still reopen in their
436
+ prior order with the prior active file selected. Added an independent
437
+ **Clear Recent Files** action that never closes tabs, deletes files, or changes
438
+ the restart session. Long main-window titles now elide before the window
439
+ controls, and Find/Replace keeps Previous and Next in one compact group.
440
+
441
+ Replaced native dialog titlebars with reusable accessible PyCForge frameless
442
+ chrome across Help, About, startup, settings, file browsers, command palette,
443
+ go-to-line, guarded choices, restoration reporting, and Ting feedback. The
444
+ flat titlebar carries the canonical brand mark and an extensible icon-toolbar
445
+ host; resizable dialogs expose system and bounded manual resize paths.
446
+
447
+ Persisted the ordered set of linked saved Python files and active linked file.
448
+ Startup restores them sequentially under the 64-document ceiling and reports
449
+ every unavailable or unreadable path in a nonblocking selectable dialog.
450
+ Unsaved source text is not serialized.
451
+
452
+ Added a source-free, read-only Ting feedback terminal after converted and
453
+ rejected decisions. An overview and all six mandatory agent tabs expose exact
454
+ evidence, gaps, bounded matching metrics, and rulepack identities. The shadow
455
+ review has no authority over conversion and does not fabricate compiler or
456
+ differential evidence.
457
+
458
+ Updated all fourteen classified offline HTML Help pages and navigation search
459
+ metadata needed for the new conversion and workspace features. Advanced the
460
+ package and application identity to 1.0.1 while retaining the documented Phase
461
+ 16 base schemas and renderer.
462
+
463
+ Corrected the 1.0.1 desktop presentation after physical-review feedback.
464
+ Python source now defaults to 14 pt, generated C to 12 pt, Help body text to
465
+ 12 pt, and application controls to a 12 pt minimum. Presentation-settings
466
+ schema 3 removes the faulty schema-2 global-font projection and oversized
467
+ restored geometry while preserving compatible session data. Top-level windows
468
+ fit the current monitor work area under Windows display scaling. Function fold
469
+ markers are larger, Fold All and Unfold All are direct Edit-menu actions, the
470
+ Ting/About status buttons are matched and contained, menu-item hover tooltips
471
+ are disabled, and ordinary typing no longer rewrites the persistent status
472
+ message.
473
+
474
+ Completed a second physical-Windows typography correction without changing
475
+ the editor sizes or Help article typography. Ordinary non-editor controls now
476
+ use the exact menu font, including Help controls, file browsers, inspectors,
477
+ About, startup, and monospaced Ting feedback. The three workspace caption
478
+ bands use a deliberate compact 10 pt hierarchy and the Python header gives
479
+ adaptive space to both module identity and path text. The Open preview is decoupled
480
+ from the 14 pt source editor and uses compact menu-sized page geometry.
481
+ Transpilation Details always starts hidden and opens as a full-height review
482
+ mode instead of compressing the editor. Source/mapping activation returns to
483
+ the editor. Accepted code-font choices use a durable restart mirror; guarded
484
+ Save/Discard focus borders retain bottom clearance; QAction status tips cannot
485
+ enter the status bar. Help, About, and startup rasterize the
486
+ redesigned flat `brand-mark.svg` directly at the final logical size and device
487
+ pixel ratio, eliminating enlarged 24-pixel bitmap intermediates.
488
+
489
+ ## 0.16.3 — Complete in-app Help and workspace usability
490
+
491
+ Status: PyCForge 0.16.3 package release; active converter, rule-set, renderer,
492
+ runtime-policy, plan, C-IR, artifact, summary, trace, and result-envelope
493
+ contracts remain unchanged from the PyPI 0.16.2 package.
494
+
495
+ Added a professional, fully offline HTML Help dialog under the new **Help**
496
+ menu and **F1**. Fourteen editable HTML pages are classified through a
497
+ validated catalog, presented with persistent left navigation, and searched as
498
+ one global documentation set. They cover the entire cumulative conversion
499
+ surface, including typed functions, expressions,
500
+ conditionals, scalar scope publication, loops and loop `else`, containers,
501
+ records, direct/keyword calls, explicit module imports, bounded UTF-8 file
502
+ reading and writing, the generated-C file ABI and status codes, CLI/API use,
503
+ diagnostics, safety, limits, shortcuts, and active identities. The installed
504
+ application no longer relies on a PDF or an external repository for user help.
505
+
506
+ Replaced editor-only font sizing with one persisted 8–32 point workspace text
507
+ size. Direct **View** actions and `Ctrl+=`, `Ctrl+-`, and `Ctrl+0` now resize
508
+ menus, toolbars, dialogs, trees, diagnostics, Python, generated C, previews,
509
+ and Help together. Schema-1 editor preferences migrate into the application-
510
+ wide setting and changes synchronize immediately.
511
+
512
+ The custom Open/Save dialogs now remember per-mode geometry, columns,
513
+ directory, and—where applicable—the browser/preview splitter and last selected
514
+ Python file. Open never displays a restored preview unless its tree row is
515
+ visibly selected. The first **New Module** reuses a pristine initial `main.py`
516
+ placeholder, eliminating the accidental empty-main diagnostic while retaining
517
+ the converter's deliberate rejection of genuinely empty bundle modules.
518
+
519
+ Added Undo, Redo, Cut, Copy, and Paste to the main toolbar; enlarged module-tab
520
+ close targets; rebuilt status-bar ownership so left feedback stretches inside
521
+ the bar and right-side controls remain contained; and replaced stylesheet and
522
+ editor-rail gradients/texture backgrounds with a flat blackened-steel palette.
523
+
524
+ Package metadata now identifies PyPI as the authoritative distribution page.
525
+ The package version advances to 0.16.3 because published PyPI files are
526
+ immutable; the active converter contract remains exactly 0.16.0.
527
+ Workspace, action-registry, and visual-system presentation identities advance
528
+ to `pycforge-workspace/0.7`, `pycforge.action-registry/0.4`, and
529
+ `pycforge.visual-system/0.4`; persisted presentation settings advance to schema
530
+ `2` with bounded schema-1 font migration.
531
+
532
+ Added six deterministic Ting shadow-review agents for syntax, semantics,
533
+ ownership, lowering, verification, and typed capability/resource binding.
534
+ Their 34 embedded tests run without skips through a read-only source gate.
535
+ Proof-preserving pruning evaluates every registered role while using bounded
536
+ schema and equality indexes inside each rulepack. PyCForge ships only a
537
+ private execution runtime, authenticated registry, and precompiled Compact-IR.
538
+ The runtime retains the bounded `.ting` Compact-IR loader/parser and verifier.
539
+ Only the authoring-side RuleSpec source parser, compiler, writers, builders,
540
+ consoles, reference engine, history subsystem, and command entry points are
541
+ excluded from both public archives and retained separately under compiler
542
+ custody.
543
+
544
+ Added an accessible branded startup progress dialog driven only by completed
545
+ initialization work. It validates the vector catalogue, all offline Help
546
+ sources, and every packaged `.ting` artifact before constructing the
547
+ workspace. The dialog supports safe-boundary cancellation, presents bounded
548
+ startup errors, performs no network access, and uses the same flat visual
549
+ surface and canonical brand mark as the main window, Help, and About.
550
+
551
+ ## 0.16.2 — Evaluation hardening and motionless editing
552
+
553
+ Status: PyCForge 0.16.2 package release; active converter contracts,
554
+ generated-C identities, and the 0.16.0 Programmer's Conversion Guide remain
555
+ unchanged.
556
+
557
+ Repaired the frontend's virtual-EOF coordinate mapping so valid source converts
558
+ without a terminal newline or completely empty final line. The repair maps the
559
+ tokenizer's virtual final position to exact EOF without inserting or
560
+ normalizing text and preserves source bytes, newline records, document identity,
561
+ and authenticated hash. The `clamp` reproduction no longer falls through to
562
+ `PYC9001`.
563
+
564
+ Made normal typing visually motionless across the toolbar Convert action,
565
+ conversion-status labels, the generated-C stale/last-complete label, and Python
566
+ source breadcrumbs. State updates now occur in place, while progress animation
567
+ is limited to actual conversion work. Corrected Python-editor point-size loading
568
+ so the chosen value survives restart and applies to both current and future
569
+ split source panes.
570
+
571
+ Added a compact, menu-preserving frameless shell and reduced toolbar and notice
572
+ height without shrinking their established text. Replaced native tree icons
573
+ with PyCForge dark-theme iconography, bounded the Open dialog's initial height,
574
+ and moved Previous/Next navigation above the preview page. Reworked About into
575
+ a wider categorized view with version and contract information, end-of-file and
576
+ current/stale-state explanations, Details and split-view cues, and no
577
+ personal-name text. The existing toolbar action remains the single Show/Hide
578
+ control for Transpilation Details.
579
+
580
+ Documented fresh and explicit-upgrade commands for both POSIX environments and
581
+ the Windows `py` launcher. Package version 0.16.2 retains the 0.16.0 converter,
582
+ rule-set, renderer, runtime-policy, plan, C IR, generated-artifact, summary, and
583
+ decision-trace identities; workspace and settings identities also remain
584
+ unchanged.
585
+
586
+ ## 0.16.1 — ForgeLens and blackened-steel workspace
587
+
588
+ Status: PyCForge 0.16.1 release; converter contracts, generated C, and the
589
+ 0.16.0 Programmer's Conversion Guide remain unchanged.
590
+
591
+ Added optional, default-on ForgeLens cross-highlighting from authenticated
592
+ Python↔C mappings. It follows exact focused selections without taking focus or
593
+ switching documents, persists its Editor Settings toggle, clears safely across
594
+ document and lifecycle changes, and fails closed on excessive mapping fanout.
595
+ Position indexing now handles Qt newline normalization, query scans stop as
596
+ soon as their ordered interval cannot match, endpoint storage is compact, and
597
+ unchanged marker projections are not repainted.
598
+
599
+ Introduced a coordinated blackened brushed-steel workspace with restrained
600
+ focus and selection colors, semantic primary/danger states, coherent menus and
601
+ dialogs, and the PyCForge brand mark in About. Replaced native file pickers
602
+ with bounded custom browsers: Open renders readable Python pages in memory with
603
+ Previous/Next controls, while Save remains preview-free. Hardened dialog error
604
+ recovery, path elision, accessibility descriptions, tree sizing, and preview
605
+ retirement behavior.
606
+
607
+ Added the concise five-feature UI roadmap and refreshed the public README with
608
+ an immutable, code-rich 1600×1000 workspace screenshot. The complete package
609
+ still uses the active Phase 16 converter identities at 0.16.0.
610
+
611
+ ## 0.16.0 — Scope, loop completion, and bounded UTF-8 file I/O
612
+
613
+ Status: PyCForge 0.16.0 release; explicit Phase 14A-14D requests and all
614
+ historical 0.15.3 workspace custody remain preserved.
615
+
616
+ ### Selective scalar scope lifetimes
617
+
618
+ Added immutable, resource-bounded, independently reconstructed
619
+ `fact-table/0.16-scope-lifetimes` proof. Scalar locals first assigned in
620
+ exhaustive conditional branches can now lower to one uninitialized C
621
+ function-entry declaration plus source-ordered branch assignments when every
622
+ reachable continuation proves initialization before use. Nested conditionals
623
+ and the surviving branch after a sibling return are reachability-aware.
624
+
625
+ The profile remains deliberately selective: loops, containers, records,
626
+ closures, globals/nonlocals, missing branch coverage, read-before-definition,
627
+ unknown or incompatible categories, and malformed or over-budget evidence fail
628
+ closed. Already-supported unrelated constructs remain independent.
629
+
630
+ ### Loop completion and safe `range`
631
+
632
+ Added exact Python `else` behavior for admitted `while`, positional-`range`,
633
+ and fixed list/tuple/dictionary loops. Natural completion and zero iterations
634
+ run the else suite; only a source `break` owned by that loop suppresses it.
635
+ Nested breaks do not suppress an outer else, `continue` preserves completion,
636
+ and `return` bypasses it. One deterministic Boolean flag is emitted only when
637
+ the loop owns a break, with clears immediately before those exact breaks.
638
+
639
+ Added a structured pre-addition guard for signed-64 range induction. An update
640
+ that would cross `INT64_MAX` or `INT64_MIN` selects the staged stop value
641
+ instead, preserving exhaustion without undefined C signed overflow.
642
+
643
+ ### Closed bounded UTF-8 file profile
644
+
645
+ Added one exact direct function-body context profile:
646
+ `with open(path, "r" or "w", encoding="utf-8", newline="") as fresh_handle`
647
+ with one direct read transfer or one direct write of an already-proved string
648
+ name or string literal whose count is discarded. Effectful write expressions
649
+ reject with `PYC3905` because helper-internal open cannot preserve context-entry
650
+ before body-evaluation order.
651
+ Reads default to 1,048,576 bytes, have a hard 16,777,216-byte ceiling, reject
652
+ embedded NUL and non-RFC-3629 UTF-8, close exactly once, and transfer ownership
653
+ only after successful close. Writes use borrowed text, require an exact byte
654
+ count, close exactly once, and propagate failure. Handle aliasing, rebinding,
655
+ escape, post-region use, explicit close, unsupported open shapes, and source
656
+ calls into file-effect functions reject with the `PYC3901`–`PYC3908` family.
657
+
658
+ Registered helpers are `pycf.file.read_all_utf8_bounded@1.0.0` and
659
+ `pycf.file.write_utf8_exact@1.0.0`, with registry-closed transitive UTF-8
660
+ validation. Generated file-effect entry points receive a hidden final,
661
+ required non-null `int64_t *` status parameter in caller-owned storage. Stable
662
+ codes are 0 success, 1 open, 2 allocation, 3 read, 4 limit, 5 embedded NUL,
663
+ 6 invalid UTF-8, 7 close, and 8 write. A successful read returns a unique
664
+ caller-owned `malloc` buffer that the external caller must `free`.
665
+ Every file-effect entry point null-checks its status pointer and then initializes
666
+ it to success before any source-controlled early return or evaluation; helper
667
+ failures overwrite that value with their stable code.
668
+
669
+ Recorded the external C-string preconditions explicitly: paths must be
670
+ non-null, NUL-terminated valid UTF-8; borrowed write text has the same
671
+ preconditions and no embedded NUL. The helpers do not runtime-validate pointer
672
+ validity, path UTF-8/NUL properties, or hidden write bytes after the first
673
+ terminator. Compile-time path/write literals containing NUL reject with
674
+ `PYC3903`/`PYC3905`; read-content statuses 5 and 6 do not claim input-string
675
+ validation.
676
+
677
+ ### Contracts and custody
678
+
679
+ Advanced the active converter to `0.16.0` with
680
+ `phase16-scope-loop-file-v0.16.0`, `c-renderer-v0.16.0`,
681
+ `conversion-plan/0.16.0`, `c-ir/0.16.0`, `generated-c/0.16.0`, and matching
682
+ 0.16.0 summary/trace identities. The result envelope remains `0.5`. Phase 16
683
+ adds closed structured pointer, cast, conditional-expression, null, and C
684
+ library-intrinsic C IR forms needed by the proved runtime. Historical Phase 14D
685
+ schemas, rendering, diagnostics, output bytes, hashes, rejections, and helper
686
+ manifests remain unchanged under explicit `0.14.3` requests.
687
+
688
+ Conversion never executes source Python and never opens a path selected by the
689
+ source. PyCForge never compiles, links, loads, or runs generated C. File I/O,
690
+ status writes, allocation, ownership transfer, and caller `free` occur only if
691
+ an external party separately builds and runs the generated C.
692
+
693
+ The authenticated desktop worker protocol is now
694
+ `pycforge.worker-protocol/0.2`; it preserves the active runtime-policy identity
695
+ and all expanded resource fields across the GUI process boundary. Added a
696
+ reproducible 35-page 0.16.0 Programmer's Conversion Guide with 22 live-converter
697
+ examples, deterministic PDF reconstruction, and release-asset verification.
698
+
699
+ ## 0.15.3 — Workspace usability and PySide6 transition
700
+
701
+ Status: release candidate; converter semantics remain sealed at `0.14.3`.
702
+
703
+ Migrated the desktop application from PyQt5/Qt 5 to PySide6/Qt 6 and made
704
+ `PySide6>=6.8,<7` the single required GUI binding. Updated native actions,
705
+ signals, dialogs, input events, high-DPI behavior, CI, packaging checks, and
706
+ clean-install smoke coverage for Qt 6.
707
+
708
+ Added a bounded, persisted **Edit → Editor Settings…** control for the text
709
+ size of both synchronized Python source views. The setting accepts 8–48 points,
710
+ updates tab stops and editor side areas immediately, survives shared-document
711
+ rebinding, and leaves the generated-C viewer unchanged.
712
+
713
+ Added undoable Python auto-indentation on Enter. Existing leading whitespace
714
+ is preserved and genuine suite-opening colons add four spaces; colons inside
715
+ strings, comments, and open bracket expressions do not trigger an extra level.
716
+
717
+ Removed passive source-mapping backgrounds and underlines from generated C.
718
+ Mapping records, the overview rail, activation, and source/output navigation
719
+ remain available, while the generated-C text surface remains read-only and
720
+ explicit-save-only.
721
+
722
+ Advanced the workspace contract to `pycforge-workspace/0.6`, the action
723
+ registry to `pycforge.action-registry/0.3`, and the visual system to
724
+ `pycforge.visual-system/0.3`. Presentation settings remain schema `1`, the
725
+ worker protocol remains `pycforge.worker-protocol/0.1`, and the complete
726
+ converter subtree remains unchanged at `0.14.3`.
727
+
728
+ ## 0.15.2 — Phase 15C IDE-grade authoring and inspection workspace
729
+
730
+ Status: promoted and sealed; Phase 15D remains unopened.
731
+
732
+ Prepared the first public PyPI distribution without changing the
733
+ converter contract. PyQt5 is now a mandatory runtime dependency of the base
734
+ package, so an ordinary `pip install pycforge` installs the desktop application
735
+ and both `pycforge` and `pycforge-workspace` entry points. Removed the obsolete
736
+ `workspace` extra, added PyPI long-description and project metadata, corrected
737
+ the command-line examples, and added clean-build, clean-install, offscreen Qt,
738
+ release-artifact and Trusted Publishing gates.
739
+
740
+ Established the public source license as `GPL-3.0-only`, compatible with the
741
+ GPL PyPI distribution of PyQt5, and included the complete license text in the
742
+ source and package metadata.
743
+
744
+ Advanced the package to `0.15.2`, the workspace contract to
745
+ `pycforge-workspace/0.5`, the action registry to
746
+ `pycforge.action-registry/0.2`, and the visual system to
747
+ `pycforge.visual-system/0.2`. The converter remains sealed at `0.14.3`, the
748
+ worker protocol remains `pycforge.worker-protocol/0.1`, and presentation
749
+ settings remain schema `1`.
750
+
751
+ Added identifier-only document-tab and split-pane session state, with at most
752
+ two synchronized Python source panes. Added bounded undoable source operations
753
+ for line duplication, line movement, indentation, outdentation, and Python
754
+ comment toggling, together with go-to-line, whitespace visibility, and source
755
+ fold controls.
756
+
757
+ Added cancellable latest-wins source-structure analysis for already-open Python
758
+ text. The normalized outline and breadcrumb projection is parent-linked and
759
+ bounded by symbol count, depth, name length, and source-text budgets. Invalid
760
+ syntax remains inert and cannot retire valid structure for unrelated open
761
+ documents.
762
+
763
+ Added deterministic literal bundle search across the explicit open
764
+ `SourceBundle`, with immutable path-free requests, exact Python and UTF-16
765
+ positions, bounded previews, a global 5,000-match cap, and stale-generation
766
+ suppression. No host directory or project discovery was introduced.
767
+
768
+ Added a bounded command palette that projects enabled and visible static
769
+ registry actions without retaining handlers or adding a free-form command
770
+ execution surface. Added payload-free session transpilation history capped at
771
+ 64 terminal records.
772
+
773
+ Expanded the declarative command system to 48 actions, five persistent main
774
+ menus, and eleven context surfaces. Added the Navigate menu, source-authoring
775
+ commands, document-tab, bundle-search, history, text-input, and read-only-text
776
+ contexts while preserving the exact read-only generated-C command allowlist and
777
+ single-owner persistent `QAction` construction.
778
+
779
+ Expanded the vector catalogue from 41 to 55 safe SVG icons and extended the
780
+ shared workspace stylesheet for document tabs, split views, breadcrumbs,
781
+ outline, bundle-search results, history, and command-palette presentation.
782
+
783
+ Preserved the Phase 15A spawned-worker model, one-active/one-latest scheduling,
784
+ bounded cancellation, immutable revision and fingerprint authentication,
785
+ stale-result suppression, off-GUI file and search work, and incremental
786
+ generated-C projection. Python remains the only editable code surface.
787
+
788
+ Recorded current-release real PyQt evidence on the offscreen QPA backend
789
+ using Python 3.12.13, PyQt 5.15.11, Qt build 5.15.14, and Qt runtime 5.15.19.
790
+ One `QApplication` ran 18 focused workspace cases with zero failures, errors,
791
+ or skips. A 250,113-character source constructed the window in 0.054 seconds,
792
+ reached the first event turn in 0.0103 seconds, and produced 110 timer ticks at
793
+ 0.01-second intervals during 1.201 seconds of isolated transpilation. Large-file
794
+ mode detached the syntax highlighter while preserving the shared editor buffer;
795
+ shutdown left zero new PyCForge threads and zero worker leaks. A small
796
+ end-to-end workspace conversion completed in 0.408 seconds as supporting
797
+ evidence.
798
+
799
+ Authenticated, assigned the canonical validation report and release
800
+ fingerprint, and built and validated the Phase 15C milestone source archive,
801
+ pure-Python wheel, handoff, package report, and checksum records. These
802
+ artifacts establish Phase 15C release custody, not the wider Phase 15D
803
+ distribution and platform gate.
804
+
805
+ PyCForge remains a deterministic Python-to-C source transpiler. It does not
806
+ compile, assemble, link, load, run, execute, debug, profile, deploy, or invoke
807
+ generated C or a C toolchain.
808
+
809
+ The real offscreen widget evidence is not visible-platform certification.
810
+ Visible Windows 11/Linux rendering, physical display scaling, and
811
+ assistive-technology validation remain Phase 15D gates.
812
+
813
+ ## 0.15.1 — Phase 15B application shell and visual system
814
+
815
+ Status: implemented and validated within the available supporting scope.
816
+
817
+ Advanced the workspace contract to `pycforge-workspace/0.4` and introduced the
818
+ import-safe `pycforge.action-registry/0.1`. Every persistent application command
819
+ now has one declarative authority for its stable ID, label, mnemonic, SVG icon,
820
+ shortcut, tooltip, status explanation, accessible name, checkability, tone, and
821
+ allowed surfaces. The Qt adapter creates each persistent `QAction` once and
822
+ shares it across menus, toolbars, context surfaces, and bounded dynamic entries.
823
+
824
+ Added custom gradient/icon File, Edit, View, and Transpile menus and declared
825
+ context menus for Python source, read-only generated C, the Source Bundle
826
+ navigator, diagnostics, mappings, conversion summary, decision trace, and
827
+ telemetry. The custom presentation remains native-backed by `QMenu` and
828
+ `QAction`, preserving keyboard traversal, mnemonics, shortcut columns, checked
829
+ state, focus return, Escape dismissal, assistive exposure, submenu behavior,
830
+ and screen-edge placement. Generated C uses an explicit read-only command
831
+ allowlist.
832
+
833
+ Introduced `pycforge.visual-system/0.1` with cohesive semantic graphite
834
+ surfaces, layered gradients, high-contrast text, blue and violet focus accents,
835
+ a restrained warm transpilation accent, and explicit success, warning, error,
836
+ and danger treatments. Expanded professional self-contained SVG iconography
837
+ uses logical dimensions and excludes raster payloads, embedded data, remote
838
+ references, fixed physical sizing, scripts, and font-glyph dependencies.
839
+
840
+ Added high-DPI and accessibility foundations: high-DPI scaling before
841
+ application construction, logical icon sizing, stable menu accessible names,
842
+ visible tooltips and accessible names for icon-only controls, visible keyboard
843
+ focus, and non-color-only state treatment. The interface has no animation and
844
+ is reduced-motion safe by construction.
845
+
846
+ Removed the legacy presentation-namespace migration and compatibility surface.
847
+ Current source, settings, menus, toolbars, tests, evidence, and distribution
848
+ use PyCForge identity exclusively. Original pre-migration bytes remain
849
+ authoritative in the authenticated Phase 15A archive.
850
+
851
+ Preserved all Phase 15A responsiveness and isolation guarantees: spawned
852
+ conversion, one-active/one-latest scheduling, cooperative and hard
853
+ cancellation, immutable revision authentication, stale-result suppression,
854
+ off-GUI file I/O and search, bounded editor projections, incremental generated-C
855
+ population, and exact Save C authority.
856
+
857
+ Bounded the structured detail inspectors with an iterative cycle-safe
858
+ projection limited to 1,024 nodes, 16 levels, 256 children per container, and
859
+ 2,048 characters per value. Corrected scroll-area context placement, made
860
+ uncommitted identity edits immediately stale and unsavable as C, and suppressed
861
+ cancellation-pending diagnostics as non-current.
862
+
863
+ Hardened release custody around a descriptor-bound, size-bounded source
864
+ snapshot and a validation-subject digest that is checked against the exact
865
+ packaged bytes. Packaging now pins its production environment, compares
866
+ duplicate wheel and normalized-source builds, inspects and smokes the sealed
867
+ wheel payload, rejects noncanonical validation JSON, and durably publishes the
868
+ seven-artifact directory only after the final vocabulary and checksum graph
869
+ passes.
870
+
871
+ The package is `0.15.1`; the converter remains sealed at `0.14.3`, the worker
872
+ protocol remains `pycforge.worker-protocol/0.1`, and presentation settings
873
+ remain schema `1`. PyCForge remains a deterministic Python-to-C source
874
+ transpiler. No C compiler, linker, loader, runtime execution, debugger,
875
+ terminal, toolchain, project explorer, plugin system, or generated-C editor was
876
+ added.
877
+
878
+ PyQt5 is unavailable on the validation host, so Phase 15B evidence is
879
+ supporting source, static, headless, registry, icon, and optional-widget
880
+ evidence only. Visible Windows 11/Linux rendering, real display scaling, and
881
+ assistive-technology validation remain Phase 15D gates. Phase 15C and Phase 15D
882
+ remain unopened.
883
+
884
+ Final discovery runs 750 tests: 734 pass, 16 are expected skips, and none fail.
885
+ Eleven skips require unavailable PyQt5 widgets; five require unavailable older
886
+ optional custody artifacts.
887
+
888
+ ## 0.15.0 — Phase 15A responsiveness and isolation
889
+
890
+ Status: promoted and sealed.
891
+
892
+ Replaced workspace in-process conversion with a spawn-only process supervisor.
893
+ The bounded `pycforge.worker-protocol/0.1` uses canonical JSON over byte-only
894
+ connections and validates generation, bundle, transport, request, artifact,
895
+ mapping, and output identities before publication. Scheduling is exactly one
896
+ active plus one replaceable latest pending request.
897
+
898
+ Added cooperative cancellation with a 750 ms grace, hard termination and
899
+ two-second reclamation, latest-pending start bounds, non-blocking close, and
900
+ recoverable startup, crash, malformed/oversized IPC, broken-pipe, and worker
901
+ resource-exhaustion handling. Canceled, failed, stale, superseded, partial, or
902
+ mismatched work cannot publish C or replace last-known-good C.
903
+
904
+ Added immutable off-GUI revision/index services with cached UTF-8 and UTF-16
905
+ position facts. Convert and Save C remain disabled until the latest revision
906
+ authenticates. Moved linked-file reads, hashes, observations, and guarded atomic
907
+ writes to bounded daemon workers; an in-flight stale Save C fails before atomic
908
+ replacement.
909
+
910
+ Added debounced latest-wins literal search with an exact total and a 5,000-range
911
+ projection cap. Added automatic large-file editor mode, bounded syntax/bracket
912
+ work, marker and overview caps, viewport-focused selections, incremental 32 KiB
913
+ generated-C projection, and deferred hidden output/detail work. Source edits
914
+ are coalesced before proportional controller synchronization.
915
+
916
+ Validated direct-versus-isolated serialized-result equality, hard-cancel and
917
+ failure containment, maximum-envelope revision/search/index behavior, injected
918
+ slow file I/O, and 100 edit/convert/cancel cycles without stale publication,
919
+ deadlock, crash, obsolete pending work, or orphan processes.
920
+
921
+ Advanced the package to `0.15.0` and workspace contract to
922
+ `pycforge-workspace/0.3`. The complete converter subtree and every converter
923
+ contract remain sealed at `0.14.3`.
924
+
925
+ PyCForge remains a Python-to-C source transpiler. No compiler, linker, loader,
926
+ generated-C executor, runner, debugger, terminal, toolchain, plugin,
927
+ project-explorer, host-discovery, or generated-C editor was added. Phase 15B,
928
+ 15C, and 15D remain unopened; visible Windows 11/Linux PyQt and accessibility
929
+ claims are reserved for Phase 15D.
930
+
931
+ ## 0.14.4 — Hardening Checkpoint E
932
+
933
+ Status: promoted and sealed.
934
+
935
+ Completed the roadmap's post-Phase-14 full-subset architecture review,
936
+ deterministic full-supported-subset fuzz and metamorphic gate, and documentation
937
+ and 69-entry feature-matrix reconciliation. No Python construct, C IR shape,
938
+ helper, diagnostic, conversion policy, public converter schema, or generated-C
939
+ style was added or changed.
940
+
941
+ Separated the package identity (`0.14.4`) from the sealed deterministic
942
+ converter contract identity (`0.14.3`). Golden output, serialized results,
943
+ facts, RulePlans, summaries, traces, telemetry, diagnostics, mappings, and
944
+ fingerprints remain Phase 14D values.
945
+
946
+ Corrected the active desktop identity to PyCForge across front-facing titles,
947
+ accessibility names, theme exports, and the settings namespace. Added a bounded,
948
+ non-destructive migration for allow-listed predecessor presentation settings
949
+ and retained non-exported compatibility aliases only for sealed historical
950
+ validators.
951
+
952
+ Established `pycforge-workspace/0.2` and a binding workspace-quality addendum.
953
+ The addendum assigns the requested process-isolated conversion supervisor,
954
+ maximum-input responsiveness, professional IDE-grade authoring and inspection,
955
+ custom gradient/icon main and context menus, accessibility, high-DPI, and real
956
+ Windows 11/Linux PyQt gates to Phase 15. Checkpoint E does not claim those
957
+ future gates or open Phase 15.
958
+
959
+ PyCForge remains a Python-to-C source transpiler. It does not compile, link,
960
+ load, run, execute, debug, benchmark, or otherwise invoke generated C or a C
961
+ toolchain.
962
+
963
+ Promotion executes all 69 frozen feature-matrix entries plus the unlisted
964
+ default, with 37 supported witnesses converted and 33 boundary witnesses
965
+ rejected without mismatch. The seeded hardening corpus contains 16 fixed and
966
+ 64 generated cases, four per promoted family, and all 80 match the
967
+ authenticated Phase 14D predecessor byte-for-byte.
968
+
969
+ Final validation discovers 589 tests: 572 pass, 17 are expected skips, and
970
+ zero fail. The focused Checkpoint E set passes 46 of 46, and every cumulative
971
+ source-only audit passes. Reproducible wheel and normalized source-archive
972
+ builds are byte-identical; isolated wheel and extracted-source smokes pass.
973
+ The wheel contains both PyCForge entry points, exactly 17 SVG assets, and no
974
+ native binaries.
975
+
976
+ ## 0.14.3 — Phase 14D exact required keyword-only calls
977
+
978
+ Status: promoted and sealed.
979
+
980
+ Added one exact source-only declaration and call profile for required
981
+ keyword-only parameters on already-resolved direct source functions. An admitted
982
+ function may have existing required positional-only and positional-or-keyword
983
+ parameters followed by one or more exactly annotated required keyword-only
984
+ parameters. Every `kw_defaults` entry is null; positional defaults,
985
+ keyword-only defaults, `*args`, and `**kwargs` remain rejected.
986
+
987
+ Ordinary positional actuals bind only positional-capable formals. Explicit named
988
+ actuals may bind unbound positional-or-keyword or required keyword-only formals.
989
+ Every required formal is covered exactly once with an exact category and
990
+ representation match. Explicit values stage once in Python source order; only
991
+ pure temporary references are arranged in full formal order for the existing
992
+ structured `CCallExpr`. No runtime binder, `TypeError` channel, default
993
+ evaluation, coercion, allocation, ownership transfer, or cleanup model was
994
+ added.
995
+
996
+ Added complete positive and negative `keyword-only-call-binding-facts` under
997
+ `fact-table/0.14.3` and the helper-free
998
+ `phase14.keyword_only_call.exact_binding@0.14.3` RulePlan. The lowering shape is
999
+ `source-order-actual-temporaries-formal-order-references-v1`. Independent
1000
+ validation reconstructs declaration kind, target, name binding, coverage,
1001
+ categories, source/formal orders, C parameter order, and exact plan
1002
+ correspondence before lowering.
1003
+ Required-keyword-only declarations remain in the existing function-signature
1004
+ facts without changing the serialized `ParameterFact` shape. Affected existing
1005
+ `FunctionDef` RulePlans gain explicit keyword-only parameter and
1006
+ C-interface-mode-erasure facts and obligations, and independent validation
1007
+ covers admitted declarations even when they have no call site.
1008
+
1009
+ No new source diagnostic code is required. `PYC2904` retains missing coverage
1010
+ and excess positional arity, `PYC2905` exact representation mismatch, `PYC2910`
1011
+ unpacking and excluded call shapes, and `PYC2912` exact name-binding failures.
1012
+ Under active 0.14.3 identities `PYC2911` continues to reject defaults,
1013
+ defaulted keyword-only parameters, variadics, and keyword-only declarations
1014
+ outside the exact required profile; it no longer rejects an otherwise eligible
1015
+ required keyword-only declaration solely because `kwonlyargs` is nonempty.
1016
+ Historical 0.14.2 diagnostics remain unchanged.
1017
+
1018
+ Advanced the active rule set to
1019
+ `phase14-required-keyword-only-calls-v0.14.3`, renderer to
1020
+ `c-renderer-v0.14.3`, and conversion-plan, C IR, generated-C, summary, and
1021
+ decision-trace envelopes to 0.14.3. SourceBundle 0.2, Python IR 0.4, result
1022
+ serialization 0.5, target and semantic policies, the helper registry, and all
1023
+ container/module/record/numeric/conditional policies remain frozen.
1024
+
1025
+ Explicit 0.14.2 and earlier requests retain their exact facts, plans,
1026
+ diagnostics, generated-C bytes, and fingerprints. Under active 0.14.3
1027
+ identities, sources selecting no Phase 14D declaration or call behavior retain
1028
+ Phase 14C generated-C bytes and output fingerprints. Required keyword-only
1029
+ support adds no C IR syntax kind, renderer grammar, helper, host discovery, or
1030
+ toolchain surface. Generated C remains source-validated only and is not
1031
+ compiled, linked, loaded, or executed. Defaults, variadics, unpacking, dynamic
1032
+ targets, methods, recursion, exceptions, closures, generators, async behavior,
1033
+ and every neighboring Phase 14 family remain excluded. Phase 15 has not
1034
+ started.
1035
+
1036
+ Promotion passed 539 discovered tests: 524 passed, 15 skipped, and zero failed.
1037
+ The skips are exactly 10 for unavailable PyQt5 and five for unavailable older
1038
+ custody artifacts. The focused Phase 14D gate passed 65 of 65 tests. Every
1039
+ active cumulative audit passed, including the required-keyword-only and
1040
+ Phase 14D transition audits.
1041
+
1042
+ Two fixed-epoch builds produced the same 340,054-byte
1043
+ `pycforge-0.14.3-py3-none-any.whl`, SHA-256
1044
+ `c0dd0c0ed79131daa5af815a8a9bb096b9f955c9c617ec0b8eb6a10c69d27b7f`.
1045
+ The wheel archive and `RECORD` each account for 132 members: 17 SVG assets and
1046
+ zero native-code members. Two normalized source-archive builds were likewise
1047
+ byte-identical. The promoted converter subtree SHA-256 is
1048
+ `74b32c25e40af3398dd46288941812ce7ad87f0d4b72fec3d3bd786cc1b8f3a8`.
1049
+
1050
+ Release validation remained source-only: no gate compiled, linked, loaded, or
1051
+ executed generated C. No new actual PyQt5 widget or Windows 11 execution is
1052
+ claimed. Historical opening records remain preserved, and Phase 15 has not
1053
+ started.
1054
+
1055
+ ## 0.14.2 — Phase 14C direct exact keyword calls
1056
+
1057
+ Status: promoted and sealed.
1058
+
1059
+ Added one closed compile-time binding profile for explicit keyword arguments on
1060
+ already-resolved direct source-function calls. Calls may use a leading ordinary
1061
+ positional prefix followed by one or more explicit named keywords. Every
1062
+ required formal is bound exactly once, positional-only formals remain
1063
+ positional-only, and actual/formal categories must match exactly. Same-module
1064
+ and existing explicit cross-module source-function bindings are eligible;
1065
+ dynamic targets, callable values, methods, defaults, keyword-only parameters,
1066
+ variadics, `*`/`**` unpacking, recursion, `range` keywords, and record-
1067
+ constructor keywords remain excluded.
1068
+
1069
+ Added independent keyword-call analysis and reconstruction,
1070
+ `keyword-call-binding-facts` under `fact-table/0.14.2`, and the helper-free
1071
+ `phase14.keyword_call.exact_binding@0.14.2` RulePlan. Argument values are staged
1072
+ left to right and once in Python source order, then pure temporary references
1073
+ are arranged in formal ordinal order for the existing structured `CCallExpr`.
1074
+ No C IR node kind, renderer grammar, helper, runtime binder, failure channel,
1075
+ allocation, ownership transfer, or cleanup model was added.
1076
+
1077
+ Added `PYC2912` for exact static name-binding failures: unknown keyword names,
1078
+ positional-only names used as keywords, positional/keyword collisions, and
1079
+ duplicate keywords. `PYC2910` remains the boundary for `*`/`**`, null keyword
1080
+ names, unpacking, and other excluded keyword shapes. Existing target,
1081
+ declaration, arity, category, record, `range`, and recursion diagnostics retain
1082
+ precedence.
1083
+
1084
+ Advanced the active rule set, renderer, conversion plan, C IR, generated-C,
1085
+ summary, and trace envelopes to 0.14.2. SourceBundle 0.2, Python IR 0.4, result
1086
+ serialization 0.5, all public policies, the helper registry, Phase 14A numeric
1087
+ facts/helpers, and Phase 14B `fact-table/0.14.1` conditional facts and RulePlans
1088
+ remain unchanged. Explicit 0.14.1 requests retain their historical keyword
1089
+ rejection and artifact behavior; active sources selecting no 14C call retain
1090
+ predecessor generated-C bytes and output fingerprints.
1091
+
1092
+ Promotion authenticated the sealed Phase 14B source archive and wheel, passed
1093
+ the cumulative suite and audits including the keyword and Phase 14/14B/14C
1094
+ transition audits, sealed deterministic wheel and source-archive builds, and
1095
+ passed isolated package validation. All release validation remained source-only;
1096
+ generated C was not compiled, linked, loaded, or executed. PyQt5 was unavailable
1097
+ in the release environment, so no new widget execution is claimed and sealed
1098
+ offscreen-widget evidence remains preserved. Windows 11 execution is not
1099
+ claimed. Phase 14D and Phase 15 have not started.
1100
+
1101
+ ## 0.14.1 — Phase 14B conditional temporary regions
1102
+
1103
+ Status: Phase 14B promoted and sealed.
1104
+
1105
+ Added exact conditional placement for statement-producing temporaries belonging
1106
+ to expressions already supported by the cumulative scalar subset. Boolean
1107
+ `and`/`or` expressions now use an initialized Boolean result and flat guarded
1108
+ assignments. Later operands of chained comparisons use guarded materialization
1109
+ and rolling middle values, preserving left-to-right, exactly-once evaluation
1110
+ without eagerly evaluating skipped operands.
1111
+
1112
+ Added independent conditional-region analysis and validation,
1113
+ `fact-table/0.14.1` conditional facts, two 0.14.1 RulePlan families, and active
1114
+ `conversion-plan/0.14.1`, `c-ir/0.14.1`, `generated-c/0.14.1`, summary, trace,
1115
+ rule-set, and renderer identities. No Python syntax, primitive operation,
1116
+ public policy, helper, runtime failure channel, allocation, ownership, cleanup,
1117
+ or C IR node kind was added.
1118
+
1119
+ Preserved the sealed Phase 14A numeric policy and helper registry exactly.
1120
+ Explicit 0.14.0 configuration retains its historical artifacts and placement
1121
+ rejections; active sources that select no conditional region retain predecessor
1122
+ generated-C bytes and output fingerprints. General exceptions, heap objects,
1123
+ dynamic dispatch, closures, generators, async behavior, context cleanup, and
1124
+ the broader class model remain excluded.
1125
+
1126
+ ## 0.14.0 — Phase 14A bounded integer floor arithmetic
1127
+
1128
+ Status: Phase 14A sealed.
1129
+
1130
+ Added exact integer `//` and `%` for existing integer-like expressions when
1131
+ the divisor is a direct signed integer literal in
1132
+ `[-9223372036854775807, -2]` or `[1, 9223372036854775807]`. Zero, negative one,
1133
+ `INT64_MIN`, Boolean, floating, dynamic, folded, calculated, and out-of-range
1134
+ divisors reject deterministically.
1135
+
1136
+ Added separate numeric analysis and lowering, `fact-table/0.14` numeric
1137
+ operation facts, the `phase14.numeric.floor_arithmetic` RulePlan family,
1138
+ `conversion-plan/0.14`, `c-ir/0.14`, `generated-c/0.14`, and 0.14 summary and
1139
+ decision-trace identities. The active numeric policy is
1140
+ `phase14-proved-floor-arithmetic-v0.14`.
1141
+
1142
+ Activated the frozen `pycf.i64.floor_div@1.0.0` and
1143
+ `pycf.i64.floor_mod@1.0.0` Phase 10 assets without changing their registry or
1144
+ asset fingerprints. Each occurrence selects exactly one helper, and the
1145
+ registry emits each selected helper once. Deterministic signed-64 temporaries
1146
+ preserve left-to-right, exactly-once operand evaluation.
1147
+
1148
+ The admitted divisor proof excludes C11 division by zero and
1149
+ `INT64_MIN / -1`; no runtime failure channel, exception emulation,
1150
+ arbitrary-precision runtime, allocation, or cleanup was added. Mathematical
1151
+ fixtures close Python floor quotient, divisor-sign remainder, and the division
1152
+ identity across the supported sign and boundary cases.
1153
+
1154
+ Preserved exact explicit Phase 13 conversion behavior and the unchanged module,
1155
+ record, container, workspace, no-host-discovery, and source-only product
1156
+ boundaries. Generated C was not compiled, linked, loaded, or executed.
1157
+
1158
+ Phase 14A is sealed independently. Broader Phase 14 remains closed pending a
1159
+ new decision and explicit approval. Phase 15 has not started.
1160
+
1161
+ ## 0.13.0 — Phase 13 static records
1162
+
1163
+ Status: promoted.
1164
+
1165
+ Added a deliberately narrow immutable-record subset expressed with one exact
1166
+ top-level Python class shape. Accepted records contain 1–64 ordered `int`,
1167
+ `float`, or `bool` fields, an exact structural `__init__`, direct fresh
1168
+ function-local positional construction, and direct statically resolved field
1169
+ reads.
1170
+
1171
+ Added `fact-table/0.13` record definitions, fields, initializers, instances,
1172
+ bindings, and accesses; seven record RulePlans; `conversion-plan/0.13`; record
1173
+ nodes in `c-ir/0.13`; `generated-c/0.13`; and 0.13 summary and decision-trace
1174
+ identities. The active record policy is
1175
+ `phase13-immutable-automatic-records-v0.13`.
1176
+
1177
+ Record lowering emits deterministic named C `typedef struct` declarations and
1178
+ fully initialized `const` aggregates in automatic function storage. Arguments
1179
+ are evaluated left to right and once before construction; field reads use
1180
+ direct member access. No record helper or runtime is selected.
1181
+
1182
+ General methods, inheritance and the broader Python object model remain
1183
+ unsupported. Records cannot be mutated, aliased, rebound, copied, escaped,
1184
+ passed, returned, stored in containers, imported, or used across modules.
1185
+ There is no heap allocation, null state, ownership transfer, or cleanup.
1186
+
1187
+ Adversarial hardening added binding-identity constructor resolution,
1188
+ read-after-construction and complete fresh-local proofs, dunder-field and
1189
+ annotation-builtin collision rejection, correct companion-module diagnostics,
1190
+ cooperative record cancellation, exact const/member and field-type C IR
1191
+ validation, manifest-bound provenance, and independent serialized record-fact
1192
+ cross-validation. Historical `fact-table/0.12` module records retain their
1193
+ exact shape; record linkage remains in Phase 13 evidence.
1194
+
1195
+ An initial working candidate was abandoned when an external compile-only
1196
+ review triggered the declared no-toolchain rollback rule. The release candidate
1197
+ was reseeded from a newly authenticated 0.12.2 extraction; the incident remains
1198
+ recorded and is not rewritten as passing evidence.
1199
+
1200
+ Preserved the Phase 12 function-import profile, Phase 11 containers, Phase 10
1201
+ helper registry, source-only product boundary, and PyCForge workspace safety
1202
+ model. Explicit historical Phase 12 requests retain their 0.12 identities, and
1203
+ class-free Phase 13 conversions preserve predecessor generated-C bytes.
1204
+
1205
+ The sealed 0.12.2 predecessor was authenticated before Phase 13 edits. Windows
1206
+ 11 laptop testing remains planned user feedback after all phases; this release
1207
+ does not claim Windows execution. Phase 14 has not started.
1208
+
1209
+ ## 0.12.2 — PyCForge workspace hardening
1210
+
1211
+ Corrected conversion-generation retirement, Save As destination validation,
1212
+ unexpected worker failure recovery, visible module identity commits,
1213
+ document-reorder controls, Unicode replacement navigation, keyboard access,
1214
+ and failure-tolerant versioned presentation settings without changing the
1215
+ sealed Phase 12 converter.
1216
+
1217
+ ## 0.12.1 — PyCForge workspace
1218
+
1219
+ Introduced the optional professional PyQt5 workspace over the sealed Phase 12
1220
+ converter, including explicit bundle navigation, Python and immutable C
1221
+ editors, diagnostics and mappings, stale-output protection, and atomic linked-C
1222
+ saving.
1223
+
1224
+ ## 0.12.0 — Phase 12 explicit module bundles
1225
+
1226
+ Introduced the bounded 1–64-document SourceBundle profile, exact compile-time
1227
+ direct-function imports, deterministic dependency ordering, and one generated
1228
+ C translation unit without host module discovery or runtime initialization.