pycforge 1.0.2__tar.gz → 1.0.5__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 (1420) hide show
  1. pycforge-1.0.5/CHANGELOG.md +895 -0
  2. pycforge-1.0.5/CURRENT_STATE.md +437 -0
  3. pycforge-1.0.5/MANIFEST.in +29 -0
  4. pycforge-1.0.5/PKG-INFO +202 -0
  5. pycforge-1.0.5/PYPI_RELEASE.md +261 -0
  6. pycforge-1.0.5/README.md +179 -0
  7. pycforge-1.0.5/RELEASE_NOTES.md +497 -0
  8. pycforge-1.0.5/pycforge/_version.py +1 -0
  9. pycforge-1.0.5/pycforge/ide/__init__.py +19 -0
  10. pycforge-1.0.5/pycforge/ide/editor.py +941 -0
  11. pycforge-1.0.5/pycforge/ide/editor_commands_qt.py +599 -0
  12. pycforge-1.0.5/pycforge/ide/find_replace.py +547 -0
  13. pycforge-1.0.5/pycforge/ide/icons.py +116 -0
  14. pycforge-1.0.5/pycforge/ide/panels.py +995 -0
  15. pycforge-1.0.5/pycforge/ide/qt_about.py +323 -0
  16. pycforge-1.0.5/pycforge/ide/qt_actions.py +488 -0
  17. pycforge-1.0.5/pycforge/ide/qt_dialog_chrome.py +307 -0
  18. pycforge-1.0.5/pycforge/ide/qt_editor_settings.py +236 -0
  19. pycforge-1.0.5/pycforge/ide/qt_file_dialogs.py +946 -0
  20. pycforge-1.0.5/pycforge/ide/qt_help.py +993 -0
  21. pycforge-1.0.5/pycforge/ide/qt_icons.py +80 -0
  22. pycforge-1.0.5/pycforge/ide/qt_projection.py +595 -0
  23. pycforge-1.0.5/pycforge/ide/qt_shell.py +510 -0
  24. pycforge-1.0.5/pycforge/ide/qt_source_preview.py +478 -0
  25. pycforge-1.0.5/pycforge/ide/qt_startup.py +341 -0
  26. pycforge-1.0.5/pycforge/ide/qt_ting_feedback.py +277 -0
  27. pycforge-1.0.5/pycforge/ide/qt_ting_flow.py +598 -0
  28. pycforge-1.0.5/pycforge/ide/qt_toast.py +104 -0
  29. pycforge-1.0.5/pycforge/ide/qt_workspace_widgets.py +394 -0
  30. pycforge-1.0.5/pycforge/ide/resources/help/catalog.json +129 -0
  31. pycforge-1.0.5/pycforge/ide/resources/help/contracts.html +67 -0
  32. pycforge-1.0.5/pycforge/ide/resources/help/help.css +144 -0
  33. pycforge-1.0.5/pycforge/ide/resources/help/shortcuts.html +65 -0
  34. pycforge-1.0.5/pycforge/ide/resources/help/start.html +76 -0
  35. pycforge-1.0.5/pycforge/ide/resources/help/ting-agents.html +108 -0
  36. pycforge-1.0.5/pycforge/ide/resources/help/workspace.html +155 -0
  37. pycforge-1.0.5/pycforge/ide/resources/icons/128/add-document.png +0 -0
  38. pycforge-1.0.5/pycforge/ide/resources/icons/128/brand-mark.png +0 -0
  39. pycforge-1.0.5/pycforge/ide/resources/icons/128/bundle-search.png +0 -0
  40. pycforge-1.0.5/pycforge/ide/resources/icons/128/cancel.png +0 -0
  41. pycforge-1.0.5/pycforge/ide/resources/icons/128/check.png +0 -0
  42. pycforge-1.0.5/pycforge/ide/resources/icons/128/chevron-right.png +0 -0
  43. pycforge-1.0.5/pycforge/ide/resources/icons/128/close.png +0 -0
  44. pycforge-1.0.5/pycforge/ide/resources/icons/128/collapse-all.png +0 -0
  45. pycforge-1.0.5/pycforge/ide/resources/icons/128/command-palette.png +0 -0
  46. pycforge-1.0.5/pycforge/ide/resources/icons/128/convert.png +0 -0
  47. pycforge-1.0.5/pycforge/ide/resources/icons/128/copy.png +0 -0
  48. pycforge-1.0.5/pycforge/ide/resources/icons/128/cut.png +0 -0
  49. pycforge-1.0.5/pycforge/ide/resources/icons/128/decision-trace.png +0 -0
  50. pycforge-1.0.5/pycforge/ide/resources/icons/128/details.png +0 -0
  51. pycforge-1.0.5/pycforge/ide/resources/icons/128/diagnostics.png +0 -0
  52. pycforge-1.0.5/pycforge/ide/resources/icons/128/duplicate-line.png +0 -0
  53. pycforge-1.0.5/pycforge/ide/resources/icons/128/exit.png +0 -0
  54. pycforge-1.0.5/pycforge/ide/resources/icons/128/expand-all.png +0 -0
  55. pycforge-1.0.5/pycforge/ide/resources/icons/128/export.png +0 -0
  56. pycforge-1.0.5/pycforge/ide/resources/icons/128/find.png +0 -0
  57. pycforge-1.0.5/pycforge/ide/resources/icons/128/go-to-line.png +0 -0
  58. pycforge-1.0.5/pycforge/ide/resources/icons/128/go-to-output.png +0 -0
  59. pycforge-1.0.5/pycforge/ide/resources/icons/128/go-to-source.png +0 -0
  60. pycforge-1.0.5/pycforge/ide/resources/icons/128/help.png +0 -0
  61. pycforge-1.0.5/pycforge/ide/resources/icons/128/history.png +0 -0
  62. pycforge-1.0.5/pycforge/ide/resources/icons/128/indent.png +0 -0
  63. pycforge-1.0.5/pycforge/ide/resources/icons/128/link-c.png +0 -0
  64. pycforge-1.0.5/pycforge/ide/resources/icons/128/mappings.png +0 -0
  65. pycforge-1.0.5/pycforge/ide/resources/icons/128/module.png +0 -0
  66. pycforge-1.0.5/pycforge/ide/resources/icons/128/move-down.png +0 -0
  67. pycforge-1.0.5/pycforge/ide/resources/icons/128/move-line-down.png +0 -0
  68. pycforge-1.0.5/pycforge/ide/resources/icons/128/move-line-up.png +0 -0
  69. pycforge-1.0.5/pycforge/ide/resources/icons/128/move-up.png +0 -0
  70. pycforge-1.0.5/pycforge/ide/resources/icons/128/next.png +0 -0
  71. pycforge-1.0.5/pycforge/ide/resources/icons/128/open.png +0 -0
  72. pycforge-1.0.5/pycforge/ide/resources/icons/128/outdent.png +0 -0
  73. pycforge-1.0.5/pycforge/ide/resources/icons/128/outline.png +0 -0
  74. pycforge-1.0.5/pycforge/ide/resources/icons/128/paste.png +0 -0
  75. pycforge-1.0.5/pycforge/ide/resources/icons/128/previous.png +0 -0
  76. pycforge-1.0.5/pycforge/ide/resources/icons/128/primary-module.png +0 -0
  77. pycforge-1.0.5/pycforge/ide/resources/icons/128/redo.png +0 -0
  78. pycforge-1.0.5/pycforge/ide/resources/icons/128/remove-document.png +0 -0
  79. pycforge-1.0.5/pycforge/ide/resources/icons/128/replace.png +0 -0
  80. pycforge-1.0.5/pycforge/ide/resources/icons/128/save-as.png +0 -0
  81. pycforge-1.0.5/pycforge/ide/resources/icons/128/save.png +0 -0
  82. pycforge-1.0.5/pycforge/ide/resources/icons/128/select-all.png +0 -0
  83. pycforge-1.0.5/pycforge/ide/resources/icons/128/settings.png +0 -0
  84. pycforge-1.0.5/pycforge/ide/resources/icons/128/show-c.png +0 -0
  85. pycforge-1.0.5/pycforge/ide/resources/icons/128/split-view.png +0 -0
  86. pycforge-1.0.5/pycforge/ide/resources/icons/128/summary.png +0 -0
  87. pycforge-1.0.5/pycforge/ide/resources/icons/128/telemetry.png +0 -0
  88. pycforge-1.0.5/pycforge/ide/resources/icons/128/toggle-comment.png +0 -0
  89. pycforge-1.0.5/pycforge/ide/resources/icons/128/toggle-fold.png +0 -0
  90. pycforge-1.0.5/pycforge/ide/resources/icons/128/undo.png +0 -0
  91. pycforge-1.0.5/pycforge/ide/resources/icons/128/whitespace.png +0 -0
  92. pycforge-1.0.5/pycforge/ide/resources/icons/16/add-document.png +0 -0
  93. pycforge-1.0.5/pycforge/ide/resources/icons/16/brand-mark.png +0 -0
  94. pycforge-1.0.5/pycforge/ide/resources/icons/16/bundle-search.png +0 -0
  95. pycforge-1.0.5/pycforge/ide/resources/icons/16/cancel.png +0 -0
  96. pycforge-1.0.5/pycforge/ide/resources/icons/16/check.png +0 -0
  97. pycforge-1.0.5/pycforge/ide/resources/icons/16/chevron-right.png +0 -0
  98. pycforge-1.0.5/pycforge/ide/resources/icons/16/close.png +0 -0
  99. pycforge-1.0.5/pycforge/ide/resources/icons/16/collapse-all.png +0 -0
  100. pycforge-1.0.5/pycforge/ide/resources/icons/16/command-palette.png +0 -0
  101. pycforge-1.0.5/pycforge/ide/resources/icons/16/convert.png +0 -0
  102. pycforge-1.0.5/pycforge/ide/resources/icons/16/copy.png +0 -0
  103. pycforge-1.0.5/pycforge/ide/resources/icons/16/cut.png +0 -0
  104. pycforge-1.0.5/pycforge/ide/resources/icons/16/decision-trace.png +0 -0
  105. pycforge-1.0.5/pycforge/ide/resources/icons/16/details.png +0 -0
  106. pycforge-1.0.5/pycforge/ide/resources/icons/16/diagnostics.png +0 -0
  107. pycforge-1.0.5/pycforge/ide/resources/icons/16/duplicate-line.png +0 -0
  108. pycforge-1.0.5/pycforge/ide/resources/icons/16/exit.png +0 -0
  109. pycforge-1.0.5/pycforge/ide/resources/icons/16/expand-all.png +0 -0
  110. pycforge-1.0.5/pycforge/ide/resources/icons/16/export.png +0 -0
  111. pycforge-1.0.5/pycforge/ide/resources/icons/16/find.png +0 -0
  112. pycforge-1.0.5/pycforge/ide/resources/icons/16/go-to-line.png +0 -0
  113. pycforge-1.0.5/pycforge/ide/resources/icons/16/go-to-output.png +0 -0
  114. pycforge-1.0.5/pycforge/ide/resources/icons/16/go-to-source.png +0 -0
  115. pycforge-1.0.5/pycforge/ide/resources/icons/16/help.png +0 -0
  116. pycforge-1.0.5/pycforge/ide/resources/icons/16/history.png +0 -0
  117. pycforge-1.0.5/pycforge/ide/resources/icons/16/indent.png +0 -0
  118. pycforge-1.0.5/pycforge/ide/resources/icons/16/link-c.png +0 -0
  119. pycforge-1.0.5/pycforge/ide/resources/icons/16/mappings.png +0 -0
  120. pycforge-1.0.5/pycforge/ide/resources/icons/16/module.png +0 -0
  121. pycforge-1.0.5/pycforge/ide/resources/icons/16/move-down.png +0 -0
  122. pycforge-1.0.5/pycforge/ide/resources/icons/16/move-line-down.png +0 -0
  123. pycforge-1.0.5/pycforge/ide/resources/icons/16/move-line-up.png +0 -0
  124. pycforge-1.0.5/pycforge/ide/resources/icons/16/move-up.png +0 -0
  125. pycforge-1.0.5/pycforge/ide/resources/icons/16/next.png +0 -0
  126. pycforge-1.0.5/pycforge/ide/resources/icons/16/open.png +0 -0
  127. pycforge-1.0.5/pycforge/ide/resources/icons/16/outdent.png +0 -0
  128. pycforge-1.0.5/pycforge/ide/resources/icons/16/outline.png +0 -0
  129. pycforge-1.0.5/pycforge/ide/resources/icons/16/paste.png +0 -0
  130. pycforge-1.0.5/pycforge/ide/resources/icons/16/previous.png +0 -0
  131. pycforge-1.0.5/pycforge/ide/resources/icons/16/primary-module.png +0 -0
  132. pycforge-1.0.5/pycforge/ide/resources/icons/16/redo.png +0 -0
  133. pycforge-1.0.5/pycforge/ide/resources/icons/16/remove-document.png +0 -0
  134. pycforge-1.0.5/pycforge/ide/resources/icons/16/replace.png +0 -0
  135. pycforge-1.0.5/pycforge/ide/resources/icons/16/save-as.png +0 -0
  136. pycforge-1.0.5/pycforge/ide/resources/icons/16/save.png +0 -0
  137. pycforge-1.0.5/pycforge/ide/resources/icons/16/select-all.png +0 -0
  138. pycforge-1.0.5/pycforge/ide/resources/icons/16/settings.png +0 -0
  139. pycforge-1.0.5/pycforge/ide/resources/icons/16/show-c.png +0 -0
  140. pycforge-1.0.5/pycforge/ide/resources/icons/16/split-view.png +0 -0
  141. pycforge-1.0.5/pycforge/ide/resources/icons/16/summary.png +0 -0
  142. pycforge-1.0.5/pycforge/ide/resources/icons/16/telemetry.png +0 -0
  143. pycforge-1.0.5/pycforge/ide/resources/icons/16/toggle-comment.png +0 -0
  144. pycforge-1.0.5/pycforge/ide/resources/icons/16/toggle-fold.png +0 -0
  145. pycforge-1.0.5/pycforge/ide/resources/icons/16/undo.png +0 -0
  146. pycforge-1.0.5/pycforge/ide/resources/icons/16/whitespace.png +0 -0
  147. pycforge-1.0.5/pycforge/ide/resources/icons/20/add-document.png +0 -0
  148. pycforge-1.0.5/pycforge/ide/resources/icons/20/brand-mark.png +0 -0
  149. pycforge-1.0.5/pycforge/ide/resources/icons/20/bundle-search.png +0 -0
  150. pycforge-1.0.5/pycforge/ide/resources/icons/20/cancel.png +0 -0
  151. pycforge-1.0.5/pycforge/ide/resources/icons/20/check.png +0 -0
  152. pycforge-1.0.5/pycforge/ide/resources/icons/20/chevron-right.png +0 -0
  153. pycforge-1.0.5/pycforge/ide/resources/icons/20/close.png +0 -0
  154. pycforge-1.0.5/pycforge/ide/resources/icons/20/collapse-all.png +0 -0
  155. pycforge-1.0.5/pycforge/ide/resources/icons/20/command-palette.png +0 -0
  156. pycforge-1.0.5/pycforge/ide/resources/icons/20/convert.png +0 -0
  157. pycforge-1.0.5/pycforge/ide/resources/icons/20/copy.png +0 -0
  158. pycforge-1.0.5/pycforge/ide/resources/icons/20/cut.png +0 -0
  159. pycforge-1.0.5/pycforge/ide/resources/icons/20/decision-trace.png +0 -0
  160. pycforge-1.0.5/pycforge/ide/resources/icons/20/details.png +0 -0
  161. pycforge-1.0.5/pycforge/ide/resources/icons/20/diagnostics.png +0 -0
  162. pycforge-1.0.5/pycforge/ide/resources/icons/20/duplicate-line.png +0 -0
  163. pycforge-1.0.5/pycforge/ide/resources/icons/20/exit.png +0 -0
  164. pycforge-1.0.5/pycforge/ide/resources/icons/20/expand-all.png +0 -0
  165. pycforge-1.0.5/pycforge/ide/resources/icons/20/export.png +0 -0
  166. pycforge-1.0.5/pycforge/ide/resources/icons/20/find.png +0 -0
  167. pycforge-1.0.5/pycforge/ide/resources/icons/20/go-to-line.png +0 -0
  168. pycforge-1.0.5/pycforge/ide/resources/icons/20/go-to-output.png +0 -0
  169. pycforge-1.0.5/pycforge/ide/resources/icons/20/go-to-source.png +0 -0
  170. pycforge-1.0.5/pycforge/ide/resources/icons/20/help.png +0 -0
  171. pycforge-1.0.5/pycforge/ide/resources/icons/20/history.png +0 -0
  172. pycforge-1.0.5/pycforge/ide/resources/icons/20/indent.png +0 -0
  173. pycforge-1.0.5/pycforge/ide/resources/icons/20/link-c.png +0 -0
  174. pycforge-1.0.5/pycforge/ide/resources/icons/20/mappings.png +0 -0
  175. pycforge-1.0.5/pycforge/ide/resources/icons/20/module.png +0 -0
  176. pycforge-1.0.5/pycforge/ide/resources/icons/20/move-down.png +0 -0
  177. pycforge-1.0.5/pycforge/ide/resources/icons/20/move-line-down.png +0 -0
  178. pycforge-1.0.5/pycforge/ide/resources/icons/20/move-line-up.png +0 -0
  179. pycforge-1.0.5/pycforge/ide/resources/icons/20/move-up.png +0 -0
  180. pycforge-1.0.5/pycforge/ide/resources/icons/20/next.png +0 -0
  181. pycforge-1.0.5/pycforge/ide/resources/icons/20/open.png +0 -0
  182. pycforge-1.0.5/pycforge/ide/resources/icons/20/outdent.png +0 -0
  183. pycforge-1.0.5/pycforge/ide/resources/icons/20/outline.png +0 -0
  184. pycforge-1.0.5/pycforge/ide/resources/icons/20/paste.png +0 -0
  185. pycforge-1.0.5/pycforge/ide/resources/icons/20/previous.png +0 -0
  186. pycforge-1.0.5/pycforge/ide/resources/icons/20/primary-module.png +0 -0
  187. pycforge-1.0.5/pycforge/ide/resources/icons/20/redo.png +0 -0
  188. pycforge-1.0.5/pycforge/ide/resources/icons/20/remove-document.png +0 -0
  189. pycforge-1.0.5/pycforge/ide/resources/icons/20/replace.png +0 -0
  190. pycforge-1.0.5/pycforge/ide/resources/icons/20/save-as.png +0 -0
  191. pycforge-1.0.5/pycforge/ide/resources/icons/20/save.png +0 -0
  192. pycforge-1.0.5/pycforge/ide/resources/icons/20/select-all.png +0 -0
  193. pycforge-1.0.5/pycforge/ide/resources/icons/20/settings.png +0 -0
  194. pycforge-1.0.5/pycforge/ide/resources/icons/20/show-c.png +0 -0
  195. pycforge-1.0.5/pycforge/ide/resources/icons/20/split-view.png +0 -0
  196. pycforge-1.0.5/pycforge/ide/resources/icons/20/summary.png +0 -0
  197. pycforge-1.0.5/pycforge/ide/resources/icons/20/telemetry.png +0 -0
  198. pycforge-1.0.5/pycforge/ide/resources/icons/20/toggle-comment.png +0 -0
  199. pycforge-1.0.5/pycforge/ide/resources/icons/20/toggle-fold.png +0 -0
  200. pycforge-1.0.5/pycforge/ide/resources/icons/20/undo.png +0 -0
  201. pycforge-1.0.5/pycforge/ide/resources/icons/20/whitespace.png +0 -0
  202. pycforge-1.0.5/pycforge/ide/resources/icons/24/add-document.png +0 -0
  203. pycforge-1.0.5/pycforge/ide/resources/icons/24/brand-mark.png +0 -0
  204. pycforge-1.0.5/pycforge/ide/resources/icons/24/bundle-search.png +0 -0
  205. pycforge-1.0.5/pycforge/ide/resources/icons/24/cancel.png +0 -0
  206. pycforge-1.0.5/pycforge/ide/resources/icons/24/check.png +0 -0
  207. pycforge-1.0.5/pycforge/ide/resources/icons/24/chevron-right.png +0 -0
  208. pycforge-1.0.5/pycforge/ide/resources/icons/24/close.png +0 -0
  209. pycforge-1.0.5/pycforge/ide/resources/icons/24/collapse-all.png +0 -0
  210. pycforge-1.0.5/pycforge/ide/resources/icons/24/command-palette.png +0 -0
  211. pycforge-1.0.5/pycforge/ide/resources/icons/24/convert.png +0 -0
  212. pycforge-1.0.5/pycforge/ide/resources/icons/24/copy.png +0 -0
  213. pycforge-1.0.5/pycforge/ide/resources/icons/24/cut.png +0 -0
  214. pycforge-1.0.5/pycforge/ide/resources/icons/24/decision-trace.png +0 -0
  215. pycforge-1.0.5/pycforge/ide/resources/icons/24/details.png +0 -0
  216. pycforge-1.0.5/pycforge/ide/resources/icons/24/diagnostics.png +0 -0
  217. pycforge-1.0.5/pycforge/ide/resources/icons/24/duplicate-line.png +0 -0
  218. pycforge-1.0.5/pycforge/ide/resources/icons/24/exit.png +0 -0
  219. pycforge-1.0.5/pycforge/ide/resources/icons/24/expand-all.png +0 -0
  220. pycforge-1.0.5/pycforge/ide/resources/icons/24/export.png +0 -0
  221. pycforge-1.0.5/pycforge/ide/resources/icons/24/find.png +0 -0
  222. pycforge-1.0.5/pycforge/ide/resources/icons/24/go-to-line.png +0 -0
  223. pycforge-1.0.5/pycforge/ide/resources/icons/24/go-to-output.png +0 -0
  224. pycforge-1.0.5/pycforge/ide/resources/icons/24/go-to-source.png +0 -0
  225. pycforge-1.0.5/pycforge/ide/resources/icons/24/help.png +0 -0
  226. pycforge-1.0.5/pycforge/ide/resources/icons/24/history.png +0 -0
  227. pycforge-1.0.5/pycforge/ide/resources/icons/24/indent.png +0 -0
  228. pycforge-1.0.5/pycforge/ide/resources/icons/24/link-c.png +0 -0
  229. pycforge-1.0.5/pycforge/ide/resources/icons/24/mappings.png +0 -0
  230. pycforge-1.0.5/pycforge/ide/resources/icons/24/module.png +0 -0
  231. pycforge-1.0.5/pycforge/ide/resources/icons/24/move-down.png +0 -0
  232. pycforge-1.0.5/pycforge/ide/resources/icons/24/move-line-down.png +0 -0
  233. pycforge-1.0.5/pycforge/ide/resources/icons/24/move-line-up.png +0 -0
  234. pycforge-1.0.5/pycforge/ide/resources/icons/24/move-up.png +0 -0
  235. pycforge-1.0.5/pycforge/ide/resources/icons/24/next.png +0 -0
  236. pycforge-1.0.5/pycforge/ide/resources/icons/24/open.png +0 -0
  237. pycforge-1.0.5/pycforge/ide/resources/icons/24/outdent.png +0 -0
  238. pycforge-1.0.5/pycforge/ide/resources/icons/24/outline.png +0 -0
  239. pycforge-1.0.5/pycforge/ide/resources/icons/24/paste.png +0 -0
  240. pycforge-1.0.5/pycforge/ide/resources/icons/24/previous.png +0 -0
  241. pycforge-1.0.5/pycforge/ide/resources/icons/24/primary-module.png +0 -0
  242. pycforge-1.0.5/pycforge/ide/resources/icons/24/redo.png +0 -0
  243. pycforge-1.0.5/pycforge/ide/resources/icons/24/remove-document.png +0 -0
  244. pycforge-1.0.5/pycforge/ide/resources/icons/24/replace.png +0 -0
  245. pycforge-1.0.5/pycforge/ide/resources/icons/24/save-as.png +0 -0
  246. pycforge-1.0.5/pycforge/ide/resources/icons/24/save.png +0 -0
  247. pycforge-1.0.5/pycforge/ide/resources/icons/24/select-all.png +0 -0
  248. pycforge-1.0.5/pycforge/ide/resources/icons/24/settings.png +0 -0
  249. pycforge-1.0.5/pycforge/ide/resources/icons/24/show-c.png +0 -0
  250. pycforge-1.0.5/pycforge/ide/resources/icons/24/split-view.png +0 -0
  251. pycforge-1.0.5/pycforge/ide/resources/icons/24/summary.png +0 -0
  252. pycforge-1.0.5/pycforge/ide/resources/icons/24/telemetry.png +0 -0
  253. pycforge-1.0.5/pycforge/ide/resources/icons/24/toggle-comment.png +0 -0
  254. pycforge-1.0.5/pycforge/ide/resources/icons/24/toggle-fold.png +0 -0
  255. pycforge-1.0.5/pycforge/ide/resources/icons/24/undo.png +0 -0
  256. pycforge-1.0.5/pycforge/ide/resources/icons/24/whitespace.png +0 -0
  257. pycforge-1.0.5/pycforge/ide/resources/icons/256/add-document.png +0 -0
  258. pycforge-1.0.5/pycforge/ide/resources/icons/256/brand-mark.png +0 -0
  259. pycforge-1.0.5/pycforge/ide/resources/icons/256/bundle-search.png +0 -0
  260. pycforge-1.0.5/pycforge/ide/resources/icons/256/cancel.png +0 -0
  261. pycforge-1.0.5/pycforge/ide/resources/icons/256/check.png +0 -0
  262. pycforge-1.0.5/pycforge/ide/resources/icons/256/chevron-right.png +0 -0
  263. pycforge-1.0.5/pycforge/ide/resources/icons/256/close.png +0 -0
  264. pycforge-1.0.5/pycforge/ide/resources/icons/256/collapse-all.png +0 -0
  265. pycforge-1.0.5/pycforge/ide/resources/icons/256/command-palette.png +0 -0
  266. pycforge-1.0.5/pycforge/ide/resources/icons/256/convert.png +0 -0
  267. pycforge-1.0.5/pycforge/ide/resources/icons/256/copy.png +0 -0
  268. pycforge-1.0.5/pycforge/ide/resources/icons/256/cut.png +0 -0
  269. pycforge-1.0.5/pycforge/ide/resources/icons/256/decision-trace.png +0 -0
  270. pycforge-1.0.5/pycforge/ide/resources/icons/256/details.png +0 -0
  271. pycforge-1.0.5/pycforge/ide/resources/icons/256/diagnostics.png +0 -0
  272. pycforge-1.0.5/pycforge/ide/resources/icons/256/duplicate-line.png +0 -0
  273. pycforge-1.0.5/pycforge/ide/resources/icons/256/exit.png +0 -0
  274. pycforge-1.0.5/pycforge/ide/resources/icons/256/expand-all.png +0 -0
  275. pycforge-1.0.5/pycforge/ide/resources/icons/256/export.png +0 -0
  276. pycforge-1.0.5/pycforge/ide/resources/icons/256/find.png +0 -0
  277. pycforge-1.0.5/pycforge/ide/resources/icons/256/go-to-line.png +0 -0
  278. pycforge-1.0.5/pycforge/ide/resources/icons/256/go-to-output.png +0 -0
  279. pycforge-1.0.5/pycforge/ide/resources/icons/256/go-to-source.png +0 -0
  280. pycforge-1.0.5/pycforge/ide/resources/icons/256/help.png +0 -0
  281. pycforge-1.0.5/pycforge/ide/resources/icons/256/history.png +0 -0
  282. pycforge-1.0.5/pycforge/ide/resources/icons/256/indent.png +0 -0
  283. pycforge-1.0.5/pycforge/ide/resources/icons/256/link-c.png +0 -0
  284. pycforge-1.0.5/pycforge/ide/resources/icons/256/mappings.png +0 -0
  285. pycforge-1.0.5/pycforge/ide/resources/icons/256/module.png +0 -0
  286. pycforge-1.0.5/pycforge/ide/resources/icons/256/move-down.png +0 -0
  287. pycforge-1.0.5/pycforge/ide/resources/icons/256/move-line-down.png +0 -0
  288. pycforge-1.0.5/pycforge/ide/resources/icons/256/move-line-up.png +0 -0
  289. pycforge-1.0.5/pycforge/ide/resources/icons/256/move-up.png +0 -0
  290. pycforge-1.0.5/pycforge/ide/resources/icons/256/next.png +0 -0
  291. pycforge-1.0.5/pycforge/ide/resources/icons/256/open.png +0 -0
  292. pycforge-1.0.5/pycforge/ide/resources/icons/256/outdent.png +0 -0
  293. pycforge-1.0.5/pycforge/ide/resources/icons/256/outline.png +0 -0
  294. pycforge-1.0.5/pycforge/ide/resources/icons/256/paste.png +0 -0
  295. pycforge-1.0.5/pycforge/ide/resources/icons/256/previous.png +0 -0
  296. pycforge-1.0.5/pycforge/ide/resources/icons/256/primary-module.png +0 -0
  297. pycforge-1.0.5/pycforge/ide/resources/icons/256/redo.png +0 -0
  298. pycforge-1.0.5/pycforge/ide/resources/icons/256/remove-document.png +0 -0
  299. pycforge-1.0.5/pycforge/ide/resources/icons/256/replace.png +0 -0
  300. pycforge-1.0.5/pycforge/ide/resources/icons/256/save-as.png +0 -0
  301. pycforge-1.0.5/pycforge/ide/resources/icons/256/save.png +0 -0
  302. pycforge-1.0.5/pycforge/ide/resources/icons/256/select-all.png +0 -0
  303. pycforge-1.0.5/pycforge/ide/resources/icons/256/settings.png +0 -0
  304. pycforge-1.0.5/pycforge/ide/resources/icons/256/show-c.png +0 -0
  305. pycforge-1.0.5/pycforge/ide/resources/icons/256/split-view.png +0 -0
  306. pycforge-1.0.5/pycforge/ide/resources/icons/256/summary.png +0 -0
  307. pycforge-1.0.5/pycforge/ide/resources/icons/256/telemetry.png +0 -0
  308. pycforge-1.0.5/pycforge/ide/resources/icons/256/toggle-comment.png +0 -0
  309. pycforge-1.0.5/pycforge/ide/resources/icons/256/toggle-fold.png +0 -0
  310. pycforge-1.0.5/pycforge/ide/resources/icons/256/undo.png +0 -0
  311. pycforge-1.0.5/pycforge/ide/resources/icons/256/whitespace.png +0 -0
  312. pycforge-1.0.5/pycforge/ide/resources/icons/32/add-document.png +0 -0
  313. pycforge-1.0.5/pycforge/ide/resources/icons/32/brand-mark.png +0 -0
  314. pycforge-1.0.5/pycforge/ide/resources/icons/32/bundle-search.png +0 -0
  315. pycforge-1.0.5/pycforge/ide/resources/icons/32/cancel.png +0 -0
  316. pycforge-1.0.5/pycforge/ide/resources/icons/32/check.png +0 -0
  317. pycforge-1.0.5/pycforge/ide/resources/icons/32/chevron-right.png +0 -0
  318. pycforge-1.0.5/pycforge/ide/resources/icons/32/close.png +0 -0
  319. pycforge-1.0.5/pycforge/ide/resources/icons/32/collapse-all.png +0 -0
  320. pycforge-1.0.5/pycforge/ide/resources/icons/32/command-palette.png +0 -0
  321. pycforge-1.0.5/pycforge/ide/resources/icons/32/convert.png +0 -0
  322. pycforge-1.0.5/pycforge/ide/resources/icons/32/copy.png +0 -0
  323. pycforge-1.0.5/pycforge/ide/resources/icons/32/cut.png +0 -0
  324. pycforge-1.0.5/pycforge/ide/resources/icons/32/decision-trace.png +0 -0
  325. pycforge-1.0.5/pycforge/ide/resources/icons/32/details.png +0 -0
  326. pycforge-1.0.5/pycforge/ide/resources/icons/32/diagnostics.png +0 -0
  327. pycforge-1.0.5/pycforge/ide/resources/icons/32/duplicate-line.png +0 -0
  328. pycforge-1.0.5/pycforge/ide/resources/icons/32/exit.png +0 -0
  329. pycforge-1.0.5/pycforge/ide/resources/icons/32/expand-all.png +0 -0
  330. pycforge-1.0.5/pycforge/ide/resources/icons/32/export.png +0 -0
  331. pycforge-1.0.5/pycforge/ide/resources/icons/32/find.png +0 -0
  332. pycforge-1.0.5/pycforge/ide/resources/icons/32/go-to-line.png +0 -0
  333. pycforge-1.0.5/pycforge/ide/resources/icons/32/go-to-output.png +0 -0
  334. pycforge-1.0.5/pycforge/ide/resources/icons/32/go-to-source.png +0 -0
  335. pycforge-1.0.5/pycforge/ide/resources/icons/32/help.png +0 -0
  336. pycforge-1.0.5/pycforge/ide/resources/icons/32/history.png +0 -0
  337. pycforge-1.0.5/pycforge/ide/resources/icons/32/indent.png +0 -0
  338. pycforge-1.0.5/pycforge/ide/resources/icons/32/link-c.png +0 -0
  339. pycforge-1.0.5/pycforge/ide/resources/icons/32/mappings.png +0 -0
  340. pycforge-1.0.5/pycforge/ide/resources/icons/32/module.png +0 -0
  341. pycforge-1.0.5/pycforge/ide/resources/icons/32/move-down.png +0 -0
  342. pycforge-1.0.5/pycforge/ide/resources/icons/32/move-line-down.png +0 -0
  343. pycforge-1.0.5/pycforge/ide/resources/icons/32/move-line-up.png +0 -0
  344. pycforge-1.0.5/pycforge/ide/resources/icons/32/move-up.png +0 -0
  345. pycforge-1.0.5/pycforge/ide/resources/icons/32/next.png +0 -0
  346. pycforge-1.0.5/pycforge/ide/resources/icons/32/open.png +0 -0
  347. pycforge-1.0.5/pycforge/ide/resources/icons/32/outdent.png +0 -0
  348. pycforge-1.0.5/pycforge/ide/resources/icons/32/outline.png +0 -0
  349. pycforge-1.0.5/pycforge/ide/resources/icons/32/paste.png +0 -0
  350. pycforge-1.0.5/pycforge/ide/resources/icons/32/previous.png +0 -0
  351. pycforge-1.0.5/pycforge/ide/resources/icons/32/primary-module.png +0 -0
  352. pycforge-1.0.5/pycforge/ide/resources/icons/32/redo.png +0 -0
  353. pycforge-1.0.5/pycforge/ide/resources/icons/32/remove-document.png +0 -0
  354. pycforge-1.0.5/pycforge/ide/resources/icons/32/replace.png +0 -0
  355. pycforge-1.0.5/pycforge/ide/resources/icons/32/save-as.png +0 -0
  356. pycforge-1.0.5/pycforge/ide/resources/icons/32/save.png +0 -0
  357. pycforge-1.0.5/pycforge/ide/resources/icons/32/select-all.png +0 -0
  358. pycforge-1.0.5/pycforge/ide/resources/icons/32/settings.png +0 -0
  359. pycforge-1.0.5/pycforge/ide/resources/icons/32/show-c.png +0 -0
  360. pycforge-1.0.5/pycforge/ide/resources/icons/32/split-view.png +0 -0
  361. pycforge-1.0.5/pycforge/ide/resources/icons/32/summary.png +0 -0
  362. pycforge-1.0.5/pycforge/ide/resources/icons/32/telemetry.png +0 -0
  363. pycforge-1.0.5/pycforge/ide/resources/icons/32/toggle-comment.png +0 -0
  364. pycforge-1.0.5/pycforge/ide/resources/icons/32/toggle-fold.png +0 -0
  365. pycforge-1.0.5/pycforge/ide/resources/icons/32/undo.png +0 -0
  366. pycforge-1.0.5/pycforge/ide/resources/icons/32/whitespace.png +0 -0
  367. pycforge-1.0.5/pycforge/ide/resources/icons/48/add-document.png +0 -0
  368. pycforge-1.0.5/pycforge/ide/resources/icons/48/brand-mark.png +0 -0
  369. pycforge-1.0.5/pycforge/ide/resources/icons/48/bundle-search.png +0 -0
  370. pycforge-1.0.5/pycforge/ide/resources/icons/48/cancel.png +0 -0
  371. pycforge-1.0.5/pycforge/ide/resources/icons/48/check.png +0 -0
  372. pycforge-1.0.5/pycforge/ide/resources/icons/48/chevron-right.png +0 -0
  373. pycforge-1.0.5/pycforge/ide/resources/icons/48/close.png +0 -0
  374. pycforge-1.0.5/pycforge/ide/resources/icons/48/collapse-all.png +0 -0
  375. pycforge-1.0.5/pycforge/ide/resources/icons/48/command-palette.png +0 -0
  376. pycforge-1.0.5/pycforge/ide/resources/icons/48/convert.png +0 -0
  377. pycforge-1.0.5/pycforge/ide/resources/icons/48/copy.png +0 -0
  378. pycforge-1.0.5/pycforge/ide/resources/icons/48/cut.png +0 -0
  379. pycforge-1.0.5/pycforge/ide/resources/icons/48/decision-trace.png +0 -0
  380. pycforge-1.0.5/pycforge/ide/resources/icons/48/details.png +0 -0
  381. pycforge-1.0.5/pycforge/ide/resources/icons/48/diagnostics.png +0 -0
  382. pycforge-1.0.5/pycforge/ide/resources/icons/48/duplicate-line.png +0 -0
  383. pycforge-1.0.5/pycforge/ide/resources/icons/48/exit.png +0 -0
  384. pycforge-1.0.5/pycforge/ide/resources/icons/48/expand-all.png +0 -0
  385. pycforge-1.0.5/pycforge/ide/resources/icons/48/export.png +0 -0
  386. pycforge-1.0.5/pycforge/ide/resources/icons/48/find.png +0 -0
  387. pycforge-1.0.5/pycforge/ide/resources/icons/48/go-to-line.png +0 -0
  388. pycforge-1.0.5/pycforge/ide/resources/icons/48/go-to-output.png +0 -0
  389. pycforge-1.0.5/pycforge/ide/resources/icons/48/go-to-source.png +0 -0
  390. pycforge-1.0.5/pycforge/ide/resources/icons/48/help.png +0 -0
  391. pycforge-1.0.5/pycforge/ide/resources/icons/48/history.png +0 -0
  392. pycforge-1.0.5/pycforge/ide/resources/icons/48/indent.png +0 -0
  393. pycforge-1.0.5/pycforge/ide/resources/icons/48/link-c.png +0 -0
  394. pycforge-1.0.5/pycforge/ide/resources/icons/48/mappings.png +0 -0
  395. pycforge-1.0.5/pycforge/ide/resources/icons/48/module.png +0 -0
  396. pycforge-1.0.5/pycforge/ide/resources/icons/48/move-down.png +0 -0
  397. pycforge-1.0.5/pycforge/ide/resources/icons/48/move-line-down.png +0 -0
  398. pycforge-1.0.5/pycforge/ide/resources/icons/48/move-line-up.png +0 -0
  399. pycforge-1.0.5/pycforge/ide/resources/icons/48/move-up.png +0 -0
  400. pycforge-1.0.5/pycforge/ide/resources/icons/48/next.png +0 -0
  401. pycforge-1.0.5/pycforge/ide/resources/icons/48/open.png +0 -0
  402. pycforge-1.0.5/pycforge/ide/resources/icons/48/outdent.png +0 -0
  403. pycforge-1.0.5/pycforge/ide/resources/icons/48/outline.png +0 -0
  404. pycforge-1.0.5/pycforge/ide/resources/icons/48/paste.png +0 -0
  405. pycforge-1.0.5/pycforge/ide/resources/icons/48/previous.png +0 -0
  406. pycforge-1.0.5/pycforge/ide/resources/icons/48/primary-module.png +0 -0
  407. pycforge-1.0.5/pycforge/ide/resources/icons/48/redo.png +0 -0
  408. pycforge-1.0.5/pycforge/ide/resources/icons/48/remove-document.png +0 -0
  409. pycforge-1.0.5/pycforge/ide/resources/icons/48/replace.png +0 -0
  410. pycforge-1.0.5/pycforge/ide/resources/icons/48/save-as.png +0 -0
  411. pycforge-1.0.5/pycforge/ide/resources/icons/48/save.png +0 -0
  412. pycforge-1.0.5/pycforge/ide/resources/icons/48/select-all.png +0 -0
  413. pycforge-1.0.5/pycforge/ide/resources/icons/48/settings.png +0 -0
  414. pycforge-1.0.5/pycforge/ide/resources/icons/48/show-c.png +0 -0
  415. pycforge-1.0.5/pycforge/ide/resources/icons/48/split-view.png +0 -0
  416. pycforge-1.0.5/pycforge/ide/resources/icons/48/summary.png +0 -0
  417. pycforge-1.0.5/pycforge/ide/resources/icons/48/telemetry.png +0 -0
  418. pycforge-1.0.5/pycforge/ide/resources/icons/48/toggle-comment.png +0 -0
  419. pycforge-1.0.5/pycforge/ide/resources/icons/48/toggle-fold.png +0 -0
  420. pycforge-1.0.5/pycforge/ide/resources/icons/48/undo.png +0 -0
  421. pycforge-1.0.5/pycforge/ide/resources/icons/48/whitespace.png +0 -0
  422. pycforge-1.0.5/pycforge/ide/resources/icons/64/add-document.png +0 -0
  423. pycforge-1.0.5/pycforge/ide/resources/icons/64/brand-mark.png +0 -0
  424. pycforge-1.0.5/pycforge/ide/resources/icons/64/bundle-search.png +0 -0
  425. pycforge-1.0.5/pycforge/ide/resources/icons/64/cancel.png +0 -0
  426. pycforge-1.0.5/pycforge/ide/resources/icons/64/check.png +0 -0
  427. pycforge-1.0.5/pycforge/ide/resources/icons/64/chevron-right.png +0 -0
  428. pycforge-1.0.5/pycforge/ide/resources/icons/64/close.png +0 -0
  429. pycforge-1.0.5/pycforge/ide/resources/icons/64/collapse-all.png +0 -0
  430. pycforge-1.0.5/pycforge/ide/resources/icons/64/command-palette.png +0 -0
  431. pycforge-1.0.5/pycforge/ide/resources/icons/64/convert.png +0 -0
  432. pycforge-1.0.5/pycforge/ide/resources/icons/64/copy.png +0 -0
  433. pycforge-1.0.5/pycforge/ide/resources/icons/64/cut.png +0 -0
  434. pycforge-1.0.5/pycforge/ide/resources/icons/64/decision-trace.png +0 -0
  435. pycforge-1.0.5/pycforge/ide/resources/icons/64/details.png +0 -0
  436. pycforge-1.0.5/pycforge/ide/resources/icons/64/diagnostics.png +0 -0
  437. pycforge-1.0.5/pycforge/ide/resources/icons/64/duplicate-line.png +0 -0
  438. pycforge-1.0.5/pycforge/ide/resources/icons/64/exit.png +0 -0
  439. pycforge-1.0.5/pycforge/ide/resources/icons/64/expand-all.png +0 -0
  440. pycforge-1.0.5/pycforge/ide/resources/icons/64/export.png +0 -0
  441. pycforge-1.0.5/pycforge/ide/resources/icons/64/find.png +0 -0
  442. pycforge-1.0.5/pycforge/ide/resources/icons/64/go-to-line.png +0 -0
  443. pycforge-1.0.5/pycforge/ide/resources/icons/64/go-to-output.png +0 -0
  444. pycforge-1.0.5/pycforge/ide/resources/icons/64/go-to-source.png +0 -0
  445. pycforge-1.0.5/pycforge/ide/resources/icons/64/help.png +0 -0
  446. pycforge-1.0.5/pycforge/ide/resources/icons/64/history.png +0 -0
  447. pycforge-1.0.5/pycforge/ide/resources/icons/64/indent.png +0 -0
  448. pycforge-1.0.5/pycforge/ide/resources/icons/64/link-c.png +0 -0
  449. pycforge-1.0.5/pycforge/ide/resources/icons/64/mappings.png +0 -0
  450. pycforge-1.0.5/pycforge/ide/resources/icons/64/module.png +0 -0
  451. pycforge-1.0.5/pycforge/ide/resources/icons/64/move-down.png +0 -0
  452. pycforge-1.0.5/pycforge/ide/resources/icons/64/move-line-down.png +0 -0
  453. pycforge-1.0.5/pycforge/ide/resources/icons/64/move-line-up.png +0 -0
  454. pycforge-1.0.5/pycforge/ide/resources/icons/64/move-up.png +0 -0
  455. pycforge-1.0.5/pycforge/ide/resources/icons/64/next.png +0 -0
  456. pycforge-1.0.5/pycforge/ide/resources/icons/64/open.png +0 -0
  457. pycforge-1.0.5/pycforge/ide/resources/icons/64/outdent.png +0 -0
  458. pycforge-1.0.5/pycforge/ide/resources/icons/64/outline.png +0 -0
  459. pycforge-1.0.5/pycforge/ide/resources/icons/64/paste.png +0 -0
  460. pycforge-1.0.5/pycforge/ide/resources/icons/64/previous.png +0 -0
  461. pycforge-1.0.5/pycforge/ide/resources/icons/64/primary-module.png +0 -0
  462. pycforge-1.0.5/pycforge/ide/resources/icons/64/redo.png +0 -0
  463. pycforge-1.0.5/pycforge/ide/resources/icons/64/remove-document.png +0 -0
  464. pycforge-1.0.5/pycforge/ide/resources/icons/64/replace.png +0 -0
  465. pycforge-1.0.5/pycforge/ide/resources/icons/64/save-as.png +0 -0
  466. pycforge-1.0.5/pycforge/ide/resources/icons/64/save.png +0 -0
  467. pycforge-1.0.5/pycforge/ide/resources/icons/64/select-all.png +0 -0
  468. pycforge-1.0.5/pycforge/ide/resources/icons/64/settings.png +0 -0
  469. pycforge-1.0.5/pycforge/ide/resources/icons/64/show-c.png +0 -0
  470. pycforge-1.0.5/pycforge/ide/resources/icons/64/split-view.png +0 -0
  471. pycforge-1.0.5/pycforge/ide/resources/icons/64/summary.png +0 -0
  472. pycforge-1.0.5/pycforge/ide/resources/icons/64/telemetry.png +0 -0
  473. pycforge-1.0.5/pycforge/ide/resources/icons/64/toggle-comment.png +0 -0
  474. pycforge-1.0.5/pycforge/ide/resources/icons/64/toggle-fold.png +0 -0
  475. pycforge-1.0.5/pycforge/ide/resources/icons/64/undo.png +0 -0
  476. pycforge-1.0.5/pycforge/ide/resources/icons/64/whitespace.png +0 -0
  477. pycforge-1.0.5/pycforge/ide/resources/icons/96/add-document.png +0 -0
  478. pycforge-1.0.5/pycforge/ide/resources/icons/96/brand-mark.png +0 -0
  479. pycforge-1.0.5/pycforge/ide/resources/icons/96/bundle-search.png +0 -0
  480. pycforge-1.0.5/pycforge/ide/resources/icons/96/cancel.png +0 -0
  481. pycforge-1.0.5/pycforge/ide/resources/icons/96/check.png +0 -0
  482. pycforge-1.0.5/pycforge/ide/resources/icons/96/chevron-right.png +0 -0
  483. pycforge-1.0.5/pycforge/ide/resources/icons/96/close.png +0 -0
  484. pycforge-1.0.5/pycforge/ide/resources/icons/96/collapse-all.png +0 -0
  485. pycforge-1.0.5/pycforge/ide/resources/icons/96/command-palette.png +0 -0
  486. pycforge-1.0.5/pycforge/ide/resources/icons/96/convert.png +0 -0
  487. pycforge-1.0.5/pycforge/ide/resources/icons/96/copy.png +0 -0
  488. pycforge-1.0.5/pycforge/ide/resources/icons/96/cut.png +0 -0
  489. pycforge-1.0.5/pycforge/ide/resources/icons/96/decision-trace.png +0 -0
  490. pycforge-1.0.5/pycforge/ide/resources/icons/96/details.png +0 -0
  491. pycforge-1.0.5/pycforge/ide/resources/icons/96/diagnostics.png +0 -0
  492. pycforge-1.0.5/pycforge/ide/resources/icons/96/duplicate-line.png +0 -0
  493. pycforge-1.0.5/pycforge/ide/resources/icons/96/exit.png +0 -0
  494. pycforge-1.0.5/pycforge/ide/resources/icons/96/expand-all.png +0 -0
  495. pycforge-1.0.5/pycforge/ide/resources/icons/96/export.png +0 -0
  496. pycforge-1.0.5/pycforge/ide/resources/icons/96/find.png +0 -0
  497. pycforge-1.0.5/pycforge/ide/resources/icons/96/go-to-line.png +0 -0
  498. pycforge-1.0.5/pycforge/ide/resources/icons/96/go-to-output.png +0 -0
  499. pycforge-1.0.5/pycforge/ide/resources/icons/96/go-to-source.png +0 -0
  500. pycforge-1.0.5/pycforge/ide/resources/icons/96/help.png +0 -0
  501. pycforge-1.0.5/pycforge/ide/resources/icons/96/history.png +0 -0
  502. pycforge-1.0.5/pycforge/ide/resources/icons/96/indent.png +0 -0
  503. pycforge-1.0.5/pycforge/ide/resources/icons/96/link-c.png +0 -0
  504. pycforge-1.0.5/pycforge/ide/resources/icons/96/mappings.png +0 -0
  505. pycforge-1.0.5/pycforge/ide/resources/icons/96/module.png +0 -0
  506. pycforge-1.0.5/pycforge/ide/resources/icons/96/move-down.png +0 -0
  507. pycforge-1.0.5/pycforge/ide/resources/icons/96/move-line-down.png +0 -0
  508. pycforge-1.0.5/pycforge/ide/resources/icons/96/move-line-up.png +0 -0
  509. pycforge-1.0.5/pycforge/ide/resources/icons/96/move-up.png +0 -0
  510. pycforge-1.0.5/pycforge/ide/resources/icons/96/next.png +0 -0
  511. pycforge-1.0.5/pycforge/ide/resources/icons/96/open.png +0 -0
  512. pycforge-1.0.5/pycforge/ide/resources/icons/96/outdent.png +0 -0
  513. pycforge-1.0.5/pycforge/ide/resources/icons/96/outline.png +0 -0
  514. pycforge-1.0.5/pycforge/ide/resources/icons/96/paste.png +0 -0
  515. pycforge-1.0.5/pycforge/ide/resources/icons/96/previous.png +0 -0
  516. pycforge-1.0.5/pycforge/ide/resources/icons/96/primary-module.png +0 -0
  517. pycforge-1.0.5/pycforge/ide/resources/icons/96/redo.png +0 -0
  518. pycforge-1.0.5/pycforge/ide/resources/icons/96/remove-document.png +0 -0
  519. pycforge-1.0.5/pycforge/ide/resources/icons/96/replace.png +0 -0
  520. pycforge-1.0.5/pycforge/ide/resources/icons/96/save-as.png +0 -0
  521. pycforge-1.0.5/pycforge/ide/resources/icons/96/save.png +0 -0
  522. pycforge-1.0.5/pycforge/ide/resources/icons/96/select-all.png +0 -0
  523. pycforge-1.0.5/pycforge/ide/resources/icons/96/settings.png +0 -0
  524. pycforge-1.0.5/pycforge/ide/resources/icons/96/show-c.png +0 -0
  525. pycforge-1.0.5/pycforge/ide/resources/icons/96/split-view.png +0 -0
  526. pycforge-1.0.5/pycforge/ide/resources/icons/96/summary.png +0 -0
  527. pycforge-1.0.5/pycforge/ide/resources/icons/96/telemetry.png +0 -0
  528. pycforge-1.0.5/pycforge/ide/resources/icons/96/toggle-comment.png +0 -0
  529. pycforge-1.0.5/pycforge/ide/resources/icons/96/toggle-fold.png +0 -0
  530. pycforge-1.0.5/pycforge/ide/resources/icons/96/undo.png +0 -0
  531. pycforge-1.0.5/pycforge/ide/resources/icons/96/whitespace.png +0 -0
  532. pycforge-1.0.5/pycforge/ide/theme.py +204 -0
  533. pycforge-1.0.5/pycforge/ide/theme_steel_stylesheet.py +820 -0
  534. pycforge-1.0.5/pycforge/ide/theme_stylesheet.py +594 -0
  535. pycforge-1.0.5/pycforge/ide/visual_tokens.py +146 -0
  536. pycforge-1.0.5/pycforge.egg-info/PKG-INFO +202 -0
  537. pycforge-1.0.5/pycforge.egg-info/SOURCES.txt +1285 -0
  538. pycforge-1.0.5/pyproject.toml +54 -0
  539. pycforge-1.0.5/tests/test_about_and_window_chrome_review.py +231 -0
  540. pycforge-1.0.5/tests/test_checkpoint_e_versioning.py +154 -0
  541. pycforge-1.0.5/tests/test_dialog_control_focus_1_0_5.py +149 -0
  542. pycforge-1.0.5/tests/test_editor_settings_qt.py +275 -0
  543. pycforge-1.0.5/tests/test_help_documentation_0_16_3.py +269 -0
  544. pycforge-1.0.5/tests/test_phase10_opening.py +136 -0
  545. pycforge-1.0.5/tests/test_phase12_1_pycforge_theme.py +230 -0
  546. pycforge-1.0.5/tests/test_phase12_2_components.py +247 -0
  547. pycforge-1.0.5/tests/test_phase12_2_metadata.py +252 -0
  548. pycforge-1.0.5/tests/test_phase12_2_qt.py +290 -0
  549. pycforge-1.0.5/tests/test_phase13_contracts.py +210 -0
  550. pycforge-1.0.5/tests/test_phase14_numeric_contracts.py +159 -0
  551. pycforge-1.0.5/tests/test_phase14b_conditional_contracts.py +235 -0
  552. pycforge-1.0.5/tests/test_phase14c_keyword_contracts.py +253 -0
  553. pycforge-1.0.5/tests/test_phase14d_keyword_only_contracts.py +486 -0
  554. pycforge-1.0.5/tests/test_phase15a_metadata.py +253 -0
  555. pycforge-1.0.5/tests/test_phase15b_action_integration.py +202 -0
  556. pycforge-1.0.5/tests/test_phase15b_visual_foundation.py +269 -0
  557. pycforge-1.0.5/tests/test_phase15c_action_contract.py +428 -0
  558. pycforge-1.0.5/tests/test_phase15c_visual_system.py +205 -0
  559. pycforge-1.0.5/tests/test_phase7.py +72 -0
  560. pycforge-1.0.5/tests/test_qt_file_dialogs.py +543 -0
  561. pycforge-1.0.5/tests/test_release_1_0_2_presentation.py +125 -0
  562. pycforge-1.0.5/tests/test_release_contract_0_16_3.py +284 -0
  563. pycforge-1.0.5/tests/test_set_conversion_1_0_1.py +249 -0
  564. pycforge-1.0.5/tests/test_steel_theme.py +127 -0
  565. pycforge-1.0.5/tests/test_typing_ui_stability_qt.py +540 -0
  566. pycforge-1.0.5/tests/test_ui_continuity_1_0_1.py +332 -0
  567. pycforge-1.0.5/tests/test_ui_review_corrections_1_0_1.py +324 -0
  568. pycforge-1.0.5/tests/test_validate_checkpoint_e.py +319 -0
  569. pycforge-1.0.5/tests/test_validate_phase15b.py +482 -0
  570. pycforge-1.0.5/tests/test_validate_phase15c.py +530 -0
  571. pycforge-1.0.5/tests/test_validate_phase16.py +349 -0
  572. pycforge-1.0.5/tests/test_validate_pycforge_workspace_0_12_2.py +179 -0
  573. pycforge-1.0.5/tests/test_windows_ui_scale_and_identity_1_0_1.py +230 -0
  574. pycforge-1.0.5/tools/smoke_pycforge_workspace_0_12_2.py +940 -0
  575. pycforge-1.0.5/tools/validate_phase16.py +1375 -0
  576. pycforge-1.0.5/tools/verify_public_distribution.py +593 -0
  577. pycforge-1.0.2/CHANGELOG.md +0 -838
  578. pycforge-1.0.2/CURRENT_STATE.md +0 -433
  579. pycforge-1.0.2/MANIFEST.in +0 -28
  580. pycforge-1.0.2/PKG-INFO +0 -188
  581. pycforge-1.0.2/PYPI_RELEASE.md +0 -254
  582. pycforge-1.0.2/README.md +0 -165
  583. pycforge-1.0.2/RELEASE_NOTES.md +0 -444
  584. pycforge-1.0.2/pycforge/_version.py +0 -1
  585. pycforge-1.0.2/pycforge/ide/__init__.py +0 -19
  586. pycforge-1.0.2/pycforge/ide/editor.py +0 -970
  587. pycforge-1.0.2/pycforge/ide/editor_commands_qt.py +0 -568
  588. pycforge-1.0.2/pycforge/ide/find_replace.py +0 -547
  589. pycforge-1.0.2/pycforge/ide/icons.py +0 -98
  590. pycforge-1.0.2/pycforge/ide/panels.py +0 -999
  591. pycforge-1.0.2/pycforge/ide/qt_about.py +0 -301
  592. pycforge-1.0.2/pycforge/ide/qt_actions.py +0 -488
  593. pycforge-1.0.2/pycforge/ide/qt_dialog_chrome.py +0 -276
  594. pycforge-1.0.2/pycforge/ide/qt_editor_settings.py +0 -236
  595. pycforge-1.0.2/pycforge/ide/qt_file_dialogs.py +0 -946
  596. pycforge-1.0.2/pycforge/ide/qt_help.py +0 -994
  597. pycforge-1.0.2/pycforge/ide/qt_icons.py +0 -77
  598. pycforge-1.0.2/pycforge/ide/qt_projection.py +0 -588
  599. pycforge-1.0.2/pycforge/ide/qt_shell.py +0 -507
  600. pycforge-1.0.2/pycforge/ide/qt_source_preview.py +0 -478
  601. pycforge-1.0.2/pycforge/ide/qt_startup.py +0 -330
  602. pycforge-1.0.2/pycforge/ide/qt_ting_feedback.py +0 -176
  603. pycforge-1.0.2/pycforge/ide/qt_toast.py +0 -105
  604. pycforge-1.0.2/pycforge/ide/qt_workspace_widgets.py +0 -401
  605. pycforge-1.0.2/pycforge/ide/resources/help/catalog.json +0 -129
  606. pycforge-1.0.2/pycforge/ide/resources/help/contracts.html +0 -67
  607. pycforge-1.0.2/pycforge/ide/resources/help/help.css +0 -144
  608. pycforge-1.0.2/pycforge/ide/resources/help/shortcuts.html +0 -64
  609. pycforge-1.0.2/pycforge/ide/resources/help/start.html +0 -76
  610. pycforge-1.0.2/pycforge/ide/resources/help/ting-agents.html +0 -104
  611. pycforge-1.0.2/pycforge/ide/resources/help/workspace.html +0 -153
  612. pycforge-1.0.2/pycforge/ide/resources/icons/add-document.svg +0 -1
  613. pycforge-1.0.2/pycforge/ide/resources/icons/brand-mark.svg +0 -1
  614. pycforge-1.0.2/pycforge/ide/resources/icons/bundle-search.svg +0 -1
  615. pycforge-1.0.2/pycforge/ide/resources/icons/cancel.svg +0 -1
  616. pycforge-1.0.2/pycforge/ide/resources/icons/check.svg +0 -1
  617. pycforge-1.0.2/pycforge/ide/resources/icons/chevron-right.svg +0 -1
  618. pycforge-1.0.2/pycforge/ide/resources/icons/close.svg +0 -1
  619. pycforge-1.0.2/pycforge/ide/resources/icons/collapse-all.svg +0 -1
  620. pycforge-1.0.2/pycforge/ide/resources/icons/command-palette.svg +0 -1
  621. pycforge-1.0.2/pycforge/ide/resources/icons/convert.svg +0 -1
  622. pycforge-1.0.2/pycforge/ide/resources/icons/copy.svg +0 -1
  623. pycforge-1.0.2/pycforge/ide/resources/icons/cut.svg +0 -1
  624. pycforge-1.0.2/pycforge/ide/resources/icons/decision-trace.svg +0 -1
  625. pycforge-1.0.2/pycforge/ide/resources/icons/details.svg +0 -1
  626. pycforge-1.0.2/pycforge/ide/resources/icons/diagnostics.svg +0 -1
  627. pycforge-1.0.2/pycforge/ide/resources/icons/duplicate-line.svg +0 -1
  628. pycforge-1.0.2/pycforge/ide/resources/icons/exit.svg +0 -1
  629. pycforge-1.0.2/pycforge/ide/resources/icons/expand-all.svg +0 -1
  630. pycforge-1.0.2/pycforge/ide/resources/icons/export.svg +0 -1
  631. pycforge-1.0.2/pycforge/ide/resources/icons/find.svg +0 -1
  632. pycforge-1.0.2/pycforge/ide/resources/icons/go-to-line.svg +0 -1
  633. pycforge-1.0.2/pycforge/ide/resources/icons/go-to-output.svg +0 -1
  634. pycforge-1.0.2/pycforge/ide/resources/icons/go-to-source.svg +0 -1
  635. pycforge-1.0.2/pycforge/ide/resources/icons/help.svg +0 -6
  636. pycforge-1.0.2/pycforge/ide/resources/icons/history.svg +0 -1
  637. pycforge-1.0.2/pycforge/ide/resources/icons/indent.svg +0 -1
  638. pycforge-1.0.2/pycforge/ide/resources/icons/link-c.svg +0 -1
  639. pycforge-1.0.2/pycforge/ide/resources/icons/mappings.svg +0 -1
  640. pycforge-1.0.2/pycforge/ide/resources/icons/module.svg +0 -1
  641. pycforge-1.0.2/pycforge/ide/resources/icons/move-down.svg +0 -1
  642. pycforge-1.0.2/pycforge/ide/resources/icons/move-line-down.svg +0 -1
  643. pycforge-1.0.2/pycforge/ide/resources/icons/move-line-up.svg +0 -1
  644. pycforge-1.0.2/pycforge/ide/resources/icons/move-up.svg +0 -1
  645. pycforge-1.0.2/pycforge/ide/resources/icons/next.svg +0 -1
  646. pycforge-1.0.2/pycforge/ide/resources/icons/open.svg +0 -1
  647. pycforge-1.0.2/pycforge/ide/resources/icons/outdent.svg +0 -1
  648. pycforge-1.0.2/pycforge/ide/resources/icons/outline.svg +0 -1
  649. pycforge-1.0.2/pycforge/ide/resources/icons/paste.svg +0 -1
  650. pycforge-1.0.2/pycforge/ide/resources/icons/previous.svg +0 -1
  651. pycforge-1.0.2/pycforge/ide/resources/icons/primary-module.svg +0 -1
  652. pycforge-1.0.2/pycforge/ide/resources/icons/redo.svg +0 -1
  653. pycforge-1.0.2/pycforge/ide/resources/icons/remove-document.svg +0 -1
  654. pycforge-1.0.2/pycforge/ide/resources/icons/replace.svg +0 -1
  655. pycforge-1.0.2/pycforge/ide/resources/icons/save-as.svg +0 -1
  656. pycforge-1.0.2/pycforge/ide/resources/icons/save.svg +0 -1
  657. pycforge-1.0.2/pycforge/ide/resources/icons/select-all.svg +0 -1
  658. pycforge-1.0.2/pycforge/ide/resources/icons/settings.svg +0 -1
  659. pycforge-1.0.2/pycforge/ide/resources/icons/show-c.svg +0 -1
  660. pycforge-1.0.2/pycforge/ide/resources/icons/split-view.svg +0 -1
  661. pycforge-1.0.2/pycforge/ide/resources/icons/summary.svg +0 -1
  662. pycforge-1.0.2/pycforge/ide/resources/icons/telemetry.svg +0 -1
  663. pycforge-1.0.2/pycforge/ide/resources/icons/toggle-comment.svg +0 -1
  664. pycforge-1.0.2/pycforge/ide/resources/icons/toggle-fold.svg +0 -1
  665. pycforge-1.0.2/pycforge/ide/resources/icons/undo.svg +0 -1
  666. pycforge-1.0.2/pycforge/ide/resources/icons/whitespace.svg +0 -1
  667. pycforge-1.0.2/pycforge/ide/theme.py +0 -204
  668. pycforge-1.0.2/pycforge/ide/theme_steel_stylesheet.py +0 -734
  669. pycforge-1.0.2/pycforge/ide/theme_stylesheet.py +0 -594
  670. pycforge-1.0.2/pycforge/ide/visual_tokens.py +0 -146
  671. pycforge-1.0.2/pycforge.egg-info/PKG-INFO +0 -188
  672. pycforge-1.0.2/pycforge.egg-info/SOURCES.txt +0 -843
  673. pycforge-1.0.2/pyproject.toml +0 -54
  674. pycforge-1.0.2/tests/test_about_and_window_chrome_review.py +0 -217
  675. pycforge-1.0.2/tests/test_checkpoint_e_versioning.py +0 -154
  676. pycforge-1.0.2/tests/test_editor_settings_qt.py +0 -275
  677. pycforge-1.0.2/tests/test_help_documentation_0_16_3.py +0 -269
  678. pycforge-1.0.2/tests/test_phase10_opening.py +0 -133
  679. pycforge-1.0.2/tests/test_phase12_1_pycforge_theme.py +0 -253
  680. pycforge-1.0.2/tests/test_phase12_2_components.py +0 -247
  681. pycforge-1.0.2/tests/test_phase12_2_metadata.py +0 -252
  682. pycforge-1.0.2/tests/test_phase12_2_qt.py +0 -273
  683. pycforge-1.0.2/tests/test_phase13_contracts.py +0 -210
  684. pycforge-1.0.2/tests/test_phase14_numeric_contracts.py +0 -159
  685. pycforge-1.0.2/tests/test_phase14b_conditional_contracts.py +0 -235
  686. pycforge-1.0.2/tests/test_phase14c_keyword_contracts.py +0 -253
  687. pycforge-1.0.2/tests/test_phase14d_keyword_only_contracts.py +0 -486
  688. pycforge-1.0.2/tests/test_phase15a_metadata.py +0 -253
  689. pycforge-1.0.2/tests/test_phase15b_action_integration.py +0 -202
  690. pycforge-1.0.2/tests/test_phase15b_visual_foundation.py +0 -315
  691. pycforge-1.0.2/tests/test_phase15c_action_contract.py +0 -423
  692. pycforge-1.0.2/tests/test_phase15c_visual_system.py +0 -245
  693. pycforge-1.0.2/tests/test_phase7.py +0 -72
  694. pycforge-1.0.2/tests/test_qt_file_dialogs.py +0 -543
  695. pycforge-1.0.2/tests/test_release_1_0_2_presentation.py +0 -120
  696. pycforge-1.0.2/tests/test_release_contract_0_16_3.py +0 -283
  697. pycforge-1.0.2/tests/test_set_conversion_1_0_1.py +0 -249
  698. pycforge-1.0.2/tests/test_steel_theme.py +0 -132
  699. pycforge-1.0.2/tests/test_typing_ui_stability_qt.py +0 -540
  700. pycforge-1.0.2/tests/test_ui_continuity_1_0_1.py +0 -296
  701. pycforge-1.0.2/tests/test_ui_review_corrections_1_0_1.py +0 -242
  702. pycforge-1.0.2/tests/test_validate_checkpoint_e.py +0 -319
  703. pycforge-1.0.2/tests/test_validate_phase15b.py +0 -479
  704. pycforge-1.0.2/tests/test_validate_phase15c.py +0 -526
  705. pycforge-1.0.2/tests/test_validate_phase16.py +0 -349
  706. pycforge-1.0.2/tests/test_validate_pycforge_workspace_0_12_2.py +0 -179
  707. pycforge-1.0.2/tests/test_windows_ui_scale_and_identity_1_0_1.py +0 -229
  708. pycforge-1.0.2/tools/smoke_pycforge_workspace_0_12_2.py +0 -939
  709. pycforge-1.0.2/tools/validate_phase16.py +0 -1375
  710. pycforge-1.0.2/tools/verify_public_distribution.py +0 -559
  711. {pycforge-1.0.2 → pycforge-1.0.5}/CONVERSION_ROADMAP.md +0 -0
  712. {pycforge-1.0.2 → pycforge-1.0.5}/EXPERT_REVIEW_1.0.1.md +0 -0
  713. {pycforge-1.0.2 → pycforge-1.0.5}/HELP.md +0 -0
  714. {pycforge-1.0.2 → pycforge-1.0.5}/LICENSE +0 -0
  715. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Checkpoint_E_v0_14_4_Project_Handoff.txt +0 -0
  716. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_10_v0_10_0_Project_Handoff.txt +0 -0
  717. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_11_v0_11_0_Project_Handoff.txt +0 -0
  718. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_12_v0_12_0_Project_Handoff.txt +0 -0
  719. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_13_v0_13_0_Project_Handoff.txt +0 -0
  720. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_14A_v0_14_0_Project_Handoff.txt +0 -0
  721. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_14B_v0_14_1_Project_Handoff.txt +0 -0
  722. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_14C_v0_14_2_Project_Handoff.txt +0 -0
  723. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_14D_v0_14_3_Project_Handoff.txt +0 -0
  724. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_15A_v0_15_0_Project_Handoff.txt +0 -0
  725. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_15B_v0_15_1_Project_Handoff.txt +0 -0
  726. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_15C_v0_15_2_Project_Handoff.txt +0 -0
  727. {pycforge-1.0.2 → pycforge-1.0.5}/PyCForge_Phase_9_v0_9_0_Project_Handoff.txt +0 -0
  728. {pycforge-1.0.2 → pycforge-1.0.5}/ROADMAP.md +0 -0
  729. {pycforge-1.0.2 → pycforge-1.0.5}/THIRD_PARTY_NOTICES.md +0 -0
  730. {pycforge-1.0.2 → pycforge-1.0.5}/TING_INTEGRATION_REVIEW.md +0 -0
  731. {pycforge-1.0.2 → pycforge-1.0.5}/docs/PyCForge_v0_15_2_Conversion_Examples_Reference_Edition.pdf +0 -0
  732. {pycforge-1.0.2 → pycforge-1.0.5}/docs/PyCForge_v0_16_0_Programmers_Conversion_Guide.pdf +0 -0
  733. {pycforge-1.0.2 → pycforge-1.0.5}/docs/images/pycforge-help-0.16.3.png +0 -0
  734. {pycforge-1.0.2 → pycforge-1.0.5}/docs/images/pycforge-ting-agents-1.0.2.png +0 -0
  735. {pycforge-1.0.2 → pycforge-1.0.5}/docs/images/pycforge-workspace-0.15.2.png +0 -0
  736. {pycforge-1.0.2 → pycforge-1.0.5}/docs/images/pycforge-workspace-0.16.1.png +0 -0
  737. {pycforge-1.0.2 → pycforge-1.0.5}/docs/images/pycforge-workspace-0.16.3.png +0 -0
  738. {pycforge-1.0.2 → pycforge-1.0.5}/docs/images/pycforge-workspace-1.0.2.png +0 -0
  739. {pycforge-1.0.2 → pycforge-1.0.5}/docs/pycforge_workspace_quality_addendum.md +0 -0
  740. {pycforge-1.0.2 → pycforge-1.0.5}/docs/python_to_c_converter_architecture_revision_3_1.txt +0 -0
  741. {pycforge-1.0.2 → pycforge-1.0.5}/docs/python_to_c_converter_architecture_revision_3_2_addendum.md +0 -0
  742. {pycforge-1.0.2 → pycforge-1.0.5}/docs/python_to_c_converter_architecture_revision_3_3_workspace_addendum.md +0 -0
  743. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/checkpoint_e/debt_delta.json +0 -0
  744. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/checkpoint_e/entry_report.json +0 -0
  745. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/checkpoint_e/full_subset_validation.json +0 -0
  746. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/checkpoint_e/release_report.json +0 -0
  747. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/checkpoint_e/workspace_debt.json +0 -0
  748. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/architecture_report.json +0 -0
  749. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/artifact_manifest.json +0 -0
  750. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/debt_delta.json +0 -0
  751. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/decision_trace_sample.json +0 -0
  752. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/determinism_report.json +0 -0
  753. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/golden_manifest.json +0 -0
  754. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/resource_report.json +0 -0
  755. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/rule_manifest.json +0 -0
  756. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/semantics_report.json +0 -0
  757. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/test_summary.json +0 -0
  758. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_02/transition_packet.json +0 -0
  759. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_04/golden_manifest.json +0 -0
  760. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/architecture_report.json +0 -0
  761. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/conversion_debt.json +0 -0
  762. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/decision_trace_sample.json +0 -0
  763. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/determinism_report.json +0 -0
  764. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/first_slice_report.json +0 -0
  765. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/golden_manifest.json +0 -0
  766. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/rule_report.json +0 -0
  767. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/test_summary.json +0 -0
  768. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_06/transition_report.json +0 -0
  769. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_07/architecture_report.json +0 -0
  770. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_07/determinism_report.json +0 -0
  771. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_07/rule_report.json +0 -0
  772. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_07/transition_report.json +0 -0
  773. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_08/architecture_report.json +0 -0
  774. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_08/checkpoint_c.json +0 -0
  775. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_08/determinism_report.json +0 -0
  776. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_08/observer_cancellation_report.json +0 -0
  777. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_08/rule_report.json +0 -0
  778. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_08/test_summary.json +0 -0
  779. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_08/transition_report.json +0 -0
  780. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/architecture_report.json +0 -0
  781. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/conversion_debt.json +0 -0
  782. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/determinism_report.json +0 -0
  783. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/mapping_report.json +0 -0
  784. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/observer_cancellation_resource_report.json +0 -0
  785. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/phase9_report.json +0 -0
  786. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/python_package_report.json +0 -0
  787. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/review_report.json +0 -0
  788. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/rule_report.json +0 -0
  789. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/semantic_gate_report.json +0 -0
  790. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/test_summary.json +0 -0
  791. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_09/transition_report.json +0 -0
  792. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/architecture_report.json +0 -0
  793. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/determinism_report.json +0 -0
  794. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/helper_registry_report.json +0 -0
  795. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/opening_checkpoint_report.json +0 -0
  796. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/opening_package_report.json +0 -0
  797. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/opening_test_summary.json +0 -0
  798. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/package_report.json +0 -0
  799. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/phase10_report.json +0 -0
  800. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/progress_observer_report.json +0 -0
  801. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/qt_widget_smoke_report.json +0 -0
  802. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/rule_report.json +0 -0
  803. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/semantic_preservation_report.json +0 -0
  804. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/test_summary.json +0 -0
  805. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_10/transition_report.json +0 -0
  806. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/architecture_report.json +0 -0
  807. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/container_report.json +0 -0
  808. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/determinism_report.json +0 -0
  809. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/helper_registry_report.json +0 -0
  810. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/package_report.json +0 -0
  811. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/phase11_report.json +0 -0
  812. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/rule_report.json +0 -0
  813. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/schema_report.json +0 -0
  814. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/semantic_preservation_report.json +0 -0
  815. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/test_summary.json +0 -0
  816. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_11/transition_report.json +0 -0
  817. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/architecture_report.json +0 -0
  818. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/container_report.json +0 -0
  819. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/determinism_report.json +0 -0
  820. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/helper_registry_report.json +0 -0
  821. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/module_report.json +0 -0
  822. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/package_report.json +0 -0
  823. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/phase12_report.json +0 -0
  824. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/rule_report.json +0 -0
  825. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/schema_report.json +0 -0
  826. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/semantic_preservation_report.json +0 -0
  827. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/source_boundary_report.json +0 -0
  828. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/test_summary.json +0 -0
  829. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_12/transition_report.json +0 -0
  830. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_13/release_report.json +0 -0
  831. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14/conversion_debt.json +0 -0
  832. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14/entry_report.json +0 -0
  833. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14/release_report.json +0 -0
  834. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14b/conversion_debt.json +0 -0
  835. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14b/entry_report.json +0 -0
  836. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14b/release_report.json +0 -0
  837. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14c/conversion_debt.json +0 -0
  838. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14c/entry_report.json +0 -0
  839. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14c/release_report.json +0 -0
  840. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14d/conversion_debt.json +0 -0
  841. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14d/entry_report.json +0 -0
  842. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_14d/release_report.json +0 -0
  843. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15a/performance_evidence.json +0 -0
  844. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15a/release_report.json +0 -0
  845. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15a/validation_report.json +0 -0
  846. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15b/action_registry_evidence.json +0 -0
  847. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15b/validation_report.json +0 -0
  848. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15b/visual_system_evidence.json +0 -0
  849. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15c/action_registry_evidence.json +0 -0
  850. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15c/feature_evidence.json +0 -0
  851. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15c/performance_evidence.json +0 -0
  852. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/phase_15c/validation_report.json +0 -0
  853. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_1/gate_evidence.md +0 -0
  854. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_1/release_report.json +0 -0
  855. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_2/manual_review.md +0 -0
  856. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_1.json +0 -0
  857. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_1.png +0 -0
  858. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_2.json +0 -0
  859. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_2/qt_widget_smoke_scale_2.png +0 -0
  860. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/pycforge_workspace_0_12_2/release_report.json +0 -0
  861. {pycforge-1.0.2 → pycforge-1.0.5}/evidence/ting_agents/compiler_custody_attestation.json +0 -0
  862. {pycforge-1.0.2 → pycforge-1.0.5}/fixtures/c_ir/essential_golden.c +0 -0
  863. {pycforge-1.0.2 → pycforge-1.0.5}/fixtures/first_milestone/add.py +0 -0
  864. {pycforge-1.0.2 → pycforge-1.0.5}/fixtures/first_milestone/expected.c +0 -0
  865. {pycforge-1.0.2 → pycforge-1.0.5}/fixtures/first_milestone/expected_ruleplans.json +0 -0
  866. {pycforge-1.0.2 → pycforge-1.0.5}/fixtures/support_templates/pycf_i64_floor_div_v1.c +0 -0
  867. {pycforge-1.0.2 → pycforge-1.0.5}/fixtures/support_templates/pycf_i64_floor_mod_v1.c +0 -0
  868. {pycforge-1.0.2 → pycforge-1.0.5}/licenses/TING_REASONER.txt +0 -0
  869. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/__init__.py +0 -0
  870. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/__main__.py +0 -0
  871. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/__init__.py +0 -0
  872. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/__init__.py +0 -0
  873. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/engine.py +0 -0
  874. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/errors.py +0 -0
  875. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/ir.py +0 -0
  876. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/model.py +0 -0
  877. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/nd.py +0 -0
  878. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/py.typed +0 -0
  879. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/results.py +0 -0
  880. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/store.py +0 -0
  881. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner/transactions.py +0 -0
  882. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/_vendor/ting_reasoner_provenance.json +0 -0
  883. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/__init__.py +0 -0
  884. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/analysis/__init__.py +0 -0
  885. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/analysis/functions.py +0 -0
  886. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/analysis/model.py +0 -0
  887. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/analysis/planning.py +0 -0
  888. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/analysis/stage.py +0 -0
  889. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/analysis/symbols.py +0 -0
  890. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/analysis/validation.py +0 -0
  891. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/c_output/__init__.py +0 -0
  892. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/c_output/conformance.py +0 -0
  893. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/c_output/renderer.py +0 -0
  894. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/conditional_regions/__init__.py +0 -0
  895. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/conditional_regions/analysis.py +0 -0
  896. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/conditional_regions/lowering.py +0 -0
  897. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/conditional_regions/model.py +0 -0
  898. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/conditional_regions/validation.py +0 -0
  899. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/containers/__init__.py +0 -0
  900. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/containers/analysis.py +0 -0
  901. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/containers/lowering.py +0 -0
  902. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/containers/model.py +0 -0
  903. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/contracts/__init__.py +0 -0
  904. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/contracts/configuration.py +0 -0
  905. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/contracts/identifiers.py +0 -0
  906. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/contracts/versions.py +0 -0
  907. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/__init__.py +0 -0
  908. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/artifact_io.py +0 -0
  909. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/cancellation.py +0 -0
  910. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/canonicalization.py +0 -0
  911. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/context.py +0 -0
  912. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/diagnostics.py +0 -0
  913. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/enums.py +0 -0
  914. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/fingerprint.py +0 -0
  915. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/pipeline.py +0 -0
  916. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/progress.py +0 -0
  917. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/request.py +0 -0
  918. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/resource_policy.py +0 -0
  919. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/result.py +0 -0
  920. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/serialization.py +0 -0
  921. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/stage.py +0 -0
  922. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/stage_artifact.py +0 -0
  923. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/core/stage_outcome.py +0 -0
  924. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/decision_trace/__init__.py +0 -0
  925. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/decision_trace/recorder.py +0 -0
  926. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/facade.py +0 -0
  927. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/file_io/__init__.py +0 -0
  928. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/file_io/analysis.py +0 -0
  929. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/file_io/conformance.py +0 -0
  930. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/file_io/model.py +0 -0
  931. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/file_io/runtime.py +0 -0
  932. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/file_io/validation.py +0 -0
  933. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/frontend/__init__.py +0 -0
  934. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/frontend/normalizer.py +0 -0
  935. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/frontend/parser.py +0 -0
  936. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/frontend/source_document.py +0 -0
  937. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/frontend/stages.py +0 -0
  938. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/frontend/validation.py +0 -0
  939. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/io/__init__.py +0 -0
  940. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/io/atomic_writer.py +0 -0
  941. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/__init__.py +0 -0
  942. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/c_ir/__init__.py +0 -0
  943. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/c_ir/builder.py +0 -0
  944. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/c_ir/model.py +0 -0
  945. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/c_ir/serialization.py +0 -0
  946. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/c_ir/validation.py +0 -0
  947. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/python_ir/__init__.py +0 -0
  948. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/ir/python_ir/nodes.py +0 -0
  949. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_calls/__init__.py +0 -0
  950. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_calls/analysis.py +0 -0
  951. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_calls/lowering.py +0 -0
  952. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_calls/model.py +0 -0
  953. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_calls/validation.py +0 -0
  954. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_only_calls/__init__.py +0 -0
  955. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_only_calls/analysis.py +0 -0
  956. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_only_calls/lowering.py +0 -0
  957. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_only_calls/model.py +0 -0
  958. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/keyword_only_calls/validation.py +0 -0
  959. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/loop_completion/__init__.py +0 -0
  960. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/loop_completion/analysis.py +0 -0
  961. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/loop_completion/lowering.py +0 -0
  962. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/loop_completion/model.py +0 -0
  963. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/loop_completion/validation.py +0 -0
  964. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/lowering.py +0 -0
  965. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/modules/__init__.py +0 -0
  966. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/modules/analysis.py +0 -0
  967. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/modules/lowering.py +0 -0
  968. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/modules/model.py +0 -0
  969. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/modules/stage.py +0 -0
  970. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/numeric_semantics/__init__.py +0 -0
  971. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/numeric_semantics/analysis.py +0 -0
  972. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/numeric_semantics/lowering.py +0 -0
  973. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/numeric_semantics/model.py +0 -0
  974. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/records/__init__.py +0 -0
  975. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/records/analysis.py +0 -0
  976. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/records/lowering.py +0 -0
  977. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/records/model.py +0 -0
  978. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/rules/__init__.py +0 -0
  979. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/scope_lifetimes/__init__.py +0 -0
  980. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/scope_lifetimes/analysis.py +0 -0
  981. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/scope_lifetimes/model.py +0 -0
  982. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/scope_lifetimes/validation.py +0 -0
  983. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/support_templates/__init__.py +0 -0
  984. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/support_templates/assembly.py +0 -0
  985. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/support_templates/factories.py +0 -0
  986. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/support_templates/model.py +0 -0
  987. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/support_templates/registry.py +0 -0
  988. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/telemetry/__init__.py +0 -0
  989. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/converter/telemetry/sink.py +0 -0
  990. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/__main__.py +0 -0
  991. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_forgelens_builder.py +0 -0
  992. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_forgelens_model.py +0 -0
  993. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_worker_event_codec.py +0 -0
  994. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_worker_protocol_json.py +0 -0
  995. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_worker_protocol_types.py +0 -0
  996. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_worker_request_codec.py +0 -0
  997. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_worker_request_data.py +0 -0
  998. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/_worker_result_data.py +0 -0
  999. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/action_contract.py +0 -0
  1000. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/action_validation.py +0 -0
  1001. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/command_palette.py +0 -0
  1002. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/controller.py +0 -0
  1003. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/controller_conversion.py +0 -0
  1004. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/controller_io.py +0 -0
  1005. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/editor_lexical.py +0 -0
  1006. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/editor_markers.py +0 -0
  1007. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/editor_sidebars.py +0 -0
  1008. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/editor_syntax.py +0 -0
  1009. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/forgelens.py +0 -0
  1010. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/io_service.py +0 -0
  1011. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/model.py +0 -0
  1012. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/positions.py +0 -0
  1013. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/process_worker.py +0 -0
  1014. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt.py +0 -0
  1015. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_close.py +0 -0
  1016. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_command_palette.py +0 -0
  1017. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_contract.py +0 -0
  1018. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_documents.py +0 -0
  1019. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_editor_buffers.py +0 -0
  1020. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_editor_surfaces.py +0 -0
  1021. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_forgelens.py +0 -0
  1022. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_menus.py +0 -0
  1023. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_open_queue.py +0 -0
  1024. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_screen_geometry.py +0 -0
  1025. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_session.py +0 -0
  1026. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_session_state.py +0 -0
  1027. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_shell_interactions.py +0 -0
  1028. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_state.py +0 -0
  1029. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_text_settings.py +0 -0
  1030. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_ting_actions.py +0 -0
  1031. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_window_chrome.py +0 -0
  1032. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_window_resize.py +0 -0
  1033. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_workspace_features.py +0 -0
  1034. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_workspace_navigation.py +0 -0
  1035. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_workspace_observers.py +0 -0
  1036. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/qt_workspace_panels.py +0 -0
  1037. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/calls-modules.html +0 -0
  1038. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/cli-api.html +0 -0
  1039. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/containers-records.html +0 -0
  1040. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/control-flow.html +0 -0
  1041. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/diagnostics.html +0 -0
  1042. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/file-io.html +0 -0
  1043. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/help-authoring.html +0 -0
  1044. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/safety-limits.html +0 -0
  1045. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/resources/help/types-expressions.html +0 -0
  1046. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/revisions.py +0 -0
  1047. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/search_service.py +0 -0
  1048. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/session_history.py +0 -0
  1049. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/source_editing.py +0 -0
  1050. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/source_preview.py +0 -0
  1051. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/source_structure.py +0 -0
  1052. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/source_structure_async.py +0 -0
  1053. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/supervisor.py +0 -0
  1054. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/theme_workspace_stylesheet.py +0 -0
  1055. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/ting_feedback.py +0 -0
  1056. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/worker_protocol.py +0 -0
  1057. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/workspace_search.py +0 -0
  1058. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ide/workspace_session.py +0 -0
  1059. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/laboratory/__init__.py +0 -0
  1060. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/laboratory/audits.py +0 -0
  1061. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/laboratory/checkpoint_e.py +0 -0
  1062. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/laboratory/cli.py +0 -0
  1063. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/laboratory/exit_codes.py +0 -0
  1064. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/laboratory/keyword_audit.py +0 -0
  1065. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/laboratory/keyword_only_audit.py +0 -0
  1066. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/__init__.py +0 -0
  1067. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/coordinator.py +0 -0
  1068. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/errors.py +0 -0
  1069. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/model.py +0 -0
  1070. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/registry.py +0 -0
  1071. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/capability.ting +0 -0
  1072. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/capability.tingspec.json +0 -0
  1073. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/lowering.ting +0 -0
  1074. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/lowering.tingspec.json +0 -0
  1075. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/ownership.ting +0 -0
  1076. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/ownership.tingspec.json +0 -0
  1077. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/registry.json +0 -0
  1078. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/semantics.ting +0 -0
  1079. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/semantics.tingspec.json +0 -0
  1080. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/syntax.ting +0 -0
  1081. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/syntax.tingspec.json +0 -0
  1082. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/verification.ting +0 -0
  1083. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge/ting_agents/rulesets/verification.tingspec.json +0 -0
  1084. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge.egg-info/dependency_links.txt +0 -0
  1085. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge.egg-info/entry_points.txt +0 -0
  1086. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge.egg-info/requires.txt +0 -0
  1087. {pycforge-1.0.2 → pycforge-1.0.5}/pycforge.egg-info/top_level.txt +0 -0
  1088. {pycforge-1.0.2 → pycforge-1.0.5}/schemas/decision_trace.schema.json +0 -0
  1089. {pycforge-1.0.2 → pycforge-1.0.5}/schemas/telemetry.schema.json +0 -0
  1090. {pycforge-1.0.2 → pycforge-1.0.5}/setup.cfg +0 -0
  1091. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/analysis_and_planning.md +0 -0
  1092. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/approximation_policy.md +0 -0
  1093. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/bounded_containers.md +0 -0
  1094. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/c_ir_schema.md +0 -0
  1095. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/c_output_style.md +0 -0
  1096. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/c_renderer_contract.md +0 -0
  1097. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/configuration.md +0 -0
  1098. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/conversion_semantics.md +0 -0
  1099. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/diagnostics.md +0 -0
  1100. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/fact_table_schema.md +0 -0
  1101. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/feature_matrix.json +0 -0
  1102. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/generated_c_conformance.md +0 -0
  1103. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/module_bundles.md +0 -0
  1104. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase14a_bounded_integer_divmod.md +0 -0
  1105. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase14b_conditional_temporary_regions.md +0 -0
  1106. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase14c_direct_keyword_calls.md +0 -0
  1107. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase14d_required_keyword_only_calls.md +0 -0
  1108. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase6_first_complete_slice.md +0 -0
  1109. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase7_workspace.md +0 -0
  1110. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase8_control_flow.md +0 -0
  1111. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/phase9_functions_calls.md +0 -0
  1112. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/product_boundary.md +0 -0
  1113. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/pycforge_workspace.md +0 -0
  1114. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/pycforge_workspace_legacy_0_1.md +0 -0
  1115. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/python_ir_schema.md +0 -0
  1116. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/representation_ownership_lifetime.md +0 -0
  1117. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/resource_cancellation_save.md +0 -0
  1118. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/result_and_fingerprints.md +0 -0
  1119. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/rule_plan_schema.md +0 -0
  1120. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/source_bundle.md +0 -0
  1121. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/source_frontend.md +0 -0
  1122. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/static_records.md +0 -0
  1123. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/support_templates.md +0 -0
  1124. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/supported_python.md +0 -0
  1125. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/target_c_source_contract.md +0 -0
  1126. {pycforge-1.0.2 → pycforge-1.0.5}/specifications/ting_agent_architecture.md +0 -0
  1127. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_checkpoint_e_audits.py +0 -0
  1128. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_checkpoint_e_feature_matrix.py +0 -0
  1129. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_checkpoint_e_predecessor_equivalence.py +0 -0
  1130. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_checkpoint_e_release_packaging.py +0 -0
  1131. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_editor_behavior_qt.py +0 -0
  1132. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_final_windows_acceptance_1_0_1.py +0 -0
  1133. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_forgelens.py +0 -0
  1134. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_forgelens_controller.py +0 -0
  1135. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_frontend_eof_boundaries.py +0 -0
  1136. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase0.py +0 -0
  1137. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase1.py +0 -0
  1138. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase10.py +0 -0
  1139. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase11.py +0 -0
  1140. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase12.py +0 -0
  1141. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase12_1_editor.py +0 -0
  1142. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase12_2_controller.py +0 -0
  1143. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase13_audits.py +0 -0
  1144. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase13_c_ir.py +0 -0
  1145. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase13_end_to_end.py +0 -0
  1146. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase13_record_analysis.py +0 -0
  1147. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase13_record_lowering.py +0 -0
  1148. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase13_record_validation.py +0 -0
  1149. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14_numeric_end_to_end.py +0 -0
  1150. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14_numeric_hardening.py +0 -0
  1151. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14b_audits.py +0 -0
  1152. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14b_conditional_analysis.py +0 -0
  1153. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14b_conditional_hardening.py +0 -0
  1154. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14b_conditional_lowering.py +0 -0
  1155. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14c_cumulative_eligibility.py +0 -0
  1156. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14c_keyword_analysis.py +0 -0
  1157. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14c_keyword_audits.py +0 -0
  1158. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14c_keyword_hardening.py +0 -0
  1159. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14c_keyword_lowering.py +0 -0
  1160. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14d_cumulative_eligibility.py +0 -0
  1161. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14d_keyword_only_analysis.py +0 -0
  1162. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14d_keyword_only_hardening.py +0 -0
  1163. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase14d_keyword_only_lowering.py +0 -0
  1164. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_async_search.py +0 -0
  1165. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_controller.py +0 -0
  1166. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_editor_decomposition.py +0 -0
  1167. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_editor_large_file.py +0 -0
  1168. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_io_service.py +0 -0
  1169. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_position_indexes.py +0 -0
  1170. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_qt_decomposition.py +0 -0
  1171. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_release_packaging.py +0 -0
  1172. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_revisions.py +0 -0
  1173. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_stress.py +0 -0
  1174. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_supervisor.py +0 -0
  1175. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15a_worker_protocol.py +0 -0
  1176. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15b_action_foundation.py +0 -0
  1177. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15b_release_contract.py +0 -0
  1178. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15b_release_packaging.py +0 -0
  1179. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15b_visual_integration.py +0 -0
  1180. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_command_palette.py +0 -0
  1181. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_qt_command_contract.py +0 -0
  1182. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_qt_panels_contract.py +0 -0
  1183. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_qt_position_reverse.py +0 -0
  1184. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_qt_workspace_integration.py +0 -0
  1185. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_release_contract.py +0 -0
  1186. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_release_packaging.py +0 -0
  1187. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_session_history.py +0 -0
  1188. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_source_editing.py +0 -0
  1189. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_source_structure.py +0 -0
  1190. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_workspace_search.py +0 -0
  1191. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase15c_workspace_session.py +0 -0
  1192. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_c_ir_validation_hardening.py +0 -0
  1193. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_file_io_analysis.py +0 -0
  1194. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_file_io_end_to_end.py +0 -0
  1195. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_file_io_payload_validation.py +0 -0
  1196. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_file_io_registry.py +0 -0
  1197. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_file_io_rejections.py +0 -0
  1198. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_file_io_runtime.py +0 -0
  1199. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_file_io_validation.py +0 -0
  1200. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_loop_analysis.py +0 -0
  1201. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_loop_end_to_end.py +0 -0
  1202. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_loop_lowering.py +0 -0
  1203. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_loop_payload_validation.py +0 -0
  1204. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_loop_resources.py +0 -0
  1205. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_loop_validation.py +0 -0
  1206. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_scope_analysis.py +0 -0
  1207. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_scope_boundaries.py +0 -0
  1208. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_scope_payload_validation.py +0 -0
  1209. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase16_scope_validation.py +0 -0
  1210. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase2.py +0 -0
  1211. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase3.py +0 -0
  1212. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase4.py +0 -0
  1213. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase5.py +0 -0
  1214. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase6.py +0 -0
  1215. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase8.py +0 -0
  1216. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_phase9.py +0 -0
  1217. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_programmers_guide.py +0 -0
  1218. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_public_distribution.py +0 -0
  1219. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_pycforge_qt_integration.py +0 -0
  1220. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_pycforge_workspace.py +0 -0
  1221. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_qt_forgelens.py +0 -0
  1222. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_qt_open_queue.py +0 -0
  1223. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_review_hardening.py +0 -0
  1224. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_smoke_pycforge_workspace_0_12_2.py +0 -0
  1225. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_source_preview.py +0 -0
  1226. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_startup_progress_0_16_3.py +0 -0
  1227. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_ting_agents.py +0 -0
  1228. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_ui_lifecycle_0_16_3.py +0 -0
  1229. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_validate_phase13.py +0 -0
  1230. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_validate_phase14.py +0 -0
  1231. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_validate_phase14b.py +0 -0
  1232. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_validate_phase14c.py +0 -0
  1233. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_validate_phase14d.py +0 -0
  1234. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_validate_phase15a.py +0 -0
  1235. {pycforge-1.0.2 → pycforge-1.0.5}/tests/test_validate_workspace_usability_0_15_3.py +0 -0
  1236. {pycforge-1.0.2 → pycforge-1.0.5}/tools/_phase15a_runtime_validation.py +0 -0
  1237. {pycforge-1.0.2 → pycforge-1.0.5}/tools/_phase15b_release_contract.py +0 -0
  1238. {pycforge-1.0.2 → pycforge-1.0.5}/tools/_phase15c_release_contract.py +0 -0
  1239. {pycforge-1.0.2 → pycforge-1.0.5}/tools/build_checkpoint_e_release.py +0 -0
  1240. {pycforge-1.0.2 → pycforge-1.0.5}/tools/build_phase15a_release.py +0 -0
  1241. {pycforge-1.0.2 → pycforge-1.0.5}/tools/build_phase15b_release.py +0 -0
  1242. {pycforge-1.0.2 → pycforge-1.0.5}/tools/build_phase15c_release.py +0 -0
  1243. {pycforge-1.0.2 → pycforge-1.0.5}/tools/build_programmers_guide.py +0 -0
  1244. {pycforge-1.0.2 → pycforge-1.0.5}/tools/checkpoint_e_predecessor_equivalence.py +0 -0
  1245. {pycforge-1.0.2 → pycforge-1.0.5}/tools/collect_phase11_evidence.py +0 -0
  1246. {pycforge-1.0.2 → pycforge-1.0.5}/tools/collect_phase12_evidence.py +0 -0
  1247. {pycforge-1.0.2 → pycforge-1.0.5}/tools/normalize_sdist.py +0 -0
  1248. {pycforge-1.0.2 → pycforge-1.0.5}/tools/smoke_phase10_qt.py +0 -0
  1249. {pycforge-1.0.2 → pycforge-1.0.5}/tools/smoke_phase11_qt.py +0 -0
  1250. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_checkpoint_e.py +0 -0
  1251. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase0.py +0 -0
  1252. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase1.py +0 -0
  1253. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase10.py +0 -0
  1254. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase10_opening.py +0 -0
  1255. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase11.py +0 -0
  1256. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase12.py +0 -0
  1257. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase13.py +0 -0
  1258. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase14.py +0 -0
  1259. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase14b.py +0 -0
  1260. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase14c.py +0 -0
  1261. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase14d.py +0 -0
  1262. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase15a.py +0 -0
  1263. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase15b.py +0 -0
  1264. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase15c.py +0 -0
  1265. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase2.py +0 -0
  1266. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase3.py +0 -0
  1267. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase4.py +0 -0
  1268. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase5.py +0 -0
  1269. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase6.py +0 -0
  1270. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase7.py +0 -0
  1271. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase8.py +0 -0
  1272. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_phase9.py +0 -0
  1273. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_pycforge_workspace_0_12_1.py +0 -0
  1274. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_pycforge_workspace_0_12_2.py +0 -0
  1275. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_ting_agents.py +0 -0
  1276. {pycforge-1.0.2 → pycforge-1.0.5}/tools/validate_workspace_usability_0_15_3.py +0 -0
  1277. {pycforge-1.0.2 → pycforge-1.0.5}/tools/verify_pypi_readme.py +0 -0
  1278. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/architecture_and_workspace_decision.md +0 -0
  1279. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/breadth_and_change_budgets.md +0 -0
  1280. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/entry_criteria.md +0 -0
  1281. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/feature_boundaries.md +0 -0
  1282. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/feature_matrix_reconciliation.md +0 -0
  1283. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/gate_evidence.md +0 -0
  1284. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/manifest.json +0 -0
  1285. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/opening_evidence.md +0 -0
  1286. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/performance_budgets.md +0 -0
  1287. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/release_fingerprint.json +0 -0
  1288. {pycforge-1.0.2 → pycforge-1.0.5}/transition/checkpoint_e/rollback_conditions.md +0 -0
  1289. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_0/baseline_fingerprint.json +0 -0
  1290. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_0/first_milestone_contract.md +0 -0
  1291. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_0/manifest.json +0 -0
  1292. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_0/non_goals_by_phase.md +0 -0
  1293. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_1/baseline_fingerprint.json +0 -0
  1294. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_1/empty_pipeline_invariants.md +0 -0
  1295. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_1/facade_contract.md +0 -0
  1296. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_1/manifest.json +0 -0
  1297. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/baseline_fingerprint.json +0 -0
  1298. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/entry_criteria.md +0 -0
  1299. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/entry_gate.md +0 -0
  1300. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/gate_evidence.md +0 -0
  1301. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/helper_feasibility_decisions.md +0 -0
  1302. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/manifest.json +0 -0
  1303. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/opening_checkpoint_fingerprint.json +0 -0
  1304. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/opening_checkpoint_manifest.json +0 -0
  1305. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_10/rollback_conditions.md +0 -0
  1306. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_11/baseline_fingerprint.json +0 -0
  1307. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_11/container_representation_decisions.md +0 -0
  1308. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_11/entry_criteria.md +0 -0
  1309. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_11/gate_evidence.md +0 -0
  1310. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_11/manifest.json +0 -0
  1311. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_11/rollback_conditions.md +0 -0
  1312. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_12/baseline_fingerprint.json +0 -0
  1313. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_12/entry_criteria.md +0 -0
  1314. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_12/gate_evidence.md +0 -0
  1315. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_12/manifest.json +0 -0
  1316. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_12/module_bundle_decisions.md +0 -0
  1317. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_12/rollback_conditions.md +0 -0
  1318. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/baseline_fingerprint.json +0 -0
  1319. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/candidate_reseed.md +0 -0
  1320. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/entry_criteria.md +0 -0
  1321. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/gate_evidence.md +0 -0
  1322. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/manifest.json +0 -0
  1323. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/record_representation_decisions.md +0 -0
  1324. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/release_fingerprint.json +0 -0
  1325. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_13/rollback_conditions.md +0 -0
  1326. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/baseline_fingerprint.json +0 -0
  1327. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/breadth_and_change_budgets.md +0 -0
  1328. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/entry_criteria.md +0 -0
  1329. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/gate_evidence.md +0 -0
  1330. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/integer_divmod_decision.md +0 -0
  1331. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/manifest.json +0 -0
  1332. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/opening_evidence.md +0 -0
  1333. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/release_fingerprint.json +0 -0
  1334. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14/rollback_conditions.md +0 -0
  1335. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/baseline_fingerprint.json +0 -0
  1336. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/breadth_and_change_budgets.md +0 -0
  1337. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/conditional_temporary_regions_decision.md +0 -0
  1338. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/entry_criteria.md +0 -0
  1339. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/gate_evidence.md +0 -0
  1340. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/manifest.json +0 -0
  1341. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/opening_evidence.md +0 -0
  1342. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/release_fingerprint.json +0 -0
  1343. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14b/rollback_conditions.md +0 -0
  1344. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/baseline_fingerprint.json +0 -0
  1345. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/breadth_and_change_budgets.md +0 -0
  1346. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/direct_keyword_calls_decision.md +0 -0
  1347. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/entry_criteria.md +0 -0
  1348. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/gate_evidence.md +0 -0
  1349. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/manifest.json +0 -0
  1350. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/opening_evidence.md +0 -0
  1351. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/release_fingerprint.json +0 -0
  1352. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14c/rollback_conditions.md +0 -0
  1353. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/baseline_fingerprint.json +0 -0
  1354. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/breadth_and_change_budgets.md +0 -0
  1355. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/entry_criteria.md +0 -0
  1356. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/gate_evidence.md +0 -0
  1357. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/manifest.json +0 -0
  1358. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/opening_evidence.md +0 -0
  1359. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/release_fingerprint.json +0 -0
  1360. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/required_keyword_only_calls_decision.md +0 -0
  1361. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_14d/rollback_conditions.md +0 -0
  1362. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15a/entry_criteria.md +0 -0
  1363. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15a/gate_evidence.md +0 -0
  1364. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15a/manifest.json +0 -0
  1365. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15a/release_fingerprint.json +0 -0
  1366. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15a/responsiveness_and_isolation_decision.md +0 -0
  1367. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15a/rollback_conditions.md +0 -0
  1368. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15b/application_shell_decision.md +0 -0
  1369. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15b/entry_criteria.md +0 -0
  1370. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15b/gate_evidence.md +0 -0
  1371. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15b/manifest.json +0 -0
  1372. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15b/release_fingerprint.json +0 -0
  1373. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15b/rollback_conditions.md +0 -0
  1374. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15c/entry_criteria.md +0 -0
  1375. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15c/gate_evidence.md +0 -0
  1376. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15c/manifest.json +0 -0
  1377. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15c/release_fingerprint.json +0 -0
  1378. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15c/rollback_conditions.md +0 -0
  1379. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_15c/workspace_completeness_decision.md +0 -0
  1380. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_2/baseline_fingerprint.json +0 -0
  1381. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_2/checkpoint_a.md +0 -0
  1382. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_2/laboratory_contract.md +0 -0
  1383. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_2/manifest.json +0 -0
  1384. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_3/baseline_fingerprint.json +0 -0
  1385. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_3/gate_evidence.md +0 -0
  1386. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_3/manifest.json +0 -0
  1387. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_4/baseline_fingerprint.json +0 -0
  1388. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_4/gate_evidence.md +0 -0
  1389. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_4/manifest.json +0 -0
  1390. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_5/baseline_fingerprint.json +0 -0
  1391. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_5/entry_criteria.md +0 -0
  1392. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_5/gate_evidence.md +0 -0
  1393. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_5/manifest.json +0 -0
  1394. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_6/baseline_fingerprint.json +0 -0
  1395. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_6/checkpoint_b.md +0 -0
  1396. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_6/entry_criteria.md +0 -0
  1397. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_6/gate_evidence.md +0 -0
  1398. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_6/manifest.json +0 -0
  1399. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_7/baseline_fingerprint.json +0 -0
  1400. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_7/entry_criteria.md +0 -0
  1401. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_7/gate_evidence.md +0 -0
  1402. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_7/manifest.json +0 -0
  1403. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_7/rollback_conditions.md +0 -0
  1404. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_8/baseline_fingerprint.json +0 -0
  1405. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_8/entry_criteria.md +0 -0
  1406. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_8/gate_evidence.md +0 -0
  1407. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_8/manifest.json +0 -0
  1408. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_8/rollback_conditions.md +0 -0
  1409. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_9/baseline_fingerprint.json +0 -0
  1410. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_9/entry_criteria.md +0 -0
  1411. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_9/gate_evidence.md +0 -0
  1412. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_9/manifest.json +0 -0
  1413. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_9/rollback_conditions.md +0 -0
  1414. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_minus_1/feasibility_decisions.md +0 -0
  1415. {pycforge-1.0.2 → pycforge-1.0.5}/transition/phase_minus_1/risk_register.json +0 -0
  1416. {pycforge-1.0.2 → pycforge-1.0.5}/transition/workspace_hardening_0_12_1/README.md +0 -0
  1417. {pycforge-1.0.2 → pycforge-1.0.5}/transition/workspace_hardening_0_12_1/manifest.json +0 -0
  1418. {pycforge-1.0.2 → pycforge-1.0.5}/transition/workspace_hardening_0_12_2/README.md +0 -0
  1419. {pycforge-1.0.2 → pycforge-1.0.5}/transition/workspace_hardening_0_12_2/gate_evidence.md +0 -0
  1420. {pycforge-1.0.2 → pycforge-1.0.5}/transition/workspace_hardening_0_12_2/manifest.json +0 -0
@@ -0,0 +1,895 @@
1
+ # Changelog
2
+
3
+ ## 1.0.5 — Focused IDE refinement
4
+
5
+ Reduced all non-editor UI text by one point while preserving the Python and
6
+ generated-C editors at 14 pt and 12 pt. Added restrained glass depth to controls,
7
+ wider squarer scrollbars, slim illuminated state lines for the generated-C and
8
+ Details toolbar toggles, and a gradient-backed Help navigation rail.
9
+
10
+ Removed the Python indentation-guide overlay and its setting. Function-fold
11
+ layout now synchronizes each shared source view immediately, moves cursors out
12
+ of newly hidden blocks, preserves access to the final function at the scroll
13
+ boundary, and remains stable while Generated C is repeatedly hidden or shown.
14
+ A fresh publishable conversion reveals hidden generated C automatically.
15
+ Transpilation Details returns as a resizable lower inspector opening at 38
16
+ percent of the available workspace instead of replacing the editors.
17
+
18
+ Replaced runtime SVG resources with 495 packaged PNG assets: 55 established
19
+ glyphs at nine resolutions from 16 through 256 pixels. Ting feedback now has
20
+ wide, labeled previous/next agent controls plus a live graphical Flow Map of the
21
+ source-free evidence fan-out, six current agent decisions, and advisory-only
22
+ fan-in. About now presents a 42-pixel brand mark, a fixed-size surface with a
23
+ titlebar-blended live world UTC clock, converter identities, full workspace
24
+ state topology, and authenticated Ting engine, registry, agent, rule, and test
25
+ telemetry.
26
+
27
+ Advanced the package to 1.0.5, the workspace contract to 0.8, the action
28
+ registry to 0.6, and the visual system to 0.5. Converter schemas, rules,
29
+ renderer, generated C, and Ting shadow authority remain unchanged at 0.16.0.
30
+
31
+ Corrected the final physical-Windows dialog review without changing the shared
32
+ hover design. Help, About, Ting Agent Feedback, and Ting Agent Flow Map now
33
+ open and reopen with focus in their content, matching the Open Python dialog.
34
+ Their maximize and close controls therefore illuminate only while genuinely
35
+ hovered or deliberately keyboard-focused instead of retaining a blue or red
36
+ focus line on activation. All other dialogs and converter behavior are
37
+ unchanged.
38
+
39
+ ## 1.0.4 — PyPI publication refresh
40
+
41
+ Reissued the fully validated 1.0.3 package under a fresh public version for a
42
+ clean PyPI upload. The two README screenshots retain their fixed, versioned
43
+ Cloudinary PNG delivery URLs.
44
+
45
+ Advanced the package and application version to 1.0.4. Converter behavior,
46
+ generated C, Ting agents and authority, the notification correction, workspace
47
+ behavior, and all UI and dialog presentation remain unchanged from 1.0.3.
48
+
49
+ ## 1.0.3 — Reliable PyPI screenshot delivery
50
+
51
+ Replaced the two unreliable public README image addresses with fixed,
52
+ versioned Cloudinary PNG delivery URLs. Both remote objects were independently
53
+ retrieved as 1920 × 1080 PNG files and matched the packaged screenshots byte
54
+ for byte before the release was built.
55
+
56
+ Advanced the package and application version to 1.0.3. The converter, generated
57
+ C, Ting agents and authority, notification fix, workspace, and every other UI
58
+ or dialog behavior remain unchanged from 1.0.2.
59
+
60
+ ## 1.0.2 — Focused presentation and notification polish
61
+
62
+ Replaced the former release-contract-heavy README with a shorter public guide
63
+ centered on PyCForge's purpose, installation, upgrades, immediate desktop
64
+ launch, principal workspace features, Ting agent integration, built-in Help,
65
+ CLI/API access, and safety boundary. Added current full-workspace and Ting
66
+ feedback screenshots to the source distribution and PyPI description.
67
+
68
+ Made the top notification banner's SVG close control follow the active
69
+ information, success, warning, or error foreground color. Hover, focus, and
70
+ pressed states retain the same semantic background and border family, so the
71
+ control no longer appears detached from its message. No other workspace or
72
+ dialog presentation was changed.
73
+
74
+ Advanced the package and application version to 1.0.2. Converter schemas,
75
+ lowering, generated-C behavior, Ting shadow authority, workspace contracts,
76
+ and the authenticated 1.0.1 fixed-set rules remain unchanged.
77
+
78
+ ## 1.0.1 — Fixed sets and professional workspace continuity
79
+
80
+ Added a fail-closed fixed-set profile to the active Phase 16 base. Direct
81
+ function-local literals of 1–64 unique homogeneous integer, finite-float, or
82
+ Boolean elements lower to read-only automatic C arrays. Exact-representation
83
+ `in` and `not in` evaluate their searched expression once and use bounded
84
+ linear equality. New authenticated membership facts, 1.0.1 rule identities,
85
+ independent validation, conversion summary records, exact diagnostics, and
86
+ positive/negative tests cover declaration and lowering. Unsupported order,
87
+ hash-table, mutation, alias, and escape behavior remains outside the contract.
88
+
89
+ Added parser-authenticated Python function folding, Fold All and Unfold All
90
+ source controls, and subtle Python-only indent guides. Generated C remains a
91
+ plain immutable inspection surface. Large-source fold discovery now consumes
92
+ the existing authenticated background structure result; Fold All returns to
93
+ the event loop immediately and applies bounded regions only after exact
94
+ document/revision validation. Fold application touches only changed bounded
95
+ block lines, preventing the synchronous parser/block-scan freeze reported on
96
+ Windows.
97
+
98
+ Removed the desktop shell's synthetic permanent first document. A new window
99
+ may be genuinely empty; the first opened or created Python module becomes
100
+ primary automatically, and every tab—including the first or final restored
101
+ tab—can be closed. Closing the final tab persists an intentionally empty
102
+ restart session. Linked files that remain open at exit still reopen in their
103
+ prior order with the prior active file selected. Added an independent
104
+ **Clear Recent Files** action that never closes tabs, deletes files, or changes
105
+ the restart session. Long main-window titles now elide before the window
106
+ controls, and Find/Replace keeps Previous and Next in one compact group.
107
+
108
+ Replaced native dialog titlebars with reusable accessible PyCForge frameless
109
+ chrome across Help, About, startup, settings, file browsers, command palette,
110
+ go-to-line, guarded choices, restoration reporting, and Ting feedback. The
111
+ flat titlebar carries the canonical brand mark and an extensible icon-toolbar
112
+ host; resizable dialogs expose system and bounded manual resize paths.
113
+
114
+ Persisted the ordered set of linked saved Python files and active linked file.
115
+ Startup restores them sequentially under the 64-document ceiling and reports
116
+ every unavailable or unreadable path in a nonblocking selectable dialog.
117
+ Unsaved source text is not serialized.
118
+
119
+ Added a source-free, read-only Ting feedback terminal after converted and
120
+ rejected decisions. An overview and all six mandatory agent tabs expose exact
121
+ evidence, gaps, bounded matching metrics, and rulepack identities. The shadow
122
+ review has no authority over conversion and does not fabricate compiler or
123
+ differential evidence.
124
+
125
+ Updated all fourteen classified offline HTML Help pages and navigation search
126
+ metadata needed for the new conversion and workspace features. Advanced the
127
+ package and application identity to 1.0.1 while retaining the documented Phase
128
+ 16 base schemas and renderer.
129
+
130
+ Corrected the 1.0.1 desktop presentation after physical-review feedback.
131
+ Python source now defaults to 14 pt, generated C to 12 pt, Help body text to
132
+ 12 pt, and application controls to a 12 pt minimum. Presentation-settings
133
+ schema 3 removes the faulty schema-2 global-font projection and oversized
134
+ restored geometry while preserving compatible session data. Top-level windows
135
+ fit the current monitor work area under Windows display scaling. Function fold
136
+ markers are larger, Fold All and Unfold All are direct Edit-menu actions, the
137
+ Ting/About status buttons are matched and contained, menu-item hover tooltips
138
+ are disabled, and ordinary typing no longer rewrites the persistent status
139
+ message.
140
+
141
+ Completed a second physical-Windows typography correction without changing
142
+ the editor sizes or Help article typography. Ordinary non-editor controls now
143
+ use the exact menu font, including Help controls, file browsers, inspectors,
144
+ About, startup, and monospaced Ting feedback. The three workspace caption
145
+ bands use a deliberate compact 10 pt hierarchy and the Python header gives
146
+ adaptive space to both module identity and path text. The Open preview is decoupled
147
+ from the 14 pt source editor and uses compact menu-sized page geometry.
148
+ Transpilation Details always starts hidden and opens as a full-height review
149
+ mode instead of compressing the editor. Source/mapping activation returns to
150
+ the editor. Accepted code-font choices use a durable restart mirror; guarded
151
+ Save/Discard focus borders retain bottom clearance; QAction status tips cannot
152
+ enter the status bar. Help, About, and startup rasterize the
153
+ redesigned flat `brand-mark.svg` directly at the final logical size and device
154
+ pixel ratio, eliminating enlarged 24-pixel bitmap intermediates.
155
+
156
+ ## 0.16.3 — Complete in-app Help and workspace usability
157
+
158
+ Status: PyCForge 0.16.3 package release; active converter, rule-set, renderer,
159
+ runtime-policy, plan, C-IR, artifact, summary, trace, and result-envelope
160
+ contracts remain unchanged from the PyPI 0.16.2 package.
161
+
162
+ Added a professional, fully offline HTML Help dialog under the new **Help**
163
+ menu and **F1**. Fourteen editable HTML pages are classified through a
164
+ validated catalog, presented with persistent left navigation, and searched as
165
+ one global documentation set. They cover the entire cumulative conversion
166
+ surface, including typed functions, expressions,
167
+ conditionals, scalar scope publication, loops and loop `else`, containers,
168
+ records, direct/keyword calls, explicit module imports, bounded UTF-8 file
169
+ reading and writing, the generated-C file ABI and status codes, CLI/API use,
170
+ diagnostics, safety, limits, shortcuts, and active identities. The installed
171
+ application no longer relies on a PDF or an external repository for user help.
172
+
173
+ Replaced editor-only font sizing with one persisted 8–32 point workspace text
174
+ size. Direct **View** actions and `Ctrl+=`, `Ctrl+-`, and `Ctrl+0` now resize
175
+ menus, toolbars, dialogs, trees, diagnostics, Python, generated C, previews,
176
+ and Help together. Schema-1 editor preferences migrate into the application-
177
+ wide setting and changes synchronize immediately.
178
+
179
+ The custom Open/Save dialogs now remember per-mode geometry, columns,
180
+ directory, and—where applicable—the browser/preview splitter and last selected
181
+ Python file. Open never displays a restored preview unless its tree row is
182
+ visibly selected. The first **New Module** reuses a pristine initial `main.py`
183
+ placeholder, eliminating the accidental empty-main diagnostic while retaining
184
+ the converter's deliberate rejection of genuinely empty bundle modules.
185
+
186
+ Added Undo, Redo, Cut, Copy, and Paste to the main toolbar; enlarged module-tab
187
+ close targets; rebuilt status-bar ownership so left feedback stretches inside
188
+ the bar and right-side controls remain contained; and replaced stylesheet and
189
+ editor-rail gradients/texture backgrounds with a flat blackened-steel palette.
190
+
191
+ Package metadata now identifies PyPI as the authoritative distribution page.
192
+ The package version advances to 0.16.3 because published PyPI files are
193
+ immutable; the active converter contract remains exactly 0.16.0.
194
+ Workspace, action-registry, and visual-system presentation identities advance
195
+ to `pycforge-workspace/0.7`, `pycforge.action-registry/0.4`, and
196
+ `pycforge.visual-system/0.4`; persisted presentation settings advance to schema
197
+ `2` with bounded schema-1 font migration.
198
+
199
+ Added six deterministic Ting shadow-review agents for syntax, semantics,
200
+ ownership, lowering, verification, and typed capability/resource binding.
201
+ Their 34 embedded tests run without skips through a read-only source gate.
202
+ Proof-preserving pruning evaluates every registered role while using bounded
203
+ schema and equality indexes inside each rulepack. PyCForge ships only a
204
+ private execution runtime, authenticated registry, and precompiled Compact-IR.
205
+ The runtime retains the bounded `.ting` Compact-IR loader/parser and verifier.
206
+ Only the authoring-side RuleSpec source parser, compiler, writers, builders,
207
+ consoles, reference engine, history subsystem, and command entry points are
208
+ excluded from both public archives and retained separately under compiler
209
+ custody.
210
+
211
+ Added an accessible branded startup progress dialog driven only by completed
212
+ initialization work. It validates the vector catalogue, all offline Help
213
+ sources, and every packaged `.ting` artifact before constructing the
214
+ workspace. The dialog supports safe-boundary cancellation, presents bounded
215
+ startup errors, performs no network access, and uses the same flat visual
216
+ surface and canonical brand mark as the main window, Help, and About.
217
+
218
+ ## 0.16.2 — Evaluation hardening and motionless editing
219
+
220
+ Status: PyCForge 0.16.2 package release; active converter contracts,
221
+ generated-C identities, and the 0.16.0 Programmer's Conversion Guide remain
222
+ unchanged.
223
+
224
+ Repaired the frontend's virtual-EOF coordinate mapping so valid source converts
225
+ without a terminal newline or completely empty final line. The repair maps the
226
+ tokenizer's virtual final position to exact EOF without inserting or
227
+ normalizing text and preserves source bytes, newline records, document identity,
228
+ and authenticated hash. The `clamp` reproduction no longer falls through to
229
+ `PYC9001`.
230
+
231
+ Made normal typing visually motionless across the toolbar Convert action,
232
+ conversion-status labels, the generated-C stale/last-complete label, and Python
233
+ source breadcrumbs. State updates now occur in place, while progress animation
234
+ is limited to actual conversion work. Corrected Python-editor point-size loading
235
+ so the chosen value survives restart and applies to both current and future
236
+ split source panes.
237
+
238
+ Added a compact, menu-preserving frameless shell and reduced toolbar and notice
239
+ height without shrinking their established text. Replaced native tree icons
240
+ with PyCForge dark-theme iconography, bounded the Open dialog's initial height,
241
+ and moved Previous/Next navigation above the preview page. Reworked About into
242
+ a wider categorized view with version and contract information, end-of-file and
243
+ current/stale-state explanations, Details and split-view cues, and no
244
+ personal-name text. The existing toolbar action remains the single Show/Hide
245
+ control for Transpilation Details.
246
+
247
+ Documented fresh and explicit-upgrade commands for both POSIX environments and
248
+ the Windows `py` launcher. Package version 0.16.2 retains the 0.16.0 converter,
249
+ rule-set, renderer, runtime-policy, plan, C IR, generated-artifact, summary, and
250
+ decision-trace identities; workspace and settings identities also remain
251
+ unchanged.
252
+
253
+ ## 0.16.1 — ForgeLens and blackened-steel workspace
254
+
255
+ Status: PyCForge 0.16.1 release; converter contracts, generated C, and the
256
+ 0.16.0 Programmer's Conversion Guide remain unchanged.
257
+
258
+ Added optional, default-on ForgeLens cross-highlighting from authenticated
259
+ Python↔C mappings. It follows exact focused selections without taking focus or
260
+ switching documents, persists its Editor Settings toggle, clears safely across
261
+ document and lifecycle changes, and fails closed on excessive mapping fanout.
262
+ Position indexing now handles Qt newline normalization, query scans stop as
263
+ soon as their ordered interval cannot match, endpoint storage is compact, and
264
+ unchanged marker projections are not repainted.
265
+
266
+ Introduced a coordinated blackened brushed-steel workspace with restrained
267
+ focus and selection colors, semantic primary/danger states, coherent menus and
268
+ dialogs, and the PyCForge brand mark in About. Replaced native file pickers
269
+ with bounded custom browsers: Open renders readable Python pages in memory with
270
+ Previous/Next controls, while Save remains preview-free. Hardened dialog error
271
+ recovery, path elision, accessibility descriptions, tree sizing, and preview
272
+ retirement behavior.
273
+
274
+ Added the concise five-feature UI roadmap and refreshed the public README with
275
+ an immutable, code-rich 1600×1000 workspace screenshot. The complete package
276
+ still uses the active Phase 16 converter identities at 0.16.0.
277
+
278
+ ## 0.16.0 — Scope, loop completion, and bounded UTF-8 file I/O
279
+
280
+ Status: PyCForge 0.16.0 release; explicit Phase 14A-14D requests and all
281
+ historical 0.15.3 workspace custody remain preserved.
282
+
283
+ ### Selective scalar scope lifetimes
284
+
285
+ Added immutable, resource-bounded, independently reconstructed
286
+ `fact-table/0.16-scope-lifetimes` proof. Scalar locals first assigned in
287
+ exhaustive conditional branches can now lower to one uninitialized C
288
+ function-entry declaration plus source-ordered branch assignments when every
289
+ reachable continuation proves initialization before use. Nested conditionals
290
+ and the surviving branch after a sibling return are reachability-aware.
291
+
292
+ The profile remains deliberately selective: loops, containers, records,
293
+ closures, globals/nonlocals, missing branch coverage, read-before-definition,
294
+ unknown or incompatible categories, and malformed or over-budget evidence fail
295
+ closed. Already-supported unrelated constructs remain independent.
296
+
297
+ ### Loop completion and safe `range`
298
+
299
+ Added exact Python `else` behavior for admitted `while`, positional-`range`,
300
+ and fixed list/tuple/dictionary loops. Natural completion and zero iterations
301
+ run the else suite; only a source `break` owned by that loop suppresses it.
302
+ Nested breaks do not suppress an outer else, `continue` preserves completion,
303
+ and `return` bypasses it. One deterministic Boolean flag is emitted only when
304
+ the loop owns a break, with clears immediately before those exact breaks.
305
+
306
+ Added a structured pre-addition guard for signed-64 range induction. An update
307
+ that would cross `INT64_MAX` or `INT64_MIN` selects the staged stop value
308
+ instead, preserving exhaustion without undefined C signed overflow.
309
+
310
+ ### Closed bounded UTF-8 file profile
311
+
312
+ Added one exact direct function-body context profile:
313
+ `with open(path, "r" or "w", encoding="utf-8", newline="") as fresh_handle`
314
+ with one direct read transfer or one direct write of an already-proved string
315
+ name or string literal whose count is discarded. Effectful write expressions
316
+ reject with `PYC3905` because helper-internal open cannot preserve context-entry
317
+ before body-evaluation order.
318
+ Reads default to 1,048,576 bytes, have a hard 16,777,216-byte ceiling, reject
319
+ embedded NUL and non-RFC-3629 UTF-8, close exactly once, and transfer ownership
320
+ only after successful close. Writes use borrowed text, require an exact byte
321
+ count, close exactly once, and propagate failure. Handle aliasing, rebinding,
322
+ escape, post-region use, explicit close, unsupported open shapes, and source
323
+ calls into file-effect functions reject with the `PYC3901`–`PYC3908` family.
324
+
325
+ Registered helpers are `pycf.file.read_all_utf8_bounded@1.0.0` and
326
+ `pycf.file.write_utf8_exact@1.0.0`, with registry-closed transitive UTF-8
327
+ validation. Generated file-effect entry points receive a hidden final,
328
+ required non-null `int64_t *` status parameter in caller-owned storage. Stable
329
+ codes are 0 success, 1 open, 2 allocation, 3 read, 4 limit, 5 embedded NUL,
330
+ 6 invalid UTF-8, 7 close, and 8 write. A successful read returns a unique
331
+ caller-owned `malloc` buffer that the external caller must `free`.
332
+ Every file-effect entry point null-checks its status pointer and then initializes
333
+ it to success before any source-controlled early return or evaluation; helper
334
+ failures overwrite that value with their stable code.
335
+
336
+ Recorded the external C-string preconditions explicitly: paths must be
337
+ non-null, NUL-terminated valid UTF-8; borrowed write text has the same
338
+ preconditions and no embedded NUL. The helpers do not runtime-validate pointer
339
+ validity, path UTF-8/NUL properties, or hidden write bytes after the first
340
+ terminator. Compile-time path/write literals containing NUL reject with
341
+ `PYC3903`/`PYC3905`; read-content statuses 5 and 6 do not claim input-string
342
+ validation.
343
+
344
+ ### Contracts and custody
345
+
346
+ Advanced the active converter to `0.16.0` with
347
+ `phase16-scope-loop-file-v0.16.0`, `c-renderer-v0.16.0`,
348
+ `conversion-plan/0.16.0`, `c-ir/0.16.0`, `generated-c/0.16.0`, and matching
349
+ 0.16.0 summary/trace identities. The result envelope remains `0.5`. Phase 16
350
+ adds closed structured pointer, cast, conditional-expression, null, and C
351
+ library-intrinsic C IR forms needed by the proved runtime. Historical Phase 14D
352
+ schemas, rendering, diagnostics, output bytes, hashes, rejections, and helper
353
+ manifests remain unchanged under explicit `0.14.3` requests.
354
+
355
+ Conversion never executes source Python and never opens a path selected by the
356
+ source. PyCForge never compiles, links, loads, or runs generated C. File I/O,
357
+ status writes, allocation, ownership transfer, and caller `free` occur only if
358
+ an external party separately builds and runs the generated C.
359
+
360
+ The authenticated desktop worker protocol is now
361
+ `pycforge.worker-protocol/0.2`; it preserves the active runtime-policy identity
362
+ and all expanded resource fields across the GUI process boundary. Added a
363
+ reproducible 35-page 0.16.0 Programmer's Conversion Guide with 22 live-converter
364
+ examples, deterministic PDF reconstruction, and release-asset verification.
365
+
366
+ ## 0.15.3 — Workspace usability and PySide6 transition
367
+
368
+ Status: release candidate; converter semantics remain sealed at `0.14.3`.
369
+
370
+ Migrated the desktop application from PyQt5/Qt 5 to PySide6/Qt 6 and made
371
+ `PySide6>=6.8,<7` the single required GUI binding. Updated native actions,
372
+ signals, dialogs, input events, high-DPI behavior, CI, packaging checks, and
373
+ clean-install smoke coverage for Qt 6.
374
+
375
+ Added a bounded, persisted **Edit → Editor Settings…** control for the text
376
+ size of both synchronized Python source views. The setting accepts 8–48 points,
377
+ updates tab stops and editor side areas immediately, survives shared-document
378
+ rebinding, and leaves the generated-C viewer unchanged.
379
+
380
+ Added undoable Python auto-indentation on Enter. Existing leading whitespace
381
+ is preserved and genuine suite-opening colons add four spaces; colons inside
382
+ strings, comments, and open bracket expressions do not trigger an extra level.
383
+
384
+ Removed passive source-mapping backgrounds and underlines from generated C.
385
+ Mapping records, the overview rail, activation, and source/output navigation
386
+ remain available, while the generated-C text surface remains read-only and
387
+ explicit-save-only.
388
+
389
+ Advanced the workspace contract to `pycforge-workspace/0.6`, the action
390
+ registry to `pycforge.action-registry/0.3`, and the visual system to
391
+ `pycforge.visual-system/0.3`. Presentation settings remain schema `1`, the
392
+ worker protocol remains `pycforge.worker-protocol/0.1`, and the complete
393
+ converter subtree remains unchanged at `0.14.3`.
394
+
395
+ ## 0.15.2 — Phase 15C IDE-grade authoring and inspection workspace
396
+
397
+ Status: promoted and sealed; Phase 15D remains unopened.
398
+
399
+ Prepared the first public PyPI distribution without changing the
400
+ converter contract. PyQt5 is now a mandatory runtime dependency of the base
401
+ package, so an ordinary `pip install pycforge` installs the desktop application
402
+ and both `pycforge` and `pycforge-workspace` entry points. Removed the obsolete
403
+ `workspace` extra, added PyPI long-description and project metadata, corrected
404
+ the command-line examples, and added clean-build, clean-install, offscreen Qt,
405
+ release-artifact and Trusted Publishing gates.
406
+
407
+ Established the public source license as `GPL-3.0-only`, compatible with the
408
+ GPL PyPI distribution of PyQt5, and included the complete license text in the
409
+ source and package metadata.
410
+
411
+ Advanced the package to `0.15.2`, the workspace contract to
412
+ `pycforge-workspace/0.5`, the action registry to
413
+ `pycforge.action-registry/0.2`, and the visual system to
414
+ `pycforge.visual-system/0.2`. The converter remains sealed at `0.14.3`, the
415
+ worker protocol remains `pycforge.worker-protocol/0.1`, and presentation
416
+ settings remain schema `1`.
417
+
418
+ Added identifier-only document-tab and split-pane session state, with at most
419
+ two synchronized Python source panes. Added bounded undoable source operations
420
+ for line duplication, line movement, indentation, outdentation, and Python
421
+ comment toggling, together with go-to-line, whitespace visibility, and source
422
+ fold controls.
423
+
424
+ Added cancellable latest-wins source-structure analysis for already-open Python
425
+ text. The normalized outline and breadcrumb projection is parent-linked and
426
+ bounded by symbol count, depth, name length, and source-text budgets. Invalid
427
+ syntax remains inert and cannot retire valid structure for unrelated open
428
+ documents.
429
+
430
+ Added deterministic literal bundle search across the explicit open
431
+ `SourceBundle`, with immutable path-free requests, exact Python and UTF-16
432
+ positions, bounded previews, a global 5,000-match cap, and stale-generation
433
+ suppression. No host directory or project discovery was introduced.
434
+
435
+ Added a bounded command palette that projects enabled and visible static
436
+ registry actions without retaining handlers or adding a free-form command
437
+ execution surface. Added payload-free session transpilation history capped at
438
+ 64 terminal records.
439
+
440
+ Expanded the declarative command system to 48 actions, five persistent main
441
+ menus, and eleven context surfaces. Added the Navigate menu, source-authoring
442
+ commands, document-tab, bundle-search, history, text-input, and read-only-text
443
+ contexts while preserving the exact read-only generated-C command allowlist and
444
+ single-owner persistent `QAction` construction.
445
+
446
+ Expanded the vector catalogue from 41 to 55 safe SVG icons and extended the
447
+ shared workspace stylesheet for document tabs, split views, breadcrumbs,
448
+ outline, bundle-search results, history, and command-palette presentation.
449
+
450
+ Preserved the Phase 15A spawned-worker model, one-active/one-latest scheduling,
451
+ bounded cancellation, immutable revision and fingerprint authentication,
452
+ stale-result suppression, off-GUI file and search work, and incremental
453
+ generated-C projection. Python remains the only editable code surface.
454
+
455
+ Recorded current-release real PyQt evidence on the offscreen QPA backend
456
+ using Python 3.12.13, PyQt 5.15.11, Qt build 5.15.14, and Qt runtime 5.15.19.
457
+ One `QApplication` ran 18 focused workspace cases with zero failures, errors,
458
+ or skips. A 250,113-character source constructed the window in 0.054 seconds,
459
+ reached the first event turn in 0.0103 seconds, and produced 110 timer ticks at
460
+ 0.01-second intervals during 1.201 seconds of isolated transpilation. Large-file
461
+ mode detached the syntax highlighter while preserving the shared editor buffer;
462
+ shutdown left zero new PyCForge threads and zero worker leaks. A small
463
+ end-to-end workspace conversion completed in 0.408 seconds as supporting
464
+ evidence.
465
+
466
+ Authenticated, assigned the canonical validation report and release
467
+ fingerprint, and built and validated the Phase 15C milestone source archive,
468
+ pure-Python wheel, handoff, package report, and checksum records. These
469
+ artifacts establish Phase 15C release custody, not the wider Phase 15D
470
+ distribution and platform gate.
471
+
472
+ PyCForge remains a deterministic Python-to-C source transpiler. It does not
473
+ compile, assemble, link, load, run, execute, debug, profile, deploy, or invoke
474
+ generated C or a C toolchain.
475
+
476
+ The real offscreen widget evidence is not visible-platform certification.
477
+ Visible Windows 11/Linux rendering, physical display scaling, and
478
+ assistive-technology validation remain Phase 15D gates.
479
+
480
+ ## 0.15.1 — Phase 15B application shell and visual system
481
+
482
+ Status: implemented and validated within the available supporting scope.
483
+
484
+ Advanced the workspace contract to `pycforge-workspace/0.4` and introduced the
485
+ import-safe `pycforge.action-registry/0.1`. Every persistent application command
486
+ now has one declarative authority for its stable ID, label, mnemonic, SVG icon,
487
+ shortcut, tooltip, status explanation, accessible name, checkability, tone, and
488
+ allowed surfaces. The Qt adapter creates each persistent `QAction` once and
489
+ shares it across menus, toolbars, context surfaces, and bounded dynamic entries.
490
+
491
+ Added custom gradient/icon File, Edit, View, and Transpile menus and declared
492
+ context menus for Python source, read-only generated C, the Source Bundle
493
+ navigator, diagnostics, mappings, conversion summary, decision trace, and
494
+ telemetry. The custom presentation remains native-backed by `QMenu` and
495
+ `QAction`, preserving keyboard traversal, mnemonics, shortcut columns, checked
496
+ state, focus return, Escape dismissal, assistive exposure, submenu behavior,
497
+ and screen-edge placement. Generated C uses an explicit read-only command
498
+ allowlist.
499
+
500
+ Introduced `pycforge.visual-system/0.1` with cohesive semantic graphite
501
+ surfaces, layered gradients, high-contrast text, blue and violet focus accents,
502
+ a restrained warm transpilation accent, and explicit success, warning, error,
503
+ and danger treatments. Expanded professional self-contained SVG iconography
504
+ uses logical dimensions and excludes raster payloads, embedded data, remote
505
+ references, fixed physical sizing, scripts, and font-glyph dependencies.
506
+
507
+ Added high-DPI and accessibility foundations: high-DPI scaling before
508
+ application construction, logical icon sizing, stable menu accessible names,
509
+ visible tooltips and accessible names for icon-only controls, visible keyboard
510
+ focus, and non-color-only state treatment. The interface has no animation and
511
+ is reduced-motion safe by construction.
512
+
513
+ Removed the legacy presentation-namespace migration and compatibility surface.
514
+ Current source, settings, menus, toolbars, tests, evidence, and distribution
515
+ use PyCForge identity exclusively. Original pre-migration bytes remain
516
+ authoritative in the authenticated Phase 15A archive.
517
+
518
+ Preserved all Phase 15A responsiveness and isolation guarantees: spawned
519
+ conversion, one-active/one-latest scheduling, cooperative and hard
520
+ cancellation, immutable revision authentication, stale-result suppression,
521
+ off-GUI file I/O and search, bounded editor projections, incremental generated-C
522
+ population, and exact Save C authority.
523
+
524
+ Bounded the structured detail inspectors with an iterative cycle-safe
525
+ projection limited to 1,024 nodes, 16 levels, 256 children per container, and
526
+ 2,048 characters per value. Corrected scroll-area context placement, made
527
+ uncommitted identity edits immediately stale and unsavable as C, and suppressed
528
+ cancellation-pending diagnostics as non-current.
529
+
530
+ Hardened release custody around a descriptor-bound, size-bounded source
531
+ snapshot and a validation-subject digest that is checked against the exact
532
+ packaged bytes. Packaging now pins its production environment, compares
533
+ duplicate wheel and normalized-source builds, inspects and smokes the sealed
534
+ wheel payload, rejects noncanonical validation JSON, and durably publishes the
535
+ seven-artifact directory only after the final vocabulary and checksum graph
536
+ passes.
537
+
538
+ The package is `0.15.1`; the converter remains sealed at `0.14.3`, the worker
539
+ protocol remains `pycforge.worker-protocol/0.1`, and presentation settings
540
+ remain schema `1`. PyCForge remains a deterministic Python-to-C source
541
+ transpiler. No C compiler, linker, loader, runtime execution, debugger,
542
+ terminal, toolchain, project explorer, plugin system, or generated-C editor was
543
+ added.
544
+
545
+ PyQt5 is unavailable on the validation host, so Phase 15B evidence is
546
+ supporting source, static, headless, registry, icon, and optional-widget
547
+ evidence only. Visible Windows 11/Linux rendering, real display scaling, and
548
+ assistive-technology validation remain Phase 15D gates. Phase 15C and Phase 15D
549
+ remain unopened.
550
+
551
+ Final discovery runs 750 tests: 734 pass, 16 are expected skips, and none fail.
552
+ Eleven skips require unavailable PyQt5 widgets; five require unavailable older
553
+ optional custody artifacts.
554
+
555
+ ## 0.15.0 — Phase 15A responsiveness and isolation
556
+
557
+ Status: promoted and sealed.
558
+
559
+ Replaced workspace in-process conversion with a spawn-only process supervisor.
560
+ The bounded `pycforge.worker-protocol/0.1` uses canonical JSON over byte-only
561
+ connections and validates generation, bundle, transport, request, artifact,
562
+ mapping, and output identities before publication. Scheduling is exactly one
563
+ active plus one replaceable latest pending request.
564
+
565
+ Added cooperative cancellation with a 750 ms grace, hard termination and
566
+ two-second reclamation, latest-pending start bounds, non-blocking close, and
567
+ recoverable startup, crash, malformed/oversized IPC, broken-pipe, and worker
568
+ resource-exhaustion handling. Canceled, failed, stale, superseded, partial, or
569
+ mismatched work cannot publish C or replace last-known-good C.
570
+
571
+ Added immutable off-GUI revision/index services with cached UTF-8 and UTF-16
572
+ position facts. Convert and Save C remain disabled until the latest revision
573
+ authenticates. Moved linked-file reads, hashes, observations, and guarded atomic
574
+ writes to bounded daemon workers; an in-flight stale Save C fails before atomic
575
+ replacement.
576
+
577
+ Added debounced latest-wins literal search with an exact total and a 5,000-range
578
+ projection cap. Added automatic large-file editor mode, bounded syntax/bracket
579
+ work, marker and overview caps, viewport-focused selections, incremental 32 KiB
580
+ generated-C projection, and deferred hidden output/detail work. Source edits
581
+ are coalesced before proportional controller synchronization.
582
+
583
+ Validated direct-versus-isolated serialized-result equality, hard-cancel and
584
+ failure containment, maximum-envelope revision/search/index behavior, injected
585
+ slow file I/O, and 100 edit/convert/cancel cycles without stale publication,
586
+ deadlock, crash, obsolete pending work, or orphan processes.
587
+
588
+ Advanced the package to `0.15.0` and workspace contract to
589
+ `pycforge-workspace/0.3`. The complete converter subtree and every converter
590
+ contract remain sealed at `0.14.3`.
591
+
592
+ PyCForge remains a Python-to-C source transpiler. No compiler, linker, loader,
593
+ generated-C executor, runner, debugger, terminal, toolchain, plugin,
594
+ project-explorer, host-discovery, or generated-C editor was added. Phase 15B,
595
+ 15C, and 15D remain unopened; visible Windows 11/Linux PyQt and accessibility
596
+ claims are reserved for Phase 15D.
597
+
598
+ ## 0.14.4 — Hardening Checkpoint E
599
+
600
+ Status: promoted and sealed.
601
+
602
+ Completed the roadmap's post-Phase-14 full-subset architecture review,
603
+ deterministic full-supported-subset fuzz and metamorphic gate, and documentation
604
+ and 69-entry feature-matrix reconciliation. No Python construct, C IR shape,
605
+ helper, diagnostic, conversion policy, public converter schema, or generated-C
606
+ style was added or changed.
607
+
608
+ Separated the package identity (`0.14.4`) from the sealed deterministic
609
+ converter contract identity (`0.14.3`). Golden output, serialized results,
610
+ facts, RulePlans, summaries, traces, telemetry, diagnostics, mappings, and
611
+ fingerprints remain Phase 14D values.
612
+
613
+ Corrected the active desktop identity to PyCForge across front-facing titles,
614
+ accessibility names, theme exports, and the settings namespace. Added a bounded,
615
+ non-destructive migration for allow-listed predecessor presentation settings
616
+ and retained non-exported compatibility aliases only for sealed historical
617
+ validators.
618
+
619
+ Established `pycforge-workspace/0.2` and a binding workspace-quality addendum.
620
+ The addendum assigns the requested process-isolated conversion supervisor,
621
+ maximum-input responsiveness, professional IDE-grade authoring and inspection,
622
+ custom gradient/icon main and context menus, accessibility, high-DPI, and real
623
+ Windows 11/Linux PyQt gates to Phase 15. Checkpoint E does not claim those
624
+ future gates or open Phase 15.
625
+
626
+ PyCForge remains a Python-to-C source transpiler. It does not compile, link,
627
+ load, run, execute, debug, benchmark, or otherwise invoke generated C or a C
628
+ toolchain.
629
+
630
+ Promotion executes all 69 frozen feature-matrix entries plus the unlisted
631
+ default, with 37 supported witnesses converted and 33 boundary witnesses
632
+ rejected without mismatch. The seeded hardening corpus contains 16 fixed and
633
+ 64 generated cases, four per promoted family, and all 80 match the
634
+ authenticated Phase 14D predecessor byte-for-byte.
635
+
636
+ Final validation discovers 589 tests: 572 pass, 17 are expected skips, and
637
+ zero fail. The focused Checkpoint E set passes 46 of 46, and every cumulative
638
+ source-only audit passes. Reproducible wheel and normalized source-archive
639
+ builds are byte-identical; isolated wheel and extracted-source smokes pass.
640
+ The wheel contains both PyCForge entry points, exactly 17 SVG assets, and no
641
+ native binaries.
642
+
643
+ ## 0.14.3 — Phase 14D exact required keyword-only calls
644
+
645
+ Status: promoted and sealed.
646
+
647
+ Added one exact source-only declaration and call profile for required
648
+ keyword-only parameters on already-resolved direct source functions. An admitted
649
+ function may have existing required positional-only and positional-or-keyword
650
+ parameters followed by one or more exactly annotated required keyword-only
651
+ parameters. Every `kw_defaults` entry is null; positional defaults,
652
+ keyword-only defaults, `*args`, and `**kwargs` remain rejected.
653
+
654
+ Ordinary positional actuals bind only positional-capable formals. Explicit named
655
+ actuals may bind unbound positional-or-keyword or required keyword-only formals.
656
+ Every required formal is covered exactly once with an exact category and
657
+ representation match. Explicit values stage once in Python source order; only
658
+ pure temporary references are arranged in full formal order for the existing
659
+ structured `CCallExpr`. No runtime binder, `TypeError` channel, default
660
+ evaluation, coercion, allocation, ownership transfer, or cleanup model was
661
+ added.
662
+
663
+ Added complete positive and negative `keyword-only-call-binding-facts` under
664
+ `fact-table/0.14.3` and the helper-free
665
+ `phase14.keyword_only_call.exact_binding@0.14.3` RulePlan. The lowering shape is
666
+ `source-order-actual-temporaries-formal-order-references-v1`. Independent
667
+ validation reconstructs declaration kind, target, name binding, coverage,
668
+ categories, source/formal orders, C parameter order, and exact plan
669
+ correspondence before lowering.
670
+ Required-keyword-only declarations remain in the existing function-signature
671
+ facts without changing the serialized `ParameterFact` shape. Affected existing
672
+ `FunctionDef` RulePlans gain explicit keyword-only parameter and
673
+ C-interface-mode-erasure facts and obligations, and independent validation
674
+ covers admitted declarations even when they have no call site.
675
+
676
+ No new source diagnostic code is required. `PYC2904` retains missing coverage
677
+ and excess positional arity, `PYC2905` exact representation mismatch, `PYC2910`
678
+ unpacking and excluded call shapes, and `PYC2912` exact name-binding failures.
679
+ Under active 0.14.3 identities `PYC2911` continues to reject defaults,
680
+ defaulted keyword-only parameters, variadics, and keyword-only declarations
681
+ outside the exact required profile; it no longer rejects an otherwise eligible
682
+ required keyword-only declaration solely because `kwonlyargs` is nonempty.
683
+ Historical 0.14.2 diagnostics remain unchanged.
684
+
685
+ Advanced the active rule set to
686
+ `phase14-required-keyword-only-calls-v0.14.3`, renderer to
687
+ `c-renderer-v0.14.3`, and conversion-plan, C IR, generated-C, summary, and
688
+ decision-trace envelopes to 0.14.3. SourceBundle 0.2, Python IR 0.4, result
689
+ serialization 0.5, target and semantic policies, the helper registry, and all
690
+ container/module/record/numeric/conditional policies remain frozen.
691
+
692
+ Explicit 0.14.2 and earlier requests retain their exact facts, plans,
693
+ diagnostics, generated-C bytes, and fingerprints. Under active 0.14.3
694
+ identities, sources selecting no Phase 14D declaration or call behavior retain
695
+ Phase 14C generated-C bytes and output fingerprints. Required keyword-only
696
+ support adds no C IR syntax kind, renderer grammar, helper, host discovery, or
697
+ toolchain surface. Generated C remains source-validated only and is not
698
+ compiled, linked, loaded, or executed. Defaults, variadics, unpacking, dynamic
699
+ targets, methods, recursion, exceptions, closures, generators, async behavior,
700
+ and every neighboring Phase 14 family remain excluded. Phase 15 has not
701
+ started.
702
+
703
+ Promotion passed 539 discovered tests: 524 passed, 15 skipped, and zero failed.
704
+ The skips are exactly 10 for unavailable PyQt5 and five for unavailable older
705
+ custody artifacts. The focused Phase 14D gate passed 65 of 65 tests. Every
706
+ active cumulative audit passed, including the required-keyword-only and
707
+ Phase 14D transition audits.
708
+
709
+ Two fixed-epoch builds produced the same 340,054-byte
710
+ `pycforge-0.14.3-py3-none-any.whl`, SHA-256
711
+ `c0dd0c0ed79131daa5af815a8a9bb096b9f955c9c617ec0b8eb6a10c69d27b7f`.
712
+ The wheel archive and `RECORD` each account for 132 members: 17 SVG assets and
713
+ zero native-code members. Two normalized source-archive builds were likewise
714
+ byte-identical. The promoted converter subtree SHA-256 is
715
+ `74b32c25e40af3398dd46288941812ce7ad87f0d4b72fec3d3bd786cc1b8f3a8`.
716
+
717
+ Release validation remained source-only: no gate compiled, linked, loaded, or
718
+ executed generated C. No new actual PyQt5 widget or Windows 11 execution is
719
+ claimed. Historical opening records remain preserved, and Phase 15 has not
720
+ started.
721
+
722
+ ## 0.14.2 — Phase 14C direct exact keyword calls
723
+
724
+ Status: promoted and sealed.
725
+
726
+ Added one closed compile-time binding profile for explicit keyword arguments on
727
+ already-resolved direct source-function calls. Calls may use a leading ordinary
728
+ positional prefix followed by one or more explicit named keywords. Every
729
+ required formal is bound exactly once, positional-only formals remain
730
+ positional-only, and actual/formal categories must match exactly. Same-module
731
+ and existing explicit cross-module source-function bindings are eligible;
732
+ dynamic targets, callable values, methods, defaults, keyword-only parameters,
733
+ variadics, `*`/`**` unpacking, recursion, `range` keywords, and record-
734
+ constructor keywords remain excluded.
735
+
736
+ Added independent keyword-call analysis and reconstruction,
737
+ `keyword-call-binding-facts` under `fact-table/0.14.2`, and the helper-free
738
+ `phase14.keyword_call.exact_binding@0.14.2` RulePlan. Argument values are staged
739
+ left to right and once in Python source order, then pure temporary references
740
+ are arranged in formal ordinal order for the existing structured `CCallExpr`.
741
+ No C IR node kind, renderer grammar, helper, runtime binder, failure channel,
742
+ allocation, ownership transfer, or cleanup model was added.
743
+
744
+ Added `PYC2912` for exact static name-binding failures: unknown keyword names,
745
+ positional-only names used as keywords, positional/keyword collisions, and
746
+ duplicate keywords. `PYC2910` remains the boundary for `*`/`**`, null keyword
747
+ names, unpacking, and other excluded keyword shapes. Existing target,
748
+ declaration, arity, category, record, `range`, and recursion diagnostics retain
749
+ precedence.
750
+
751
+ Advanced the active rule set, renderer, conversion plan, C IR, generated-C,
752
+ summary, and trace envelopes to 0.14.2. SourceBundle 0.2, Python IR 0.4, result
753
+ serialization 0.5, all public policies, the helper registry, Phase 14A numeric
754
+ facts/helpers, and Phase 14B `fact-table/0.14.1` conditional facts and RulePlans
755
+ remain unchanged. Explicit 0.14.1 requests retain their historical keyword
756
+ rejection and artifact behavior; active sources selecting no 14C call retain
757
+ predecessor generated-C bytes and output fingerprints.
758
+
759
+ Promotion authenticated the sealed Phase 14B source archive and wheel, passed
760
+ the cumulative suite and audits including the keyword and Phase 14/14B/14C
761
+ transition audits, sealed deterministic wheel and source-archive builds, and
762
+ passed isolated package validation. All release validation remained source-only;
763
+ generated C was not compiled, linked, loaded, or executed. PyQt5 was unavailable
764
+ in the release environment, so no new widget execution is claimed and sealed
765
+ offscreen-widget evidence remains preserved. Windows 11 execution is not
766
+ claimed. Phase 14D and Phase 15 have not started.
767
+
768
+ ## 0.14.1 — Phase 14B conditional temporary regions
769
+
770
+ Status: Phase 14B promoted and sealed.
771
+
772
+ Added exact conditional placement for statement-producing temporaries belonging
773
+ to expressions already supported by the cumulative scalar subset. Boolean
774
+ `and`/`or` expressions now use an initialized Boolean result and flat guarded
775
+ assignments. Later operands of chained comparisons use guarded materialization
776
+ and rolling middle values, preserving left-to-right, exactly-once evaluation
777
+ without eagerly evaluating skipped operands.
778
+
779
+ Added independent conditional-region analysis and validation,
780
+ `fact-table/0.14.1` conditional facts, two 0.14.1 RulePlan families, and active
781
+ `conversion-plan/0.14.1`, `c-ir/0.14.1`, `generated-c/0.14.1`, summary, trace,
782
+ rule-set, and renderer identities. No Python syntax, primitive operation,
783
+ public policy, helper, runtime failure channel, allocation, ownership, cleanup,
784
+ or C IR node kind was added.
785
+
786
+ Preserved the sealed Phase 14A numeric policy and helper registry exactly.
787
+ Explicit 0.14.0 configuration retains its historical artifacts and placement
788
+ rejections; active sources that select no conditional region retain predecessor
789
+ generated-C bytes and output fingerprints. General exceptions, heap objects,
790
+ dynamic dispatch, closures, generators, async behavior, context cleanup, and
791
+ the broader class model remain excluded.
792
+
793
+ ## 0.14.0 — Phase 14A bounded integer floor arithmetic
794
+
795
+ Status: Phase 14A sealed.
796
+
797
+ Added exact integer `//` and `%` for existing integer-like expressions when
798
+ the divisor is a direct signed integer literal in
799
+ `[-9223372036854775807, -2]` or `[1, 9223372036854775807]`. Zero, negative one,
800
+ `INT64_MIN`, Boolean, floating, dynamic, folded, calculated, and out-of-range
801
+ divisors reject deterministically.
802
+
803
+ Added separate numeric analysis and lowering, `fact-table/0.14` numeric
804
+ operation facts, the `phase14.numeric.floor_arithmetic` RulePlan family,
805
+ `conversion-plan/0.14`, `c-ir/0.14`, `generated-c/0.14`, and 0.14 summary and
806
+ decision-trace identities. The active numeric policy is
807
+ `phase14-proved-floor-arithmetic-v0.14`.
808
+
809
+ Activated the frozen `pycf.i64.floor_div@1.0.0` and
810
+ `pycf.i64.floor_mod@1.0.0` Phase 10 assets without changing their registry or
811
+ asset fingerprints. Each occurrence selects exactly one helper, and the
812
+ registry emits each selected helper once. Deterministic signed-64 temporaries
813
+ preserve left-to-right, exactly-once operand evaluation.
814
+
815
+ The admitted divisor proof excludes C11 division by zero and
816
+ `INT64_MIN / -1`; no runtime failure channel, exception emulation,
817
+ arbitrary-precision runtime, allocation, or cleanup was added. Mathematical
818
+ fixtures close Python floor quotient, divisor-sign remainder, and the division
819
+ identity across the supported sign and boundary cases.
820
+
821
+ Preserved exact explicit Phase 13 conversion behavior and the unchanged module,
822
+ record, container, workspace, no-host-discovery, and source-only product
823
+ boundaries. Generated C was not compiled, linked, loaded, or executed.
824
+
825
+ Phase 14A is sealed independently. Broader Phase 14 remains closed pending a
826
+ new decision and explicit approval. Phase 15 has not started.
827
+
828
+ ## 0.13.0 — Phase 13 static records
829
+
830
+ Status: promoted.
831
+
832
+ Added a deliberately narrow immutable-record subset expressed with one exact
833
+ top-level Python class shape. Accepted records contain 1–64 ordered `int`,
834
+ `float`, or `bool` fields, an exact structural `__init__`, direct fresh
835
+ function-local positional construction, and direct statically resolved field
836
+ reads.
837
+
838
+ Added `fact-table/0.13` record definitions, fields, initializers, instances,
839
+ bindings, and accesses; seven record RulePlans; `conversion-plan/0.13`; record
840
+ nodes in `c-ir/0.13`; `generated-c/0.13`; and 0.13 summary and decision-trace
841
+ identities. The active record policy is
842
+ `phase13-immutable-automatic-records-v0.13`.
843
+
844
+ Record lowering emits deterministic named C `typedef struct` declarations and
845
+ fully initialized `const` aggregates in automatic function storage. Arguments
846
+ are evaluated left to right and once before construction; field reads use
847
+ direct member access. No record helper or runtime is selected.
848
+
849
+ General methods, inheritance and the broader Python object model remain
850
+ unsupported. Records cannot be mutated, aliased, rebound, copied, escaped,
851
+ passed, returned, stored in containers, imported, or used across modules.
852
+ There is no heap allocation, null state, ownership transfer, or cleanup.
853
+
854
+ Adversarial hardening added binding-identity constructor resolution,
855
+ read-after-construction and complete fresh-local proofs, dunder-field and
856
+ annotation-builtin collision rejection, correct companion-module diagnostics,
857
+ cooperative record cancellation, exact const/member and field-type C IR
858
+ validation, manifest-bound provenance, and independent serialized record-fact
859
+ cross-validation. Historical `fact-table/0.12` module records retain their
860
+ exact shape; record linkage remains in Phase 13 evidence.
861
+
862
+ An initial working candidate was abandoned when an external compile-only
863
+ review triggered the declared no-toolchain rollback rule. The release candidate
864
+ was reseeded from a newly authenticated 0.12.2 extraction; the incident remains
865
+ recorded and is not rewritten as passing evidence.
866
+
867
+ Preserved the Phase 12 function-import profile, Phase 11 containers, Phase 10
868
+ helper registry, source-only product boundary, and PyCForge workspace safety
869
+ model. Explicit historical Phase 12 requests retain their 0.12 identities, and
870
+ class-free Phase 13 conversions preserve predecessor generated-C bytes.
871
+
872
+ The sealed 0.12.2 predecessor was authenticated before Phase 13 edits. Windows
873
+ 11 laptop testing remains planned user feedback after all phases; this release
874
+ does not claim Windows execution. Phase 14 has not started.
875
+
876
+ ## 0.12.2 — PyCForge workspace hardening
877
+
878
+ Corrected conversion-generation retirement, Save As destination validation,
879
+ unexpected worker failure recovery, visible module identity commits,
880
+ document-reorder controls, Unicode replacement navigation, keyboard access,
881
+ and failure-tolerant versioned presentation settings without changing the
882
+ sealed Phase 12 converter.
883
+
884
+ ## 0.12.1 — PyCForge workspace
885
+
886
+ Introduced the optional professional PyQt5 workspace over the sealed Phase 12
887
+ converter, including explicit bundle navigation, Python and immutable C
888
+ editors, diagnostics and mappings, stale-output protection, and atomic linked-C
889
+ saving.
890
+
891
+ ## 0.12.0 — Phase 12 explicit module bundles
892
+
893
+ Introduced the bounded 1–64-document SourceBundle profile, exact compile-time
894
+ direct-function imports, deterministic dependency ordering, and one generated
895
+ C translation unit without host module discovery or runtime initialization.