abstractframework 0.6.0__tar.gz → 0.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. {abstractframework-0.6.0 → abstractframework-0.6.1}/CHANGELOG.md +59 -0
  2. {abstractframework-0.6.0/abstractframework.egg-info → abstractframework-0.6.1}/PKG-INFO +15 -15
  3. {abstractframework-0.6.0 → abstractframework-0.6.1}/README.md +8 -8
  4. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework/__init__.py +7 -7
  5. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework/install_manifest.py +8 -4
  6. {abstractframework-0.6.0 → abstractframework-0.6.1/abstractframework.egg-info}/PKG-INFO +15 -15
  7. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework.egg-info/requires.txt +6 -6
  8. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/api.md +8 -8
  9. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/automations.md +7 -2
  10. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/faq.md +1 -1
  11. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/getting-started.md +33 -3
  12. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/glossary.md +3 -1
  13. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/install.md +94 -16
  14. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/components.md +2 -2
  15. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/implementation-plan.md +1 -1
  16. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/user-journeys.md +5 -3
  17. {abstractframework-0.6.0 → abstractframework-0.6.1}/llms-full.txt +187 -66
  18. {abstractframework-0.6.0 → abstractframework-0.6.1}/llms.txt +3 -3
  19. {abstractframework-0.6.0 → abstractframework-0.6.1}/pyproject.toml +7 -7
  20. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/check_identity_sync.py +12 -2
  21. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/install.sh +250 -97
  22. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/tests/test_install_user_path.sh +72 -6
  23. {abstractframework-0.6.0 → abstractframework-0.6.1}/tests/test_install_profiles.py +280 -11
  24. {abstractframework-0.6.0 → abstractframework-0.6.1}/LICENSE +0 -0
  25. {abstractframework-0.6.0 → abstractframework-0.6.1}/MANIFEST.in +0 -0
  26. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework/__main__.py +0 -0
  27. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework/cli.py +0 -0
  28. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework/py.typed +0 -0
  29. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework.egg-info/SOURCES.txt +0 -0
  30. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework.egg-info/dependency_links.txt +0 -0
  31. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework.egg-info/entry_points.txt +0 -0
  32. {abstractframework-0.6.0 → abstractframework-0.6.1}/abstractframework.egg-info/top_level.txt +0 -0
  33. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/README.md +0 -0
  34. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0001-layered-architecture.md +0 -0
  35. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0002-effect-system-design.md +0 -0
  36. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0003-tool-system-architecture.md +0 -0
  37. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0004-observability-strategy.md +0 -0
  38. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0005-memory-architecture.md +0 -0
  39. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0006-durable-tool-execution.md +0 -0
  40. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0007-active-context-and-memory-provenance.md +0 -0
  41. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0008-token-terminology.md +0 -0
  42. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0009-connected-memory-recall-and-provenance.md +0 -0
  43. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0010-runtime-owned-node-traces.md +0 -0
  44. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0011-ledger-subscriptions-and-event-bridge.md +0 -0
  45. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0012-portable-workflowartifact.md +0 -0
  46. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0013-durable-run-controls-pause-resume-cancel.md +0 -0
  47. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0014-runtime-authority-timeouts.md +0 -0
  48. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0015-execution-targets-and-remote-tool-workers.md +0 -0
  49. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0016-tool-calling-pipeline-and-responsibility-boundaries.md +0 -0
  50. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0017-host-ui-events-and-durable-prompts.md +0 -0
  51. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0018-durable-run-gateway-and-remote-host-control-plane.md +0 -0
  52. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0019-testing-strategy-and-levels.md +0 -0
  53. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0020-agent-host-pool-and-orchestrator-placement.md +0 -0
  54. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0021-deployment-topologies-and-supported-scenarios.md +0 -0
  55. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0022-orchestrator-host-and-runtime-daemonization.md +0 -0
  56. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0023-file-attachment-path-resolution-and-authorization.md +0 -0
  57. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0024-attachment-placeholders-and-compaction-invariants.md +0 -0
  58. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0025-kg-entity-normalization-and-dedup.md +0 -0
  59. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0026-truncation-policy-and-contract.md +0 -0
  60. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0027-timeout-policy-and-contract.md +0 -0
  61. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0028-capabilities-plugins-and-library-framework-modes.md +0 -0
  62. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0029-permissive-dependency-and-licensing-policy.md +0 -0
  63. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0030-security-test-fixtures-and-isolation.md +0 -0
  64. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0031-workflow-llm-routing-overrides-provider-model-and-base-url.md +0 -0
  65. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0032-package-dependency-boundaries-and-gateway-first-apps.md +0 -0
  66. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0033-install-profiles-config-entrypoints-and-server-boundaries.md +0 -0
  67. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0034-framework-release-sequence-and-gates.md +0 -0
  68. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0035-capability-routing-defaults.md +0 -0
  69. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0036-artifact-descriptor-contract.md +0 -0
  70. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0037-hosted-file-source-contract-and-workspacepath-authority.md +0 -0
  71. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/0038-script-bootstrap-and-gateway-console-install.md +0 -0
  72. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/README.md +0 -0
  73. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/memory-recall-levels.md +0 -0
  74. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/001_music_as_capability_plugin_via_acestep_api.md +0 -0
  75. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/002_abstractmusic_inprocess_local_generation.md +0 -0
  76. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/003_abstractmusic_acestep_v15_backend_source_strategy.md +0 -0
  77. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/004_smartnote_thin_client_architecture.md +0 -0
  78. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/005_smartnote_artifact_first_cards.md +0 -0
  79. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/2026-02-21_gateway-first-assistant.md +0 -0
  80. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/2026-02-21_installer_manager_strategy.md +0 -0
  81. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/adr/reorg/2026-02-21_macos_installer_manager.md +0 -0
  82. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/agent-sessions.md +0 -0
  83. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/architecture.md +0 -0
  84. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/claude/README.md +0 -0
  85. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/claude/abstractframework-fit.md +0 -0
  86. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/claude/claude-skills-overview.md +0 -0
  87. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/claude/claude-skills-sources.md +0 -0
  88. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/claude/claude-skills-top-20.md +0 -0
  89. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/comparisons/README.md +0 -0
  90. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/configuration.md +0 -0
  91. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/LANDING.md +0 -0
  92. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/README.md +0 -0
  93. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/agent-skills.md +0 -0
  94. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/agent-vs-llm.md +0 -0
  95. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/agora-workflow-agent.md +0 -0
  96. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/apple-local-gateway-flow.md +0 -0
  97. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/capability-plugins.md +0 -0
  98. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/capability-routing-defaults.md +0 -0
  99. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/deployment-iphone.md +0 -0
  100. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/deployment-topologies.md +0 -0
  101. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/deployment-web.md +0 -0
  102. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/email-integration.md +0 -0
  103. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/event-inbox-agent.md +0 -0
  104. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/flow-and-kg-memory.md +0 -0
  105. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/gateway-security.md +0 -0
  106. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/headless-swarm.md +0 -0
  107. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/process-manager-env-vars.md +0 -0
  108. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/prompt-caching.md +0 -0
  109. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/runtime-artifacts.md +0 -0
  110. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/runtime-scope.md +0 -0
  111. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/scheduled-workflows.md +0 -0
  112. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/summoned-entities.md +0 -0
  113. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/telegram-integration.md +0 -0
  114. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/guide/workflow-bundles.md +0 -0
  115. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/README.md +0 -0
  116. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/operations-and-support.md +0 -0
  117. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/release-and-manifest.md +0 -0
  118. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/security-and-os-blocks.md +0 -0
  119. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/installers/strategy.md +0 -0
  120. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/prompts/agora-collaboration.md +0 -0
  121. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/README.md +0 -0
  122. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/email-inbox-agent.md +0 -0
  123. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/gateway-first-local-dev.md +0 -0
  124. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/offline-coding-assistant.md +0 -0
  125. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/phone-thin-client.md +0 -0
  126. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/specialized-agent-flow.md +0 -0
  127. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/telegram-permanent-contact.md +0 -0
  128. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/scenarios/workflow-bundle-lifecycle.md +0 -0
  129. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/README.md +0 -0
  130. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/abstractframework-agent-skills-fit.md +0 -0
  131. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/abstractframework-architecture-deep-dive.md +0 -0
  132. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/agent-skills-ecosystem-scan.md +0 -0
  133. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/agent-skills-ecosystem-sources.md +0 -0
  134. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/claude-agent-skills-overview.md +0 -0
  135. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/claude-agent-skills-sources.md +0 -0
  136. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/skills/claude-agent-skills-top-20.md +0 -0
  137. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/troubleshooting.md +0 -0
  138. {abstractframework-0.6.0 → abstractframework-0.6.1}/docs/workspace-scripts.md +0 -0
  139. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/af-local.sh +0 -0
  140. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/af.sh +0 -0
  141. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/agora_react_flow_smoke.py +0 -0
  142. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/assistant-local.sh +0 -0
  143. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/assistant.sh +0 -0
  144. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/build.sh +0 -0
  145. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/cache_probe_local_backends.py +0 -0
  146. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/cache_steer_repl.py +0 -0
  147. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/clone.sh +0 -0
  148. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/code-local.sh +0 -0
  149. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/code.sh +0 -0
  150. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/commit.sh +0 -0
  151. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/console-local.sh +0 -0
  152. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/console.sh +0 -0
  153. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/core_operator_drive.py +0 -0
  154. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/deps.sh +0 -0
  155. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/entity-local.sh +0 -0
  156. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/entity.sh +0 -0
  157. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/event_inbox_flow_smoke.py +0 -0
  158. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/flow-local.sh +0 -0
  159. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/flow.sh +0 -0
  160. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/gateway-flow-local.sh +0 -0
  161. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/gateway-flow.sh +0 -0
  162. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/gateway-local.sh +0 -0
  163. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/gateway.sh +0 -0
  164. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/gen_llms_full.py +0 -0
  165. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/headless_fleet_bridge.py +0 -0
  166. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/headless_fleet_demo.py +0 -0
  167. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/headless_steer_repl.py +0 -0
  168. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/lib/af_inventory.py +0 -0
  169. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/lib/af_stack.sh +0 -0
  170. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/lib/af_supervisor.sh +0 -0
  171. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/lib/apps_common.sh +0 -0
  172. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/lib/build_macos_installer.sh +0 -0
  173. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/lib/gateway_user_tokens.py +0 -0
  174. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/lib/repo_groups.sh +0 -0
  175. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/meet_castor.sh +0 -0
  176. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/observer-local.sh +0 -0
  177. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/observer.sh +0 -0
  178. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/plan_walkthrough.py +0 -0
  179. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/pull.sh +0 -0
  180. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/push.sh +0 -0
  181. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/spawn_demo_agent.sh +0 -0
  182. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/start-local.sh +0 -0
  183. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/start.sh +0 -0
  184. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/status.sh +0 -0
  185. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/steer_repl.py +0 -0
  186. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/tests/test_af_supervisor.sh +0 -0
  187. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/tests/test_inventory.sh +0 -0
  188. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/tests/test_repo_scripts.sh +0 -0
  189. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/uninstall.sh +0 -0
  190. {abstractframework-0.6.0 → abstractframework-0.6.1}/scripts/visit_resume_cache_probe.py +0 -0
  191. {abstractframework-0.6.0 → abstractframework-0.6.1}/setup.cfg +0 -0
  192. {abstractframework-0.6.0 → abstractframework-0.6.1}/tests/test_llms_full.py +0 -0
@@ -4,6 +4,65 @@ All notable changes to AbstractFramework will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.6.1] - 2026-09-28
8
+
9
+ Every terminal command lands on your PATH, AbstractCode's terminal client says how to sign in, and
10
+ Run now explains itself the same way in every client.
11
+
12
+ ### Changed
13
+
14
+ - **The installer puts every command line on PATH by default**, in one folder, uv's tool bin
15
+ directory (`~/.local/bin` on macOS and Linux, `%USERPROFILE%\.local\bin` on Windows), next to
16
+ `abstractgateway`:
17
+ - AbstractCode's terminal client, `abstractcode`, is built whenever the terminal console is, with
18
+ the same cargo. `--no-code-cli` (`-NoCodeCli`) skips it; a failed build never fails the install.
19
+ With `--no-console` it is built only when a cargo of Rust 1.87 or later already exists.
20
+ - The library commands come from the gateway's own environment: AbstractCore's (`abstractcore`,
21
+ `abstractcore-config`, `abstractcore-chat`, `abstractcore-endpoint` and its apps `summarizer`,
22
+ `extractor`, `judge`, `intent`, `deepsearch`, also as `abstractcore-<app>`), `abstractvoice`,
23
+ `abstractvoice-prefetch`, `abstractvision` and `abstractmusic`. `--no-core-cli` (`-NoCoreCli`)
24
+ leaves them out.
25
+ - A package's commands come all together or not at all: when another program already has one of
26
+ its names, that package is left out with a warning naming the file, and the rest installs.
27
+ - `--with-code-cli` and `--with-core-cli` stay accepted (they are the default now).
28
+ - The summary lists every command with what it does (`abstractgateway-config`: the gateway's
29
+ admin command). See [Commands you get](docs/install.md#commands-you-get).
30
+ - **Signing AbstractCode's terminal client in.** The summary prints
31
+ `Sign in (terminal, once): abstractcode login --token <token>` with your admin token, then
32
+ `abstractcode`, and the way without a token on the gateway's computer,
33
+ `abstractgateway apps tui-command code`. The installer never saves the token for you. Started
34
+ without a sign-in, `abstractcode` 0.7.1 says so and prints the same lines instead of opening
35
+ with an empty workflow.
36
+ - **Terminal apps share one folder with the gateway** (AbstractGateway 0.7.1). The console's
37
+ **Apps** page installs and updates `abstractcode` in the same folder as the installer, so it runs
38
+ by name. A re-run of the installer keeps an `abstractcode` newer than its pin. On Windows,
39
+ `install.ps1` builds `abstractgateway-console` and `abstractcode` into `%USERPROFILE%\.local\bin`
40
+ (an existing copy in `%USERPROFILE%\.cargo\bin` is left in place).
41
+ - **Uninstall** removes `abstractcode` like the console, and also the copy older gateways put in
42
+ `<data dir>/apps/bin` (removing that folder when it is empty; other files there are kept).
43
+
44
+ ### Added
45
+
46
+ - **Run now reads the same everywhere** (ui-kit 0.1.16, Observer 0.2.1, Assistant 0.9.1,
47
+ AbstractCode terminal 0.7.1 and web 0.6.1). Every client draws Run now with the same play-in-a-circle icon and explains
48
+ it with the same text: it runs the automation once now instead of waiting; the next scheduled run
49
+ keeps its time (or starts right after this run if its time comes first); it does not count toward
50
+ a run limit; it works while paused, which stays paused; and it is not available while a run is in
51
+ progress. Pause, Resume, Stop, Edit, Archive and Discuss carry the same kind of hint. See
52
+ [Automations](docs/automations.md).
53
+
54
+ ### Changed (pins)
55
+
56
+ - **abstractgateway 0.7.1** (was 0.7.0): terminal apps in the uv tool bin folder.
57
+ - **abstractassistant 0.9.1** (was 0.9.0): the shared Run now icon and hints.
58
+ - npm: **@abstractframework/observer 0.2.1** and **@abstractframework/code 0.6.1** (both with the
59
+ shared Run now hints, ui-kit 0.1.16).
60
+ - crates.io: **abstractcode 0.7.1** (sign-in report, "not signed in" state, Run now line).
61
+ - Unchanged: abstractcore 2.18.0, AbstractRuntime 0.7.1, abstractagent 0.3.17, abstractvoice 0.13.0,
62
+ abstractskill 0.3.0, AbstractMemory 0.3.0, abstractsemantics 0.0.5, abstractvision 0.3.30,
63
+ abstractmusic 0.1.15, flow 0.4.0, continuum 0.4.0, entity 0.3.0, `abstractgateway-console` 0.11.0,
64
+ `abstractcore-console` 0.4.0 and `abstracttui` 0.6.0.
65
+
7
66
  ## [0.6.0] - 2026-09-28
8
67
 
9
68
  Remote and headless machines work like a Mac: one address and one SSH tunnel reach the console, the
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.6.0
3
+ Version: 0.6.1
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,8 +23,8 @@ 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.7.0
27
- Requires-Dist: abstractassistant==0.9.0
26
+ Requires-Dist: abstractgateway==0.7.1
27
+ Requires-Dist: abstractassistant==0.9.1
28
28
  Requires-Dist: abstractcore==2.18.0
29
29
  Requires-Dist: AbstractRuntime==0.7.1
30
30
  Requires-Dist: abstractagent==0.3.17
@@ -35,11 +35,11 @@ Requires-Dist: abstractvoice==0.13.0
35
35
  Requires-Dist: abstractvision==0.3.30
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.7.0; extra == "apple"
39
- Requires-Dist: abstractassistant[apple]==0.9.0; platform_system == "Darwin" and extra == "apple"
38
+ Requires-Dist: abstractgateway[apple]==0.7.1; extra == "apple"
39
+ Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
40
40
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.7.0; extra == "gpu"
42
- Requires-Dist: abstractassistant[gpu]==0.9.0; extra == "gpu"
41
+ Requires-Dist: abstractgateway[gpu]==0.7.1; extra == "gpu"
42
+ Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
43
43
  Dynamic: license-file
44
44
 
45
45
  # AbstractFramework
@@ -198,7 +198,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
198
198
  ```
199
199
 
200
200
  Container images are published for the gateway and the AbstractCore server:
201
- `ghcr.io/lpalbou/abstractgateway:0.7.0` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
201
+ `ghcr.io/lpalbou/abstractgateway:0.7.1` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
202
202
 
203
203
  For artifact and runtime-resource investigation, see
204
204
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -344,7 +344,7 @@ pip install "abstractframework[gpu]"
344
344
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
345
345
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
346
346
 
347
- ### Release matrix (abstractframework 0.6.0)
347
+ ### Release matrix (abstractframework 0.6.1)
348
348
 
349
349
  `abstractframework` pins every Python package with `==`, so one version of the
350
350
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -353,8 +353,8 @@ and tested together.
353
353
 
354
354
  | Registry | Package | Version |
355
355
  |---|---|---|
356
- | PyPI | `abstractgateway` | 0.7.0 |
357
- | PyPI | `abstractassistant` | 0.9.0 |
356
+ | PyPI | `abstractgateway` | 0.7.1 |
357
+ | PyPI | `abstractassistant` | 0.9.1 |
358
358
  | PyPI | `abstractcore` | 2.18.0 |
359
359
  | PyPI | `AbstractRuntime` | 0.7.1 |
360
360
  | PyPI | `abstractagent` | 0.3.17 |
@@ -365,15 +365,15 @@ and tested together.
365
365
  | PyPI | `abstractvision` | 0.3.30 |
366
366
  | PyPI | `abstractmusic` | 0.1.15 |
367
367
  | npm | `@abstractframework/flow` | 0.4.0 |
368
- | npm | `@abstractframework/code` | 0.6.0 |
369
- | npm | `@abstractframework/observer` | 0.2.0 |
368
+ | npm | `@abstractframework/code` | 0.6.1 |
369
+ | npm | `@abstractframework/observer` | 0.2.1 |
370
370
  | npm | `@abstractframework/continuum` | 0.4.0 |
371
371
  | npm | `@abstractframework/entity` | 0.3.0 |
372
- | crates.io | `abstractcode` | 0.7.0 |
372
+ | crates.io | `abstractcode` | 0.7.1 |
373
373
  | crates.io | `abstractgateway-console` | 0.11.0 |
374
374
  | crates.io | `abstractcore-console` | 0.4.0 |
375
375
  | crates.io | `abstracttui` | 0.6.0 |
376
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.0 (`gpu-latest` / `<version>-gpu` experimental) |
376
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.1 (`gpu-latest` / `<version>-gpu` experimental) |
377
377
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.18.0 |
378
378
 
379
379
  Optional add-ons that are not part of any profile install separately:
@@ -154,7 +154,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
154
154
  ```
155
155
 
156
156
  Container images are published for the gateway and the AbstractCore server:
157
- `ghcr.io/lpalbou/abstractgateway:0.7.0` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
157
+ `ghcr.io/lpalbou/abstractgateway:0.7.1` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
158
158
 
159
159
  For artifact and runtime-resource investigation, see
160
160
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -300,7 +300,7 @@ pip install "abstractframework[gpu]"
300
300
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
301
301
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
302
302
 
303
- ### Release matrix (abstractframework 0.6.0)
303
+ ### Release matrix (abstractframework 0.6.1)
304
304
 
305
305
  `abstractframework` pins every Python package with `==`, so one version of the
306
306
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -309,8 +309,8 @@ and tested together.
309
309
 
310
310
  | Registry | Package | Version |
311
311
  |---|---|---|
312
- | PyPI | `abstractgateway` | 0.7.0 |
313
- | PyPI | `abstractassistant` | 0.9.0 |
312
+ | PyPI | `abstractgateway` | 0.7.1 |
313
+ | PyPI | `abstractassistant` | 0.9.1 |
314
314
  | PyPI | `abstractcore` | 2.18.0 |
315
315
  | PyPI | `AbstractRuntime` | 0.7.1 |
316
316
  | PyPI | `abstractagent` | 0.3.17 |
@@ -321,15 +321,15 @@ and tested together.
321
321
  | PyPI | `abstractvision` | 0.3.30 |
322
322
  | PyPI | `abstractmusic` | 0.1.15 |
323
323
  | npm | `@abstractframework/flow` | 0.4.0 |
324
- | npm | `@abstractframework/code` | 0.6.0 |
325
- | npm | `@abstractframework/observer` | 0.2.0 |
324
+ | npm | `@abstractframework/code` | 0.6.1 |
325
+ | npm | `@abstractframework/observer` | 0.2.1 |
326
326
  | npm | `@abstractframework/continuum` | 0.4.0 |
327
327
  | npm | `@abstractframework/entity` | 0.3.0 |
328
- | crates.io | `abstractcode` | 0.7.0 |
328
+ | crates.io | `abstractcode` | 0.7.1 |
329
329
  | crates.io | `abstractgateway-console` | 0.11.0 |
330
330
  | crates.io | `abstractcore-console` | 0.4.0 |
331
331
  | crates.io | `abstracttui` | 0.6.0 |
332
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.0 (`gpu-latest` / `<version>-gpu` experimental) |
332
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.1 (`gpu-latest` / `<version>-gpu` experimental) |
333
333
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.18.0 |
334
334
 
335
335
  Optional add-ons that are not part of any profile install separately:
@@ -10,7 +10,7 @@ Most implementation functionality still lives in component projects.
10
10
 
11
11
  from __future__ import annotations
12
12
 
13
- __version__ = "0.6.0"
13
+ __version__ = "0.6.1"
14
14
  __author__ = "Laurent-Philippe Albou"
15
15
  __license__ = "MIT"
16
16
 
@@ -18,14 +18,14 @@ RELEASE_VERSIONS: dict[str, str] = {
18
18
  "abstractcore": "2.18.0",
19
19
  "abstractruntime": "0.7.1",
20
20
  "abstractagent": "0.3.17",
21
- "abstractgateway": "0.7.0",
21
+ "abstractgateway": "0.7.1",
22
22
  "abstractskill": "0.3.0",
23
23
  "abstractmemory": "0.3.0",
24
24
  "abstractsemantics": "0.0.5",
25
25
  "abstractvoice": "0.13.0",
26
26
  "abstractvision": "0.3.30",
27
27
  "abstractmusic": "0.1.15",
28
- "abstractassistant": "0.9.0",
28
+ "abstractassistant": "0.9.1",
29
29
  }
30
30
 
31
31
  PACKAGE_DISTRIBUTIONS: dict[str, str] = {
@@ -44,18 +44,18 @@ PACKAGE_DISTRIBUTIONS: dict[str, str] = {
44
44
 
45
45
  NPM_RELEASE_VERSIONS: dict[str, str] = {
46
46
  "@abstractframework/flow": "0.4.0",
47
- "@abstractframework/code": "0.6.0",
48
- "@abstractframework/observer": "0.2.0",
47
+ "@abstractframework/code": "0.6.1",
48
+ "@abstractframework/observer": "0.2.1",
49
49
  "@abstractframework/continuum": "0.4.0",
50
50
  "@abstractframework/entity": "0.3.0",
51
51
  }
52
52
 
53
53
  # Terminal tools published on crates.io alongside this release (installed with `cargo install`,
54
- # or by the bootstrap scripts: the gateway console by default, abstractcode with --with-code-cli).
54
+ # or by the bootstrap scripts: the gateway console and abstractcode by default).
55
55
  CRATE_RELEASE_VERSIONS: dict[str, str] = {
56
56
  "abstractgateway-console": "0.11.0",
57
57
  "abstractcore-console": "0.4.0",
58
- "abstractcode": "0.7.0",
58
+ "abstractcode": "0.7.1",
59
59
  "abstracttui": "0.6.0",
60
60
  }
61
61
 
@@ -38,10 +38,14 @@ BOOTSTRAP_FLAGS: list[dict[str, str]] = [
38
38
  "summary": "Skip the terminal console. By default abstractgateway-console is built "
39
39
  "with cargo (install.sh adds Rust through rustup when cargo is missing; "
40
40
  "needs a C compiler)."},
41
- {"sh": "--with-code-cli", "ps": "-WithCodeCli", "env": "",
42
- "summary": "cargo install abstractcode (terminal client) when cargo exists."},
43
- {"sh": "--with-core-cli", "ps": "-WithCoreCli", "env": "",
44
- "summary": "Also expose the abstractcore command (--with-executables-from abstractcore)."},
41
+ {"sh": "--no-code-cli", "ps": "-NoCodeCli", "env": "",
42
+ "summary": "Skip AbstractCode's terminal client. By default abstractcode is built with "
43
+ "the terminal console's cargo, into the same folder (--with-code-cli, the "
44
+ "old opt-in, is accepted)."},
45
+ {"sh": "--no-core-cli", "ps": "-NoCoreCli", "env": "",
46
+ "summary": "Do not expose AbstractCore's commands (abstractcore, its apps) and "
47
+ "abstractvoice, abstractvision, abstractmusic next to the gateway's "
48
+ "(--with-core-cli, the old opt-in, is accepted)."},
45
49
  {"sh": "--with-ollama", "ps": "-WithOllama", "env": "",
46
50
  "summary": "Run Ollama's official installer (Linux/macOS may ask for sudo)."},
47
51
  {"sh": "--with-lmstudio", "ps": "-WithLmStudio", "env": "",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractframework
3
- Version: 0.6.0
3
+ Version: 0.6.1
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,8 +23,8 @@ 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.7.0
27
- Requires-Dist: abstractassistant==0.9.0
26
+ Requires-Dist: abstractgateway==0.7.1
27
+ Requires-Dist: abstractassistant==0.9.1
28
28
  Requires-Dist: abstractcore==2.18.0
29
29
  Requires-Dist: AbstractRuntime==0.7.1
30
30
  Requires-Dist: abstractagent==0.3.17
@@ -35,11 +35,11 @@ Requires-Dist: abstractvoice==0.13.0
35
35
  Requires-Dist: abstractvision==0.3.30
36
36
  Requires-Dist: abstractmusic==0.1.15
37
37
  Provides-Extra: apple
38
- Requires-Dist: abstractgateway[apple]==0.7.0; extra == "apple"
39
- Requires-Dist: abstractassistant[apple]==0.9.0; platform_system == "Darwin" and extra == "apple"
38
+ Requires-Dist: abstractgateway[apple]==0.7.1; extra == "apple"
39
+ Requires-Dist: abstractassistant[apple]==0.9.1; platform_system == "Darwin" and extra == "apple"
40
40
  Provides-Extra: gpu
41
- Requires-Dist: abstractgateway[gpu]==0.7.0; extra == "gpu"
42
- Requires-Dist: abstractassistant[gpu]==0.9.0; extra == "gpu"
41
+ Requires-Dist: abstractgateway[gpu]==0.7.1; extra == "gpu"
42
+ Requires-Dist: abstractassistant[gpu]==0.9.1; extra == "gpu"
43
43
  Dynamic: license-file
44
44
 
45
45
  # AbstractFramework
@@ -198,7 +198,7 @@ abstractgateway-console --gateway-url http://127.0.0.1:8080 --token <admin token
198
198
  ```
199
199
 
200
200
  Container images are published for the gateway and the AbstractCore server:
201
- `ghcr.io/lpalbou/abstractgateway:0.7.0` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
201
+ `ghcr.io/lpalbou/abstractgateway:0.7.1` and `ghcr.io/lpalbou/abstractcore-server:2.18.0`.
202
202
 
203
203
  For artifact and runtime-resource investigation, see
204
204
  [Runtime artifacts and retrieval](docs/guide/runtime-artifacts.md).
@@ -344,7 +344,7 @@ pip install "abstractframework[gpu]"
344
344
  | Apple | `pip install "abstractframework[apple]"` | macOS 14+ on Apple Silicon | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
345
345
  | GPU | `pip install "abstractframework[gpu]"` | Linux / Windows with a CUDA or ROCm GPU | 3.10–3.13 (F5-TTS voice cloning needs 3.11+) |
346
346
 
347
- ### Release matrix (abstractframework 0.6.0)
347
+ ### Release matrix (abstractframework 0.6.1)
348
348
 
349
349
  `abstractframework` pins every Python package with `==`, so one version of the
350
350
  meta-package always installs the same stack. The browser apps and Rust tools are
@@ -353,8 +353,8 @@ and tested together.
353
353
 
354
354
  | Registry | Package | Version |
355
355
  |---|---|---|
356
- | PyPI | `abstractgateway` | 0.7.0 |
357
- | PyPI | `abstractassistant` | 0.9.0 |
356
+ | PyPI | `abstractgateway` | 0.7.1 |
357
+ | PyPI | `abstractassistant` | 0.9.1 |
358
358
  | PyPI | `abstractcore` | 2.18.0 |
359
359
  | PyPI | `AbstractRuntime` | 0.7.1 |
360
360
  | PyPI | `abstractagent` | 0.3.17 |
@@ -365,15 +365,15 @@ and tested together.
365
365
  | PyPI | `abstractvision` | 0.3.30 |
366
366
  | PyPI | `abstractmusic` | 0.1.15 |
367
367
  | npm | `@abstractframework/flow` | 0.4.0 |
368
- | npm | `@abstractframework/code` | 0.6.0 |
369
- | npm | `@abstractframework/observer` | 0.2.0 |
368
+ | npm | `@abstractframework/code` | 0.6.1 |
369
+ | npm | `@abstractframework/observer` | 0.2.1 |
370
370
  | npm | `@abstractframework/continuum` | 0.4.0 |
371
371
  | npm | `@abstractframework/entity` | 0.3.0 |
372
- | crates.io | `abstractcode` | 0.7.0 |
372
+ | crates.io | `abstractcode` | 0.7.1 |
373
373
  | crates.io | `abstractgateway-console` | 0.11.0 |
374
374
  | crates.io | `abstractcore-console` | 0.4.0 |
375
375
  | crates.io | `abstracttui` | 0.6.0 |
376
- | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.0 (`gpu-latest` / `<version>-gpu` experimental) |
376
+ | GHCR | `ghcr.io/lpalbou/abstractgateway` | 0.7.1 (`gpu-latest` / `<version>-gpu` experimental) |
377
377
  | GHCR | `ghcr.io/lpalbou/abstractcore-server` | 2.18.0 |
378
378
 
379
379
  Optional add-ons that are not part of any profile install separately:
@@ -1,5 +1,5 @@
1
- abstractgateway==0.7.0
2
- abstractassistant==0.9.0
1
+ abstractgateway==0.7.1
2
+ abstractassistant==0.9.1
3
3
  abstractcore==2.18.0
4
4
  AbstractRuntime==0.7.1
5
5
  abstractagent==0.3.17
@@ -11,11 +11,11 @@ abstractvision==0.3.30
11
11
  abstractmusic==0.1.15
12
12
 
13
13
  [apple]
14
- abstractgateway[apple]==0.7.0
14
+ abstractgateway[apple]==0.7.1
15
15
 
16
16
  [apple:platform_system == "Darwin"]
17
- abstractassistant[apple]==0.9.0
17
+ abstractassistant[apple]==0.9.1
18
18
 
19
19
  [gpu]
20
- abstractgateway[gpu]==0.7.0
21
- abstractassistant[gpu]==0.9.0
20
+ abstractgateway[gpu]==0.7.1
21
+ abstractassistant[gpu]==0.9.1
@@ -55,14 +55,14 @@ The response type returned by `llm.generate(...)`.
55
55
 
56
56
  ### `__version__`
57
57
 
58
- The meta-package version (`0.6.0` for this release).
58
+ The meta-package version (`0.6.1` 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.6.0:
63
- `abstractcore` 2.18.0, `abstractruntime` 0.7.1, `abstractagent` 0.3.17, `abstractgateway` 0.7.0,
62
+ Dictionary mapping each ecosystem package name to the pinned version for this release. In 0.6.1:
63
+ `abstractcore` 2.18.0, `abstractruntime` 0.7.1, `abstractagent` 0.3.17, `abstractgateway` 0.7.1,
64
64
  `abstractskill` 0.3.0, `abstractmemory` 0.3.0, `abstractsemantics` 0.0.5, `abstractvoice` 0.13.0, `abstractvision` 0.3.30,
65
- `abstractmusic` 0.1.15, `abstractassistant` 0.9.0.
65
+ `abstractmusic` 0.1.15, `abstractassistant` 0.9.1.
66
66
 
67
67
  ### `PACKAGE_DISTRIBUTIONS`
68
68
 
@@ -72,16 +72,16 @@ Maps each package name in `RELEASE_VERSIONS` to its PyPI distribution name (for
72
72
  ### `NPM_RELEASE_VERSIONS`
73
73
 
74
74
  The npm apps released with this version, each runnable with `npx <package>`:
75
- `@abstractframework/flow` 0.4.0, `@abstractframework/code` 0.6.0,
76
- `@abstractframework/observer` 0.2.0, `@abstractframework/continuum` 0.4.0 and
75
+ `@abstractframework/flow` 0.4.0, `@abstractframework/code` 0.6.1,
76
+ `@abstractframework/observer` 0.2.1, `@abstractframework/continuum` 0.4.0 and
77
77
  `@abstractframework/entity` 0.3.0. They also appear as `npm_apps` in the install manifest.
78
78
 
79
79
  ### `CRATE_RELEASE_VERSIONS`
80
80
 
81
81
  The Rust terminal tools released with this version, installed with `cargo install <crate>`:
82
- `abstractgateway-console` 0.11.0, `abstractcore-console` 0.4.0, `abstractcode` 0.7.0 and the
82
+ `abstractgateway-console` 0.11.0, `abstractcore-console` 0.4.0, `abstractcode` 0.7.1 and the
83
83
  `abstracttui` engine 0.6.0. The bootstrap scripts build `abstractgateway-console` at this version by default
84
- (`--no-console` skips it) and `abstractcode` with `--with-code-cli`.
84
+ (`--no-console` skips it) and `abstractcode` next to it (`--no-code-cli` skips it).
85
85
 
86
86
  ### `CORE_DEFAULT_EXTRAS`
87
87
 
@@ -397,14 +397,19 @@ Every control is a command, `POST /api/gateway/automations/{id}/commands` with a
397
397
  | Control | Command | What happens |
398
398
  |---|---|---|
399
399
  | **Pause** | `automation.pause` | No scheduled run until you resume. A run in progress finishes. |
400
- | **Run now** | `automation.run_now` | One run at once, **also while paused** (the automation stays paused). Refused (409 `automation_busy`) while an occurrence is running or queued; there is no queue. |
400
+ | **Run now** | `automation.run_now` | One run at once, instead of waiting for the schedule, **also while paused** (the automation stays paused). **The schedule does not move**: the next scheduled run keeps its time; if that time comes while this run is still going, the scheduled run starts as soon as it ends (missed times coalesce into one run). A manual run does not count toward a schedule's run limit (`count`); once that limit is reached the automation has ended and Run now is refused. In a Growing automation, later runs see it in their history. Refused (409 `automation_busy`) while an occurrence is running or queued; there is no queue. |
401
401
  | **Resume** | `automation.resume` | Back on the schedule from the next tick after now. It never fires on resume and never catches up the time spent paused. |
402
402
  | **Edit** / **Revise…** | `PATCH` with `expected_revision` and `changes` | Title, interval and context in the apps; also `target` and `policy` through the API. Creates the next revision, used from the next run; an occurrence already running keeps the inputs it started with. A changed schedule never fires a past tick. |
403
403
  | **Stop current** | `automation.stop_current` | Cancels the run in progress (quietly). |
404
404
  | **Archive** | `automation.archive` | No further runs; the current one finishes. **The history is kept** and stays readable; the only remaining control is Discuss. |
405
405
  | **Discuss** | `POST …/discuss` `{request_id, occurrence_index, prompt}` | A new conversation forked at that occurrence: its context is the automation's whole timeline up to and including it; it works in its own writable workspace (`workspace_root` in the response) with the automation's folder mounted read-only (`mounted_workspace`); see [the mental model](#the-mental-model). Continue it like any chat (`POST /api/gateway/runs/start` with its `session_id`). |
406
406
 
407
- The Assistant and the Observer disable a control that does not apply and say why in its tooltip.
407
+ Every client explains each control in its tooltip with the same text, and draws Run now with the
408
+ same play-in-a-circle icon: the Observer, the web panels and AbstractCode's browser client use the
409
+ ui-kit's `CONTROL_HINTS`; the Assistant and AbstractCode's terminal client carry a byte-identical
410
+ copy of the kit's `automation_controls.json` (`scripts/check_identity_sync.py` fails on drift).
411
+ Run now's tooltip adds the next scheduled time when there is one. A control that does not apply is
412
+ disabled, and its tooltip first says why.
408
413
 
409
414
  ## What notifies you, and when
410
415
 
@@ -34,7 +34,7 @@ No.
34
34
  | Everything at compatible versions | `pip install abstractframework` |
35
35
  | A browser app | the gateway console's **Apps** page (served at `/apps/<app>/` on the gateway), or on its own: `npx @abstractframework/<flow\|code\|observer\|continuum\|entity> --gateway-url <url>` |
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.7.0` |
37
+ | A container deployment | `ghcr.io/lpalbou/abstractgateway:0.7.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
@@ -44,7 +44,34 @@ browser apps, which the gateway serves at `http://127.0.0.1:8080/apps/<app>/`. T
44
44
  builds the terminal console, `abstractgateway-console`, which offers the same guide on a server
45
45
  without a browser (its **Network** screen, `N`, decides who can reach the gateway); over SSH the
46
46
  installer offers to open it at the end, and its summary prints the command (see
47
- [Headless or remote machine](install.md#headless-or-remote-machine)). Then
47
+ [Headless or remote machine](install.md#headless-or-remote-machine)).
48
+
49
+ The commands it puts on PATH (in `~/.local/bin`; open a new terminal), each listed in its summary:
50
+
51
+ - `abstractgateway`: the gateway itself (`serve`, `service`, `network`, `models`, `engines`).
52
+ - `abstractgateway-config`: the gateway's admin and configuration command: `status`, `claim-url`
53
+ (a new one-time console sign-in link), `set-default` (which model each capability uses),
54
+ `get` / `set` (runtime settings), `bootstrap-admin`.
55
+ - `abstractgateway-console`: the terminal console; the summary prints it ready to paste, with
56
+ `--gateway-url` and `--token`.
57
+ - `abstractcode`: AbstractCode's terminal client. Sign it in once with
58
+ `abstractcode login --token <admin token>` (the summary prints this line with your token), then
59
+ run `abstractcode`; or, on the gateway's computer, `abstractgateway apps tui-command code` opens
60
+ it signed in without a token.
61
+ - AbstractCore's commands: `abstractcore` (also `abstractcore-config`: setup wizard, models,
62
+ engines, `serve`), `abstractcore-chat` (a chat in the terminal), `abstractcore-endpoint` (a
63
+ single-model `/v1` server), and its apps `summarizer` (summarize a document), `extractor`
64
+ (entities and relationships as a knowledge graph), `judge` (LLM-as-a-judge scoring), `intent`
65
+ (intent analysis) and `deepsearch` (a research agent that writes a sourced report), each also as
66
+ `abstractcore-<app>`.
67
+ - `abstractvoice` (a spoken chat, `tts`, `web`) and `abstractvoice-prefetch` (download voice
68
+ models), `abstractvision` (generate or edit images and video: `t2i`, `i2i`, `t2v`, …) and
69
+ `abstractmusic` (`t2m`: text to music).
70
+
71
+ A package puts all of the commands it declares on PATH (uv cannot pick a subset). `--no-console`,
72
+ `--no-code-cli` and `--no-core-cli` leave them out, and a package whose command name another
73
+ program already has is left out with a warning naming that file; see
74
+ [Commands you get](install.md#commands-you-get). Then
48
75
  continue with [Monitor runs](#4-monitor-runs-with-abstractobserver) or
49
76
  [AbstractFlow](#author-orchestration-with-abstractflow). Step by step, what to do when something
50
77
  fails, and how to remove it: [Install](install.md); fixes for common problems:
@@ -298,8 +325,11 @@ the gateway default then runs at its next turn. See [Agent sessions](agent-sessi
298
325
 
299
326
  ### AbstractCode (terminal and browser)
300
327
 
301
- A coding client for durable agentic sessions on the gateway you started above. Install the Rust
302
- terminal client from crates.io (or download a prebuilt binary from the
328
+ A coding client for durable agentic sessions on the gateway you started above. The installer
329
+ already built the Rust terminal client, `abstractcode`; sign it in once with
330
+ `abstractcode login --token <admin token>` (the installer summary prints the line with your token),
331
+ or open it signed in on the gateway's computer with `abstractgateway apps tui-command code` (see
332
+ [Commands you get](install.md#commands-you-get)). Otherwise install it from crates.io (or download a prebuilt binary from the
303
333
  [AbstractCode GitHub release](https://github.com/lpalbou/AbstractCode/releases)), or run the
304
334
  browser client (the gateway console's **Apps** page opens it at `/apps/code/`, or run it with
305
335
  `npx`):
@@ -264,7 +264,9 @@ real address in `X-Forwarded-For` so the gateway can tell local from remote call
264
264
 
265
265
  The descriptor `identity/abstractframework.json` (in this repository) that every About screen
266
266
  renders; each rendering package vendors a byte-identical copy, checked by
267
- `scripts/check_identity_sync.py`.
267
+ `scripts/check_identity_sync.py`. The same script checks the shared contract fixtures and the
268
+ automation controls' names, hints and Run now icon (`automation_controls.json`, canonical in the
269
+ ui-kit).
268
270
 
269
271
  ---
270
272