Repository navigation
AbstractFramework 0.11.15
Pins the 2026-10-27/28 release wave (backlog 1055) across the light, Apple and GPU profiles:
AbstractCore 2.31.0, AbstractRuntime 0.15.0, AbstractAgent 0.4.0, AbstractGateway 0.17.0,
AbstractMemory 0.4.0, AbstractVoice 0.19.2, AbstractAssistant 0.15.0 and AbstractSkill 0.3.3
(AbstractSemantics 0.0.5, AbstractVision 0.3.34, AbstractMusic 0.1.17 and Abstract3D 0.3.2 unchanged). The installers
and the install manifest install gateway 0.17.0 and the npm apps AbstractCode web 0.12.0, Observer 0.9.0,
Entity 0.8.0 and Continuum 0.7.1; container images ghcr.io/lpalbou/abstractgateway:0.17.0 and
ghcr.io/lpalbou/abstractcore-server:2.31.0. AbstractAgent moves to 0.4.0 because gateway 0.17.0 requires it.
Upgrade notes (one-way)
- AbstractMemory 0.4.0 migrates a memory home on first write: a SQLite home's JSON-text vectors are rewritten as
float32 BLOBs, and graph homes gain four tables (memg_revisions,memg_provenance,memg_derivations,
memg_history). A 0.3.x reader then finds no vectors. Back up the data folder before upgrading if you may need to
roll back to 0.11.14. - AbstractRuntime 0.15.0 writes a
ledger_<run_id>.idxrow index beside each JSON-file ledger; older readers
ignore it. /kg/queryis owner-scoped for non-admins (gateway 0.17.0): a client that read another principal's
owner_idorall_ownersnow gets only its own owners.
The wave
- Voice library and personal voices: the gateway lists the languages each voice engine accepts and the cloned
voices, and with user accounts each account keeps the voices it clones or designs in its own store; the shared
voice picker and Create a voice reach the console, Code, Entity and the desktop Assistant (voices grouped by whose
they are). AbstractVoice 0.19.2 keeps clones listed when a TTS model is selected and lists the cloning checkpoints;
AbstractCore 2.31.0 takes the clone language over HTTP. - Session tool policy (backlog 1061): "approve all" / "approve this kind" / "deny" for a conversation is held by
the gateway (/api/gateway/sessions/{session_id}/tool-policy), clamped to the account's authorized tools and read
by the runtime before any wait: an approved call runs with no approval gate flashing in any app, and each decision
is anabstract.tool_policy_decisionledger record. Runtime 0.14.0+, gateway 0.16.0+, panel-chat 0.5.0, desktop
Assistant 0.15.0; the iPhone/watch and AbstractCode still use their local grants. - Replay view: one replayable ledger (runtime reducer, durable per-run
seq,LedgerStore.get_record) and the
gateway's replay view routes that every thin client builds on. - Memory graph consolidation:
abstractmemory.graphis the one write path of a mind (revisions, provenance,
history,narrow_assertion, themergedclosure kind); the runtime reaches it through its memory facade
(MEMORY_REVISE, provenance stamping) and the gateway through new memory graph routes. AbstractNote 0.2.0 (statements
that say where they came from) builds on it; it is not pinned by the root (an optional gateway seam). - Prefix-cache reuse: AbstractCore 2.31.0 places the MLX prefix-cache snapshot before per-call system riders, so a
tool loop with attachments restores the cached prefix instead of re-prefilling the conversation at every call;
AbstractAgent 0.4.0 keeps the loop prompts' prefix byte-stable (iteration counters and scratchpad out of the cached
system prompt, byte-stable turn grounding). - UI kit consolidation: ui-kit 0.9.2 and panel-chat 0.5.0 (AbstractUIC 0.7.x) carry the shared chat, approvals,
voice and session-policy primitives the apps now compose. - App releases: AbstractCode web 0.12.0, Observer 0.9.0, Entity 0.8.0, Continuum 0.7.1, desktop Assistant 0.15.0.
- Events, triggers and attention (2026-10-25/26 rounds, built before this wave and first pinned here). User
guide: Triggers, attention and push.
Not in this release: @abstractframework/note 0.2.0 (its npm publish failed; the Python package is on PyPI),
@abstractframework/flow 0.11.0 and the abstractcode 0.11.0 crate (not published; the root keeps Flow 0.10.1 and
the crate 0.10.0). The iPhone and Apple Watch app 0.16.0 ships separately through TestFlight.
- Triggers native to the runtime: per-user connections (a mailbox, a feed, a webhook) registered once
on the gateway's Triggers page and reused by name; CloudEvents-shaped envelopes; feed (RSS/Atom) and
signed webhook sources beside schedules and mail; several read-only mailboxes per user with Google or
Microsoft sign-in and address-first autodiscovery; a connection fetches only while an automation uses it. - Attention stream: one per-user event stream (run pointers, trigger events, wakes, attention items,
human waits, notifications) with catch-up and SSE routes and named channels; the gateway tray, the
Assistant desktop, the watch, the iPhone and Code follow it, with one notification per Mac. - Reminders and wakes: an agent schedules a later run in its own session (
schedule_run), with at
most its own tools; a reminder notifies by default. - Flow: "+" asks what starts the flow; triggered flows open with typed start and end pins only; Turn it
on; Run as if triggered with real sampled data; an Email type with deterministic Mail nodes (search,
get, mark, flag, label, move, delete, send, reply, forward, attachment) and Publish to channel. - Observer and console: triggers in words everywhere; My email as tabs; a one-field Add-mailbox form.
- Evening round (2026-10-25): a mailbox's access is an explicit choice, Read only (default) or Read and
write (change and send; sending also needs the outgoing server), with a switch on each mailbox row and a
PUT /me/email/accounts/{id}/accessroute, two plain refusals in the mail verbs, web and terminal console
parity; Flow warns when a loop's body ends at On Flow End (the run would stop after the first item) with a
one-click "Fix the loop", offers Break Email from an Email pin drop and ForEach from a list pin drop. - Late round (2026-10-25): Flow Library by what starts a flow (Chat / Triggered / Other; schedules are set
in Observer and the Assistant, not in Flow), folded nodes show only their wired pins, New/Open/Save in colour
with a readable Save state; a catalogue of well-known open feeds (27, verified live, editable copy in the
data dir) in the console's New connection; RSS 1.0 (RDF) feeds parse; Apple push for the watch and the
phone on the gateway side (device routes, dispatcher with a SQLite outbox,
abstractgateway push-relaywith fixed localized messages; backlog 1049); ADR-0040 (critical workflows
live in the Flow library, agents draft, the operator publishes); backlog 1051–1053. - 2026-10-26 round: ADR-0041 (no hidden effects after a flow): On Flow End records
response,
successandnote, Notify me chooses whom and where (tray, watch, phone, email, console), the
oldernotifypin is a labelled compatibility path, and every run answers After the run
(GET /api/gateway/runs/{run_id}/after, in Flow and the Observer). Push: the forwarder is one admin
setting (Built-in, Off or Your own forwarder; the built-in one is not live yet), the console lists
your devices, a recently registered watch takes an alert before the iPhone, and the packaged topics
are the merged app's ids. AbstractAssistant for iPhone and Apple Watch is one app (0.16.0): the
iPhone app carries the watch app, one sign-in in the Keychain shared through the app group,
notification service extensions that read each push's event from your gateway. The gateway under
load (backlog 1054): run listings from an in-memory index (shadow-checked by default), bounded work
pools, account services built off the event loop, garbage-collector tuning, a CI load test on
10,000 runs and 100,000 artifacts, and the API and the runs in two processes as an opt-in (split
mode). - Live test on the operator's gateway: a Gmail message → inbox → automation → local-model judgement →
attention → tray, console and email (untracked/roadmap/FINAL.md).