abstractframework 0.4.0__tar.gz → 0.4.2__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 (192) hide show
  1. {abstractframework-0.4.0 → abstractframework-0.4.2}/CHANGELOG.md +90 -1
  2. {abstractframework-0.4.0/abstractframework.egg-info → abstractframework-0.4.2}/PKG-INFO +19 -19
  3. {abstractframework-0.4.0 → abstractframework-0.4.2}/README.md +9 -9
  4. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework/__init__.py +6 -6
  5. {abstractframework-0.4.0 → abstractframework-0.4.2/abstractframework.egg-info}/PKG-INFO +19 -19
  6. abstractframework-0.4.2/abstractframework.egg-info/requires.txt +21 -0
  7. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/api.md +4 -4
  8. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/faq.md +1 -1
  9. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/install.md +42 -16
  10. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/implementation-plan.md +1 -1
  11. {abstractframework-0.4.0 → abstractframework-0.4.2}/llms-full.txt +75 -49
  12. {abstractframework-0.4.0 → abstractframework-0.4.2}/llms.txt +2 -2
  13. {abstractframework-0.4.0 → abstractframework-0.4.2}/pyproject.toml +10 -10
  14. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/install.sh +382 -18
  15. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/tests/test_install_user_path.sh +186 -1
  16. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/uninstall.sh +10 -3
  17. abstractframework-0.4.0/abstractframework.egg-info/requires.txt +0 -21
  18. {abstractframework-0.4.0 → abstractframework-0.4.2}/LICENSE +0 -0
  19. {abstractframework-0.4.0 → abstractframework-0.4.2}/MANIFEST.in +0 -0
  20. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework/__main__.py +0 -0
  21. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework/cli.py +0 -0
  22. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework/install_manifest.py +0 -0
  23. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework/py.typed +0 -0
  24. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework.egg-info/SOURCES.txt +0 -0
  25. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework.egg-info/dependency_links.txt +0 -0
  26. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework.egg-info/entry_points.txt +0 -0
  27. {abstractframework-0.4.0 → abstractframework-0.4.2}/abstractframework.egg-info/top_level.txt +0 -0
  28. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/README.md +0 -0
  29. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0001-layered-architecture.md +0 -0
  30. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0002-effect-system-design.md +0 -0
  31. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0003-tool-system-architecture.md +0 -0
  32. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0004-observability-strategy.md +0 -0
  33. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0005-memory-architecture.md +0 -0
  34. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0006-durable-tool-execution.md +0 -0
  35. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  36. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0008-token-terminology.md +0 -0
  37. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  38. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  39. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  40. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0012-portable-workflowartifact.md +0 -0
  41. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  42. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  43. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  44. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  45. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  46. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  47. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  48. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  49. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  50. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  51. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  52. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  53. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  54. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  55. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  56. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  57. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  58. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  59. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  60. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  61. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  62. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  63. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0035-capability-routing-defaults.md +0 -0
  64. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  65. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  66. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  67. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/README.md +0 -0
  68. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/memory-recall-levels.md +0 -0
  69. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  70. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  71. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  72. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  73. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  74. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  75. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  76. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  77. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/agent-sessions.md +0 -0
  78. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/architecture.md +0 -0
  79. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/claude/README.md +0 -0
  80. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/claude/abstractframework-fit.md +0 -0
  81. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/claude/claude-skills-overview.md +0 -0
  82. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/claude/claude-skills-sources.md +0 -0
  83. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/claude/claude-skills-top-20.md +0 -0
  84. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/comparisons/README.md +0 -0
  85. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/configuration.md +0 -0
  86. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/getting-started.md +0 -0
  87. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/glossary.md +0 -0
  88. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/LANDING.md +0 -0
  89. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/README.md +0 -0
  90. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/agent-skills.md +0 -0
  91. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/agent-vs-llm.md +0 -0
  92. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/agora-workflow-agent.md +0 -0
  93. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/apple-local-gateway-flow.md +0 -0
  94. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/capability-plugins.md +0 -0
  95. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/capability-routing-defaults.md +0 -0
  96. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/deployment-iphone.md +0 -0
  97. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/deployment-topologies.md +0 -0
  98. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/deployment-web.md +0 -0
  99. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/email-integration.md +0 -0
  100. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/event-inbox-agent.md +0 -0
  101. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/flow-and-kg-memory.md +0 -0
  102. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/gateway-security.md +0 -0
  103. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/headless-swarm.md +0 -0
  104. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/process-manager-env-vars.md +0 -0
  105. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/prompt-caching.md +0 -0
  106. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/runtime-artifacts.md +0 -0
  107. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/runtime-scope.md +0 -0
  108. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/scheduled-workflows.md +0 -0
  109. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/summoned-entities.md +0 -0
  110. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/telegram-integration.md +0 -0
  111. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/guide/workflow-bundles.md +0 -0
  112. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/README.md +0 -0
  113. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/components.md +0 -0
  114. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/operations-and-support.md +0 -0
  115. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/release-and-manifest.md +0 -0
  116. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/security-and-os-blocks.md +0 -0
  117. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/strategy.md +0 -0
  118. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/installers/user-journeys.md +0 -0
  119. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/prompts/agora-collaboration.md +0 -0
  120. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/README.md +0 -0
  121. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/email-inbox-agent.md +0 -0
  122. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/gateway-first-local-dev.md +0 -0
  123. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/offline-coding-assistant.md +0 -0
  124. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/phone-thin-client.md +0 -0
  125. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/specialized-agent-flow.md +0 -0
  126. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/telegram-permanent-contact.md +0 -0
  127. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  128. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/README.md +0 -0
  129. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  130. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  131. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  132. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  133. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/claude-agent-skills-overview.md +0 -0
  134. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/claude-agent-skills-sources.md +0 -0
  135. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/skills/claude-agent-skills-top-20.md +0 -0
  136. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/troubleshooting.md +0 -0
  137. {abstractframework-0.4.0 → abstractframework-0.4.2}/docs/workspace-scripts.md +0 -0
  138. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/af-local.sh +0 -0
  139. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/af.sh +0 -0
  140. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/agora_react_flow_smoke.py +0 -0
  141. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/assistant-local.sh +0 -0
  142. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/assistant.sh +0 -0
  143. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/build.sh +0 -0
  144. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/cache_probe_local_backends.py +0 -0
  145. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/cache_steer_repl.py +0 -0
  146. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/check_identity_sync.py +0 -0
  147. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/clone.sh +0 -0
  148. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/code-local.sh +0 -0
  149. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/code.sh +0 -0
  150. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/commit.sh +0 -0
  151. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/console-local.sh +0 -0
  152. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/console.sh +0 -0
  153. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/core_operator_drive.py +0 -0
  154. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/deps.sh +0 -0
  155. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/entity-local.sh +0 -0
  156. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/entity.sh +0 -0
  157. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/event_inbox_flow_smoke.py +0 -0
  158. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/flow-local.sh +0 -0
  159. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/flow.sh +0 -0
  160. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/gateway-flow-local.sh +0 -0
  161. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/gateway-flow.sh +0 -0
  162. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/gateway-local.sh +0 -0
  163. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/gateway.sh +0 -0
  164. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/gen_llms_full.py +0 -0
  165. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/headless_fleet_bridge.py +0 -0
  166. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/headless_fleet_demo.py +0 -0
  167. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/headless_steer_repl.py +0 -0
  168. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/lib/af_inventory.py +0 -0
  169. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/lib/af_stack.sh +0 -0
  170. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/lib/af_supervisor.sh +0 -0
  171. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/lib/apps_common.sh +0 -0
  172. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/lib/build_macos_installer.sh +0 -0
  173. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/lib/gateway_user_tokens.py +0 -0
  174. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/lib/repo_groups.sh +0 -0
  175. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/meet_castor.sh +0 -0
  176. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/observer-local.sh +0 -0
  177. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/observer.sh +0 -0
  178. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/plan_walkthrough.py +0 -0
  179. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/pull.sh +0 -0
  180. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/push.sh +0 -0
  181. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/spawn_demo_agent.sh +0 -0
  182. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/start-local.sh +0 -0
  183. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/start.sh +0 -0
  184. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/status.sh +0 -0
  185. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/steer_repl.py +0 -0
  186. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/tests/test_af_supervisor.sh +0 -0
  187. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/tests/test_inventory.sh +0 -0
  188. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/tests/test_repo_scripts.sh +0 -0
  189. {abstractframework-0.4.0 → abstractframework-0.4.2}/scripts/visit_resume_cache_probe.py +0 -0
  190. {abstractframework-0.4.0 → abstractframework-0.4.2}/setup.cfg +0 -0
  191. {abstractframework-0.4.0 → abstractframework-0.4.2}/tests/test_install_profiles.py +0 -0
  192. {abstractframework-0.4.0 → abstractframework-0.4.2}/tests/test_llms_full.py +0 -0
@@ -4,6 +4,96 @@ All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.4.2] - 2026-09-27
8
+
9
+ A patch release for the uninstaller and two package updates.
10
+
11
+ ### Fixed
12
+
13
+ - **Uninstall stops the whole gateway before deleting.** Removing the login item does not wait for
14
+ the gateway to exit, and some of its children (an entity's own-time loop, model downloads, the
15
+ apps it started, the tray) kept writing into the data dir, so the uninstall failed with
16
+ "Directory not empty". The uninstaller now waits up to 20 s for the whole gateway process tree to
17
+ exit, then stops what is left and says which processes it stopped.
18
+ - **Every deletion is verified.** Each location is deleted, retried while something re-creates it,
19
+ then checked; a folder that cannot be deleted (or comes back) stops the uninstaller with a
20
+ listing of what remains and the programs holding it. The failure text advises running the
21
+ uninstaller again, never the installer.
22
+ - **`--purge` removes all your local data**: besides the gateway data dir, its login-item logs and
23
+ its download cache, it removes the Assistant's sessions, snapshots and preferences
24
+ (`~/.abstractassistant`, the macOS preferences file and the cached preferences) and
25
+ AbstractCode's login and preferences (`~/.abstractcode`). Model weights and shared caches are
26
+ kept and named. The purge question names what it deletes; `--print` lists each command; a
27
+ second run prints "nothing to do". `install.sh` accepts `--yes`.
28
+ - **Uninstall safety**: `--purge` refuses (exit 2, nothing changed) a data dir that is the root,
29
+ your home folder or any folder above it, and a hand-given `--data-dir` that is not a gateway data
30
+ dir (for example `~/Library` or `~/Documents`). A process is stopped only when it runs from this
31
+ install's tool environment or is one of this data dir's apps; a stale pid file is left alone.
32
+ `--data-dir` is made absolute once, and paths are resolved before the mount guard
33
+ (`/tmp` vs `/private/tmp`, a linked home).
34
+ - The one-line uninstaller and the installer package's "Uninstall AbstractFramework.command" both
35
+ carry these fixes. Known Linux limits: BusyBox `ps` (Alpine) lacks the columns the process scan
36
+ reads, so only the systemd stop applies there; a relative `XDG_CACHE_HOME` is used as given.
37
+
38
+ ### Changed (pins)
39
+
40
+ - **abstractagent 0.3.16** (was 0.3.15): the announced-tool-use text heuristic added in 0.3.15 is
41
+ removed; the loops behave as in 0.3.14 plus the CodeAct/MemAct crash fix from 0.3.15.
42
+ - **abstractassistant 0.7.0** (was 0.6.1): the session list and transcripts come from the gateway;
43
+ local files are a rebuildable cache. The first launch moves sessions the gateway does not know to
44
+ `sessions-legacy/` and deletes nothing. The list shows your own sessions by default, with an
45
+ "All gateway sessions" toggle.
46
+ - The pins apply to the base install and to the `apple` / `gpu` extras
47
+ (`abstractassistant[apple|gpu]==0.7.0`). Unchanged: abstractgateway 0.5.1, abstractcore 2.16.1,
48
+ AbstractRuntime 0.5.1, abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5,
49
+ abstractvoice 0.11.4, abstractvision 0.3.29, abstractmusic 0.1.15, the browser apps, `abstractcode`
50
+ 0.6.0 and `abstractgateway-console` 0.9.0.
51
+ - Container images are unchanged: `ghcr.io/lpalbou/abstractgateway:0.5.1` and
52
+ `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
53
+
54
+ ## [0.4.1] - 2026-09-26
55
+
56
+ A patch release for local MLX models and long-running flows.
57
+
58
+ ### Changed (pins)
59
+
60
+ - **AbstractRuntime 0.5.1** (was 0.5.0): a wait is resumed at most once. A flow whose Agent or
61
+ subflow node waits on a child could run that child twice when the child finished exactly as the
62
+ runner ticked, doubling the run's time and tokens; a racing second resume is refused with a
63
+ typed `StaleResumeError`.
64
+ - **abstractcore 2.16.1** (was 2.16.0): MLX prompts are rendered by the model's own chat template
65
+ on every MLX lane (mlx-lm, native MTP, vision, JSON-constrained). Earlier turns keep their tool
66
+ calls, tool results are rendered as the template renders them, and the generation prompt opens
67
+ thinking when the template does; agent loops on Qwen3.x MLX builds with thinking on used to stop
68
+ at the third iteration with a one-sentence announcement and no tool call. A malformed tool-call
69
+ argument in the history never disables that renderer, and each response's metadata names the
70
+ renderer used. Prompt-cache artifacts rendered by the previous renderer are rebuilt, not reused.
71
+ - **abstractagent 0.3.15** (was 0.3.14): fixes a crash in 0.3.13 and 0.3.14 (CodeAct and MemAct
72
+ raised `NameError` when a delegated agent's profile set `thinking`). A reply that announces tool
73
+ use without calling a tool, or whose tool calls could not run, is re-prompted once with the
74
+ failed reply quoted, and ends with `stop_reason.code = "no_tool_call"` rather than being
75
+ published as the answer; the long-reply nudge is bounded to once per step.
76
+ - **abstractgateway 0.5.1** (was 0.5.0): requires the three packages above; when two runner paths
77
+ race to resume the same parent, the losing attempt is logged at debug level instead of as an
78
+ error.
79
+ - **abstractassistant 0.6.1** (was 0.6.0): the Settings window opens inside the screen; the
80
+ default screen edge gap is 12 px.
81
+ - The pins apply to the base install and to the `apple` / `gpu` extras
82
+ (`abstractgateway[apple|gpu]==0.5.1`, `abstractassistant[apple|gpu]==0.6.1`); the bootstrap
83
+ scripts install `abstractgateway[<profile>,tray]==0.5.1`. Unchanged: abstractskill 0.3.0,
84
+ AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvoice 0.11.4, abstractvision 0.3.29,
85
+ abstractmusic 0.1.15, the browser apps (flow 0.3.21, code 0.5.0, observer 0.1.13,
86
+ continuum 0.3.2, entity 0.2.2), `abstractcode` 0.6.0 and `abstractgateway-console` 0.9.0.
87
+ - Container images released with it: `ghcr.io/lpalbou/abstractgateway:0.5.1` (and `0.5.1-gpu`)
88
+ and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
89
+
90
+ ### Changed
91
+
92
+ - The dev build (`scripts/build.sh`) installs the sibling kit packages an app takes from npm
93
+ (app-server, ui-kit, panel-chat, monitors) from local packs of the checkouts, so an app builds
94
+ locally even when its kit floor is ahead of the registry. The manifests and lockfiles are left
95
+ untouched.
96
+
7
97
  ## [0.4.0] - 2026-09-26
8
98
 
9
99
  A feature release of the whole framework. The gateway picks the agent workflow for AbstractCode
@@ -14,7 +104,6 @@ whole gateway process. This release replaces the 0.3.3 matrix, which was prepare
14
104
  published.
15
105
 
16
106
  ### Changed (pins)
17
- - The dev build (`scripts/build.sh`) installs the sibling kit packages an app takes from npm (app-server, ui-kit, panel-chat, monitors) from local packs of the checkouts, so an app builds locally even when its kit floor is ahead of the registry. The manifests and lockfiles are left untouched.
18
107
 
19
108
  - **abstractgateway 0.5.0** (was 0.4.3 on PyPI): the default agent workflow setting
20
109
  (`agents.default_workflow`, used by AbstractCode and the Assistant, changeable in the console or
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
6
6
  License: MIT
@@ -23,11 +23,11 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.5.0
27
- Requires-Dist: abstractassistant==0.6.0
28
- Requires-Dist: abstractcore==2.16.0
29
- Requires-Dist: AbstractRuntime==0.5.0
30
- Requires-Dist: abstractagent==0.3.14
26
+ Requires-Dist: abstractgateway==0.5.1
27
+ Requires-Dist: abstractassistant==0.7.0
28
+ Requires-Dist: abstractcore==2.16.1
29
+ Requires-Dist: AbstractRuntime==0.5.1
30
+ Requires-Dist: abstractagent==0.3.16
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
33
33
  Requires-Dist: abstractsemantics==0.0.5
@@ -35,11 +35,11 @@ Requires-Dist: abstractvoice==0.11.4
35
35
  Requires-Dist: abstractvision==0.3.29
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.5.0; extra == "apple"
39
- Requires-Dist: abstractassistant[apple]==0.6.0; platform_system == "Darwin" and extra == "apple"
38
+ Requires-Dist: abstractgateway[apple]==0.5.1; extra == "apple"
39
+ Requires-Dist: abstractassistant[apple]==0.7.0; platform_system == "Darwin" and extra == "apple"
40
40
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.5.0; extra == "gpu"
42
- Requires-Dist: abstractassistant[gpu]==0.6.0; extra == "gpu"
41
+ Requires-Dist: abstractgateway[gpu]==0.5.1; extra == "gpu"
42
+ Requires-Dist: abstractassistant[gpu]==0.7.0; extra == "gpu"
43
43
  Dynamic: license-file
44
44
 
45
45
  # AbstractFramework
@@ -190,7 +190,7 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
190
190
  ```
191
191
 
192
192
  Container images are published for the gateway and the AbstractCore server:
193
- `ghcr.io/lpalbou/abstractgateway:0.5.0` and `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
193
+ `ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
194
194
 
195
195
  For artifact and runtime-resource investigation, see
196
196
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -336,7 +336,7 @@ pip install "abstractframework[gpu]"
336
336
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
337
337
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
338
338
 
339
- ### Release matrix (abstractframework 0.4.0)
339
+ ### Release matrix (abstractframework 0.4.2)
340
340
 
341
341
  `abstractframework` pins every Python package with `==`, so one version of the
342
342
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -345,11 +345,11 @@ and tested together.
345
345
 
346
346
  | Registry | Package | Version |
347
347
  |---|---|---|
348
- | PyPI | `abstractgateway` | 0.5.0 |
349
- | PyPI | `abstractassistant` | 0.6.0 |
350
- | PyPI | `abstractcore` | 2.16.0 |
351
- | PyPI | `AbstractRuntime` | 0.5.0 |
352
- | PyPI | `abstractagent` | 0.3.14 |
348
+ | PyPI | `abstractgateway` | 0.5.1 |
349
+ | PyPI | `abstractassistant` | 0.7.0 |
350
+ | PyPI | `abstractcore` | 2.16.1 |
351
+ | PyPI | `AbstractRuntime` | 0.5.1 |
352
+ | PyPI | `abstractagent` | 0.3.16 |
353
353
  | PyPI | `abstractskill` | 0.3.0 |
354
354
  | PyPI | `AbstractMemory` | 0.3.0 |
355
355
  | PyPI | `abstractsemantics` | 0.0.5 |
@@ -365,8 +365,8 @@ and tested together.
365
365
  | crates.io | `abstractgateway-console` | 0.9.0 |
366
366
  | crates.io | `abstractcore-console` | 0.2.0 |
367
367
  | crates.io | `abstracttui` | 0.6.0 |
368
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.0 (`gpu-latest` / `<version>-gpu` experimental) |
369
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.0 |
368
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
369
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
370
370
 
371
371
  Optional add-ons that are not part of any profile install separately:
372
372
  `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
@@ -146,7 +146,7 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
146
146
  ```
147
147
 
148
148
  Container images are published for the gateway and the AbstractCore server:
149
- `ghcr.io/lpalbou/abstractgateway:0.5.0` and `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
149
+ `ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
150
150
 
151
151
  For artifact and runtime-resource investigation, see
152
152
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -292,7 +292,7 @@ pip install "abstractframework[gpu]"
292
292
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
293
293
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
294
294
 
295
- ### Release matrix (abstractframework 0.4.0)
295
+ ### Release matrix (abstractframework 0.4.2)
296
296
 
297
297
  `abstractframework` pins every Python package with `==`, so one version of the
298
298
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -301,11 +301,11 @@ and tested together.
301
301
 
302
302
  | Registry | Package | Version |
303
303
  |---|---|---|
304
- | PyPI | `abstractgateway` | 0.5.0 |
305
- | PyPI | `abstractassistant` | 0.6.0 |
306
- | PyPI | `abstractcore` | 2.16.0 |
307
- | PyPI | `AbstractRuntime` | 0.5.0 |
308
- | PyPI | `abstractagent` | 0.3.14 |
304
+ | PyPI | `abstractgateway` | 0.5.1 |
305
+ | PyPI | `abstractassistant` | 0.7.0 |
306
+ | PyPI | `abstractcore` | 2.16.1 |
307
+ | PyPI | `AbstractRuntime` | 0.5.1 |
308
+ | PyPI | `abstractagent` | 0.3.16 |
309
309
  | PyPI | `abstractskill` | 0.3.0 |
310
310
  | PyPI | `AbstractMemory` | 0.3.0 |
311
311
  | PyPI | `abstractsemantics` | 0.0.5 |
@@ -321,8 +321,8 @@ and tested together.
321
321
  | crates.io | `abstractgateway-console` | 0.9.0 |
322
322
  | crates.io | `abstractcore-console` | 0.2.0 |
323
323
  | crates.io | `abstracttui` | 0.6.0 |
324
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.0 (`gpu-latest` / `<version>-gpu` experimental) |
325
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.0 |
324
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
325
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
326
326
 
327
327
  Optional add-ons that are not part of any profile install separately:
328
328
  `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
@@ -10,22 +10,22 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.4.0"
13
+ __version__ = "0.4.2"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
17
17
  RELEASE_VERSIONS: dict[str, str] = {
18
- "abstractcore": "2.16.0",
19
- "abstractruntime": "0.5.0",
20
- "abstractagent": "0.3.14",
21
- "abstractgateway": "0.5.0",
18
+ "abstractcore": "2.16.1",
19
+ "abstractruntime": "0.5.1",
20
+ "abstractagent": "0.3.16",
21
+ "abstractgateway": "0.5.1",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
25
25
  "abstractvoice": "0.11.4",
26
26
  "abstractvision": "0.3.29",
27
27
  "abstractmusic": "0.1.15",
28
- "abstractassistant": "0.6.0",
28
+ "abstractassistant": "0.7.0",
29
29
  }
30
30
 
31
31
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: Unified installer and documentation hub for the AbstractFramework ecosystem
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractframework.ai>
6
6
  License: MIT
@@ -23,11 +23,11 @@ Classifier: Typing :: Typed
23
23
  Requires-Python: >=3.10
24
24
  Description-Content-Type: text/markdown
25
25
  License-File: LICENSE
26
- Requires-Dist: abstractgateway==0.5.0
27
- Requires-Dist: abstractassistant==0.6.0
28
- Requires-Dist: abstractcore==2.16.0
29
- Requires-Dist: AbstractRuntime==0.5.0
30
- Requires-Dist: abstractagent==0.3.14
26
+ Requires-Dist: abstractgateway==0.5.1
27
+ Requires-Dist: abstractassistant==0.7.0
28
+ Requires-Dist: abstractcore==2.16.1
29
+ Requires-Dist: AbstractRuntime==0.5.1
30
+ Requires-Dist: abstractagent==0.3.16
31
31
  Requires-Dist: abstractskill==0.3.0
32
32
  Requires-Dist: AbstractMemory==0.3.0
33
33
  Requires-Dist: abstractsemantics==0.0.5
@@ -35,11 +35,11 @@ Requires-Dist: abstractvoice==0.11.4
35
35
  Requires-Dist: abstractvision==0.3.29
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.5.0; extra == "apple"
39
- Requires-Dist: abstractassistant[apple]==0.6.0; platform_system == "Darwin" and extra == "apple"
38
+ Requires-Dist: abstractgateway[apple]==0.5.1; extra == "apple"
39
+ Requires-Dist: abstractassistant[apple]==0.7.0; platform_system == "Darwin" and extra == "apple"
40
40
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.5.0; extra == "gpu"
42
- Requires-Dist: abstractassistant[gpu]==0.6.0; extra == "gpu"
41
+ Requires-Dist: abstractgateway[gpu]==0.5.1; extra == "gpu"
42
+ Requires-Dist: abstractassistant[gpu]==0.7.0; extra == "gpu"
43
43
  Dynamic: license-file
44
44
 
45
45
  # AbstractFramework
@@ -190,7 +190,7 @@ ABSTRACTGATEWAY_AUTH_TOKEN=<token> abstractgateway-console --url http://127.0.0.
190
190
  ```
191
191
 
192
192
  Container images are published for the gateway and the AbstractCore server:
193
- `ghcr.io/lpalbou/abstractgateway:0.5.0` and `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
193
+ `ghcr.io/lpalbou/abstractgateway:0.5.1` and `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
194
194
 
195
195
  For artifact and runtime-resource investigation, see
196
196
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -336,7 +336,7 @@ pip install "abstractframework[gpu]"
336
336
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
337
337
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
338
338
 
339
- ### Release matrix (abstractframework 0.4.0)
339
+ ### Release matrix (abstractframework 0.4.2)
340
340
 
341
341
  `abstractframework` pins every Python package with `==`, so one version of the
342
342
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -345,11 +345,11 @@ and tested together.
345
345
 
346
346
  | Registry | Package | Version |
347
347
  |---|---|---|
348
- | PyPI | `abstractgateway` | 0.5.0 |
349
- | PyPI | `abstractassistant` | 0.6.0 |
350
- | PyPI | `abstractcore` | 2.16.0 |
351
- | PyPI | `AbstractRuntime` | 0.5.0 |
352
- | PyPI | `abstractagent` | 0.3.14 |
348
+ | PyPI | `abstractgateway` | 0.5.1 |
349
+ | PyPI | `abstractassistant` | 0.7.0 |
350
+ | PyPI | `abstractcore` | 2.16.1 |
351
+ | PyPI | `AbstractRuntime` | 0.5.1 |
352
+ | PyPI | `abstractagent` | 0.3.16 |
353
353
  | PyPI | `abstractskill` | 0.3.0 |
354
354
  | PyPI | `AbstractMemory` | 0.3.0 |
355
355
  | PyPI | `abstractsemantics` | 0.0.5 |
@@ -365,8 +365,8 @@ and tested together.
365
365
  | crates.io | `abstractgateway-console` | 0.9.0 |
366
366
  | crates.io | `abstractcore-console` | 0.2.0 |
367
367
  | crates.io | `abstracttui` | 0.6.0 |
368
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.0 (`gpu-latest` / `<version>-gpu` experimental) |
369
- | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.0 |
368
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.5.1 (`gpu-latest` / `<version>-gpu` experimental) |
369
+ | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.16.1 |
370
370
 
371
371
  Optional add-ons that are not part of any profile install separately:
372
372
  `pip install abstract3d` (0.3.1) and `pip install abstractcamera` (0.2.0). `abstractskill` (pinned above)
@@ -0,0 +1,21 @@
1
+ abstractgateway==0.5.1
2
+ abstractassistant==0.7.0
3
+ abstractcore==2.16.1
4
+ AbstractRuntime==0.5.1
5
+ abstractagent==0.3.16
6
+ abstractskill==0.3.0
7
+ AbstractMemory==0.3.0
8
+ abstractsemantics==0.0.5
9
+ abstractvoice==0.11.4
10
+ abstractvision==0.3.29
11
+ abstractmusic==0.1.15
12
+
13
+ [apple]
14
+ abstractgateway[apple]==0.5.1
15
+
16
+ [apple:platform_system == "Darwin"]
17
+ abstractassistant[apple]==0.7.0
18
+
19
+ [gpu]
20
+ abstractgateway[gpu]==0.5.1
21
+ abstractassistant[gpu]==0.7.0
@@ -55,14 +55,14 @@ The response type returned by `llm.generate(...)`.
55
55
 
56
56
  ### `__version__`
57
57
 
58
- The meta-package version (`0.4.0` for this release).
58
+ The meta-package version (`0.4.2` for this release).
59
59
 
60
60
  ### `RELEASE_VERSIONS`
61
61
 
62
- Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.4.0:
63
- `abstractcore` 2.16.0, `abstractruntime` 0.5.0, `abstractagent` 0.3.14, `abstractgateway` 0.5.0,
62
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.4.2:
63
+ `abstractcore` 2.16.1, `abstractruntime` 0.5.1, `abstractagent` 0.3.16, `abstractgateway` 0.5.1,
64
64
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.11.4, `abstractvision` 0.3.29,
65
- `abstractmusic` 0.1.15, `abstractassistant` 0.6.0.
65
+ `abstractmusic` 0.1.15, `abstractassistant` 0.7.0.
66
66
 
67
67
  ### `PACKAGE_DISTRIBUTIONS`
68
68
 
@@ -34,7 +34,7 @@ No.
34
34
  | Everything at compatible versions | `pip install abstractframework` |
35
35
  | A browser app against an existing gateway | `npx @abstractframework/<flow\|code\|observer\|continuum\|entity>` |
36
36
  | A terminal client | `cargo install abstractcode`, `cargo install abstractgateway-console` or `cargo install abstractcore-console` |
37
- | A container deployment | `ghcr.io/lpalbou/abstractgateway:0.5.0` |
37
+ | A container deployment | `ghcr.io/lpalbou/abstractgateway:0.5.1` |
38
38
 
39
39
  See [Install AbstractFramework](install.md) for the Light / Apple / GPU chooser. Light is
40
40
  remote-first, not reduced-functionality: multimodal and embeddings still work through remote or
@@ -104,15 +104,41 @@ curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scri
104
104
 
105
105
  It asks before removing anything, then asks two more questions, both defaulting to no:
106
106
 
107
- - **Also delete your AbstractFramework data** (settings, users, chats, run history)? This cannot be
108
- undone.
107
+ - **Also delete your AbstractFramework data**? This cannot be undone. It deletes:
108
+
109
+ | What | macOS | Linux |
110
+ |---|---|---|
111
+ | Gateway data: settings, users, chats, run history, artifacts, memory, the tray's preferences | `~/Library/Application Support/AbstractGateway` | `~/.local/share/abstractgateway` |
112
+ | The login item's logs | `~/Library/Logs/AbstractGateway` | (in the data dir) |
113
+ | The gateway's download cache (engine installers) | `~/Library/Caches/AbstractGateway` | `~/.cache/abstractgateway` |
114
+ | The Assistant's sessions, snapshots and preferences | `~/.abstractassistant`, `~/Library/Logs/Assistant/abstractassistant-*` | `~/.abstractassistant` |
115
+ | AbstractCode's login and preferences | `~/.abstractcode`, `~/.abstractcode-tui` | same |
116
+
117
+ It keeps model weights and shared caches: `~/.cache/huggingface`, `~/.abstractcore` (its
118
+ config and its downloaded models), `~/.abstractframework`, `~/.cache/abstractvoice`, and the
119
+ models of LM Studio and Ollama. Delete those by hand if you want them gone.
109
120
  - **Also remove uv, its Python and its download cache** (about 2.5 GB)? Asked only when the
110
121
  installer is what added uv; answer no if you use uv for anything else.
111
122
 
112
- It always removes the login item, stops AbstractFramework and removes the gateway. It keeps Ollama
113
- and LM Studio (they have their own uninstallers) and the one PATH line uv added to your shell
114
- profile. Without questions: `sh uninstall.sh --yes` (keeps data), add `--purge` to delete the data
115
- and `--remove-uv` to remove uv. Windows: `install.ps1 -Uninstall [-Purge]`.
123
+ It always removes the login item, stops AbstractFramework and removes the gateway (and the
124
+ Assistant, which lives in the gateway's environment). Stopping means the whole gateway process
125
+ tree: after the login item is removed it waits up to 20 seconds for every gateway process to exit
126
+ (the server, the tray, an entity's own-time loop, model downloads, the apps it started), then
127
+ stops the rest, and says which processes it stopped. It keeps Ollama and LM Studio (they have
128
+ their own uninstallers) and the one PATH line uv added to your shell profile. Without questions:
129
+ `sh uninstall.sh --yes` (keeps data), add `--purge` to delete the data and `--remove-uv` to remove
130
+ uv; `--print` shows every command and changes nothing. Windows: `install.ps1 -Uninstall [-Purge]`.
131
+
132
+ **If a folder cannot be deleted**, the uninstaller stops with an error that names the folder,
133
+ lists what is left in it and the programs that hold files there. Quit those programs (or log
134
+ out and back in); on macOS, a file shown with the `uchg` flag is unlocked with
135
+ `chflags -R nouchg <folder>`. Then run the uninstaller again: it skips what is already gone.
136
+ Each deleted location is checked once more a second later; a program that starts writing there
137
+ again after that is not detected (an uninstaller cannot outwait a writer it does not know).
138
+ A `--data-dir` given by hand is purged only when it holds a gateway file (`bootstrap.env`,
139
+ `gateway.sqlite3`, `auth/users.json`, ...) or the note a previous, interrupted purge left in it
140
+ (`.abstractgateway-purge-incomplete`); the root, your home folder and any folder that
141
+ contains it are always refused (exit 2, nothing changed).
116
142
 
117
143
  ## Advanced: what the installer does
118
144
 
@@ -126,7 +152,7 @@ The Mac package, the `.command` files and the one line all run the same script,
126
152
  "no" is remembered).
127
153
  3. Installs [uv](https://docs.astral.sh/uv/) when it is missing, then Python 3.12 through uv.
128
154
  4. Installs the gateway as an isolated uv tool, pinned to this release:
129
- `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.5.0"`, from prebuilt wheels
155
+ `uv tool install --python 3.12 "abstractgateway[<profile>,tray]==0.5.1"`, from prebuilt wheels
130
156
  only (see [No compiler needed](#no-compiler-needed)), and checks that the command starts
131
157
  (reinstalling it in place when it does not).
132
158
  5. Optionally installs Node.js for the browser apps, terminal tools, Ollama or LM Studio (flags
@@ -214,7 +240,7 @@ models (above), for Ollama, LM Studio or other endpoint engines, or for cloud pr
214
240
  | `--print` | `-Print` (or `-WhatIf`) | Show the plan and every command; change nothing |
215
241
  | `--print-versions` | `-PrintVersions` | Print the pinned gateway, npm app and crate versions, then exit |
216
242
  | `-v`, `--verbose` | — | Show the full output of every command |
217
- | `--uninstall [--purge] [--remove-uv]` | `-Uninstall [-Purge]` | Remove the service and uv tools (purge also deletes the data; `--remove-uv` also removes uv, its Python and cache when the installer added uv) |
243
+ | `--uninstall [--purge] [--remove-uv]` | `-Uninstall [-Purge]` | Stop the gateway process tree, remove the service and uv tools (purge also deletes your data: see [Remove AbstractFramework](#remove-abstractframework); `--remove-uv` also removes uv, its Python and cache when the installer added uv) |
218
244
 
219
245
  Pass options through the one-liner like this:
220
246
 
@@ -231,7 +257,7 @@ curl -LsSf https://raw.githubusercontent.com/lpalbou/AbstractFramework/main/scri
231
257
  ```bash
232
258
  curl -LsSf https://astral.sh/uv/install.sh | sh # Windows: irm https://astral.sh/uv/install.ps1 | iex
233
259
  uv python install 3.12
234
- uv tool install --python 3.12 "abstractgateway[tray]==0.5.0" # [apple,tray] or [gpu,tray] for local engines
260
+ uv tool install --python 3.12 "abstractgateway[tray]==0.5.1" # [apple,tray] or [gpu,tray] for local engines
235
261
  # (add --with and --overrides as shown by `install.sh --print` to avoid compiling)
236
262
  uv tool update-shell # puts ~/.local/bin on PATH; open a new terminal
237
263
  abstractgateway service install --port 8080 # or: abstractgateway serve
@@ -338,8 +364,8 @@ A plain `pip install` of the `apple` or `gpu` profile builds the
338
364
  `aec-audio-processing`) from source, so it needs a C/C++ compiler. The one-line install above
339
365
  does not.
340
366
 
341
- `abstractframework` 0.4.0 pins `abstractgateway==0.5.0`, `abstractassistant==0.6.0`,
342
- `abstractcore==2.16.0`, `AbstractRuntime==0.5.0`, `abstractagent==0.3.14`, `abstractskill==0.3.0`,
367
+ `abstractframework` 0.4.2 pins `abstractgateway==0.5.1`, `abstractassistant==0.7.0`,
368
+ `abstractcore==2.16.1`, `AbstractRuntime==0.5.1`, `abstractagent==0.3.16`, `abstractskill==0.3.0`,
343
369
  `AbstractMemory==0.3.0`, `abstractsemantics==0.0.5`, `abstractvoice==0.11.4`,
344
370
  `abstractvision==0.3.29` and `abstractmusic==0.1.15`. The `apple` and `gpu` extras select
345
371
  `abstractgateway[apple|gpu]` and `abstractassistant[apple|gpu]` at the same versions
@@ -423,10 +449,10 @@ Then run `abstractframework doctor`.
423
449
  The browser apps and the Rust terminal tools are not Python packages, so no profile installs them.
424
450
  Run or install them next to the Python stack:
425
451
 
426
- | Tool | Command | Version released with 0.4.0 |
452
+ | Tool | Command | Version released with 0.4.2 |
427
453
  |---|---|---|
428
- | Gateway web console | built into `abstractgateway`: open the link `abstractgateway serve` prints (`http://127.0.0.1:8080/console#claim=…`) | 0.5.0 |
429
- | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.16.0 |
454
+ | Gateway web console | built into `abstractgateway`: open the link `abstractgateway serve` prints (`http://127.0.0.1:8080/console#claim=…`) | 0.5.1 |
455
+ | Core web console | built into `abstractcore`: open the link `abstractcore serve` prints (`http://127.0.0.1:8000/console#claim=…`) | 2.16.1 |
430
456
  | Core terminal console | `cargo install abstractcore-console` (Rust 1.87+), then `abstractcore-console` (uses the `abstractcore` command) | 0.2.0 |
431
457
  | Gateway terminal console | `cargo install abstractgateway-console` (Rust 1.87+), then `abstractgateway-console --url http://127.0.0.1:8080` | 0.9.0 |
432
458
  | Flow Editor | `npx @abstractframework/flow` | 0.3.21 |
@@ -468,7 +494,7 @@ docker run \
468
494
  -v "$PWD/runtime:/data" \
469
495
  -e ABSTRACTGATEWAY_DATA_DIR=/data \
470
496
  -e ABSTRACTGATEWAY_USER_AUTH=1 \
471
- ghcr.io/lpalbou/abstractgateway:0.5.0
497
+ ghcr.io/lpalbou/abstractgateway:0.5.1
472
498
  ```
473
499
 
474
500
  This is the Light container: full framework capabilities through remote/endpoint inference, without
@@ -476,7 +502,7 @@ local MLX/CUDA stacks. On first start it creates `default/admin` and writes the
476
502
  `runtime/auth/bootstrap-admin-token`. Use `ghcr.io/lpalbou/abstractgateway:gpu-latest` only on an
477
503
  NVIDIA host when you explicitly want the local GPU profile (pinned tags are `<version>-gpu`, published on a best-effort basis; this image is
478
504
  experimental). The AbstractCore OpenAI-compatible server is also published as
479
- `ghcr.io/lpalbou/abstractcore-server:2.16.0`.
505
+ `ghcr.io/lpalbou/abstractcore-server:2.16.1`.
480
506
 
481
507
  ## How installs are designed
482
508
 
@@ -19,7 +19,7 @@ comes next.
19
19
 
20
20
  ## Gateway features the scripts use
21
21
 
22
- The pinned gateway (0.5.0) provides all of them. The scripts still detect each one, so an older
22
+ The pinned gateway (0.5.1) provides all of them. The scripts still detect each one, so an older
23
23
  gateway selected with `--pin` falls back as the last column says.
24
24
 
25
25
  | Feature | Command | Without it (older `--pin`) |