Releases: managoat/fountain
Releases · managoat/fountain
Release list
v0.17.0
What's Changed
- docs(swift): install from v0.16.0 by @jhgaylor in #1456
- docs(adr-0038): record the production walk, verification to reply in 35s by @jhgaylor in #1458
- feat(sdk): a typed Swift client beside the untyped one by @jhgaylor in #1457
- fix(runtimes): take managoat_runtimes 0.1.1, opencode's google key by its real name by @jhgaylor in #1461
- docs(libraries): record the no-Fountain consumer by @jhgaylor in #1465
- docs(adr-0016): update the governance boundary by @jhgaylor in #1466
- fix(credits): bill gemini platform inference (#1459) by @jhgaylor in #1467
- refactor(conversations): the connection and output persistence out, and what the process keeps by @jhgaylor in #1463
- Take managoat_sandbox 0.2.0: a close before the exit frame is an error, not exit 0 by @jhgaylor in #1470
- deps: bump hackney to 4.7.4, closing four advisories (#1468) by @jhgaylor in #1472
- fix(conversations): recover orphaned running turns by @jhgaylor in #1473
- test(activation): bind the fixture timestamp once (#1471) by @jhgaylor in #1478
- fix(buzz): make harness teardown deterministic by @jhgaylor in #1475
- feat(integrations): put Fountain behind LiteLLM by @jhgaylor in #1479
- ci: gate Hex advisories without blocking retirements by @jhgaylor in #1480
- chore(precommit): assemble the prod release (#1477) by @jhgaylor in #1482
- docs(broker): correct the substitution scope, measured against gemini-cli by @jhgaylor in #1483
- feat(broker): stored egress log and metrics for the native backend by @BinaryBourbon in #1490
- fix(broker): brokered clones, by not waiting for the proxy's 407 by @jhgaylor in #1492
- chore(broker): delete the Agent Vault client, and accept ADR 0019 by @jhgaylor in #1494
- fix(broker): BROKER_TOKEN only warns, it does not stop boot by @jhgaylor in #1495
- chore: add Fountain project gardener skill by @jhgaylor in #1491
- feat(broker): the connect-outcome metric, and managoat_broker 0.1.2 by @jhgaylor in #1497
- docs(connections): Node stdio MCP servers need NODE_USE_ENV_PROXY by @jhgaylor in #1498
- docs(adr-0043): define the first-party Fountain extension boundary around Buzz (#1504) by @jhgaylor in #1512
- fix(acp): send the substituted MCP configuration on session/new (#1404) by @jhgaylor in #1511
- fix(api): interrupt answers 409 for a conversation it can see (#1179) by @jhgaylor in #1500
- feat(credits): telemetry for the workers and for the ledger (#1169) by @jhgaylor in #1513
- fix(billing): price comms messages from a row that cannot be dropped (#1143) by @jhgaylor in #1514
- feat(buzz): cap and gate hosted agents, and stop them at a zero balance (#1017) by @jhgaylor in #1502
- feat(admin): show running Buzz runtimes by @jhgaylor in #1519
- feat(dashboards): put the credit machinery on the finance dashboard (#1169) by @jhgaylor in #1521
- feat(extensions): authenticated API dispatch and conversation MCP contributions (#1505) by @jhgaylor in #1515
- feat(extensions): compose migrations and OpenAPI paths (#1506) by @jhgaylor in #1517
- feat(buzz): move the hosted-agent server into apps/fountain_buzz (#1507) by @jhgaylor in #1523
- fix(broker): take managoat_broker 0.1.3, so a query string stops reaching the egress log by @jhgaylor in #1527
- feat(broker): take managoat_broker 0.11.0 and close the Agent Vault parity gaps by @jhgaylor in #1531
- feat(support): move problem reports into apps/fountain_support (#1528) by @jhgaylor in #1535
- feat(buzz): the extension owns its supply chain, and BUNDLE_BUZZ builds a core image (#1509) by @jhgaylor in #1534
- fix(schema-guard): see an extension's responses, and declare what they render (#1536) by @jhgaylor in #1540
- feat(dist): the core distribution becomes a gate, and the switch covers every extension (#1510) by @jhgaylor in #1541
- fix(cli): stop a cached pass hiding a red examples test (#1542) by @jhgaylor in #1543
- feat(release): publish the core image beside the bundled one (#1510) by @jhgaylor in #1545
- feat(buzz): the provider moves to the extension, and actually ships (#1508) by @jhgaylor in #1546
- fix(buzz): wait for the registry before asserting on it (#1544) by @jhgaylor in #1547
- feat(docs): an extension owns its slice of the manual (#1510) by @jhgaylor in #1548
- feat(broker): BROKER_TENANTS takes
*, so the ratchet has an end state by @jhgaylor in #1553 - feat(marketing): core copy declares the extension it needs (#1525) by @jhgaylor in #1552
- fix(swift): stop cancelling URLSessionTasks that have already finished (#1410) by @jhgaylor in #1554
- docs(adr-0043): an extension contributes HTTP servers, never stdio (#1529) by @jhgaylor in #1549
- perf(ci): stop npm ci waiting on the advisories endpoint by @jhgaylor in #1556
- perf(ci): split the checks job into four that share nothing by @jhgaylor in #1559
- docs(broker): brokered credentials are on for every account by @jhgaylor in #1561
- chore(deps-dev): bump @types/node from 22.20.1 to 26.4.0 in /sdk/typescript by @dependabot[bot] in #1558
- chore(deps): bump the actions group with 4 updates by @dependabot[bot] in #1560
- chore(mix): stop using the deprecated --app in mix cmd (#1526) by @jhgaylor in #1563
- fix(buzz): drain the registry, not only the supervisor, at teardown (#1533) by @jhgaylor in #1567
- feat(api): claimable principals, so a computer survives registration (#1551) by @jhgaylor in #1564
- fix(conversations): the settle window always looks twice (#1429) by @jhgaylor in #1570
- fix(test): the sandbox connection is a queue, so let it queue (#1524, #1568) by @jhgaylor in #1573
- fix(test): the -core marketing assertions run only in a -core VM (#1574) by @jhgaylor in #1576
- fix(test): the rate-limit window test no longer races its own window (#1575) by @jhgaylor in #1577
- fix(deps): mint 1.10.0 closes two DoS advisories by @jhgaylor in #1589
- fix(test): pin the clock the dashboard turn-hours tile is read against (#1586) by @jhgaylor in #1587
- fix(buzz): await_stopped waits on the row the count reads (#1590) by @jhgaylor in #1591
- fix(test): give the verify-pending advances a real deadline (#1592) by @jhgaylor in #1594
- deps: bump mint to 1.10.0 in the Elixir SDK's lock too by @jhgaylor in #1588
- fix(ops): deduplicate gauges and tag turns by provider by @jhgaylor in #1597
- fix(api): render OpenAI envelopes for sandbox conflicts by @jhgaylor in #1598
- fix(sdk): keep npm latest on the newest stable release by @jhgaylor in #1599
- Lead with apps and refresh runtime and provider docs by @jhgaylor in #1600
- fix(api): report the authenticated key expiry by @jhgaylor in #1601
- fix(swift): stop status reads after run cancellation by @jhgaylor in #1603
- docs(ops): distinguish portable and hosted alert coverage by @jhgaylor in #1604
- fix(manifest): reject unknown spec keys before applying resources by @jhgaylor in #1605
- fix(cli): render published code changes and system notices by @jhgaylor in #1602
*...
v0.16.0
What's Changed
- docs(quickstart): give Linux the release binary, not only brew by @jhgaylor in #1327
- Speak to builders on the open-source launch page by @jhgaylor in #1328
- feat(connections): registry of remote MCP servers verified with discovery by @jhgaylor in #1323
- ci(release): open the bump as a PR and tag on merge by @jhgaylor in #1332
- docs(decisions): ADR 0037, component libraries extracted umbrella-first by @jhgaylor in #1346
- feat(libraries): managoat_substitution, the first umbrella library app by @jhgaylor in #1347
- feat(libraries): managoat_sandbox, the sandbox behaviour, three adapters and the conformance suite by @jhgaylor in #1349
- feat(libraries): managoat_mcp_auth, MCP authorization discovery and the URL guard by @jhgaylor in #1350
- feat(libraries): managoat_runner, the runner wire protocol, connection and adapter behind a host behaviour by @jhgaylor in #1352
- feat(libraries): managoat_docs, the compile-time manual, its renderer and its guardrails by @jhgaylor in #1354
- feat(libraries): managoat_oauth, the code+PKCE and device-grant state machine behind a host behaviour by @jhgaylor in #1356
- feat(libraries): managoat_broker, the egress credential proxy from #1148 as a library by @jhgaylor in #1355
- feat(broker): native broker backend beside Agent Vault, selected by BROKER_LISTEN_PORT by @jhgaylor in #1357
- feat(libraries): managoat_acp, the ACP peer, permission policy and blocks behind a writer callback by @jhgaylor in #1358
- docs(contributing): the one-VM trap for library test helpers by @jhgaylor in #1353
- chore(deps): bump golang from 1.26-bookworm to 1.27-bookworm by @dependabot[bot] in #1330
- chore(deps): bump softprops/action-gh-release from 3.0.2 to 3.0.3 in the actions group by @dependabot[bot] in #1331
- chore(sandbox): take the Sprites client from hex, pinned to 0.2.0 by @jhgaylor in #1360
- fix(libraries): two things the stand-alone gates found before graduation by @jhgaylor in #1367
- chore(libraries): managoat_substitution from hex by @jhgaylor in #1366
- feat(libraries): the graduation template, script and recipe by @jhgaylor in #1362
- chore(libraries): managoat_mcp_auth from hex by @jhgaylor in #1378
- chore(libraries): managoat_oauth from hex by @jhgaylor in #1379
- chore(libraries): managoat_acp from hex by @jhgaylor in #1380
- chore(libraries): managoat_sandbox from hex by @jhgaylor in #1381
- chore(libraries): managoat_docs from hex by @jhgaylor in #1382
- chore(libraries): managoat_broker from hex by @jhgaylor in #1383
- chore(libraries): managoat_runner from hex by @jhgaylor in #1385
- refactor(conversations): the size ratchet and honest section headers by @jhgaylor in #1384
- refactor(conversations): MCP server list and callback key out (McpServers, CallbackKey) by @jhgaylor in #1386
- docs(decisions): ADR 0038, onboarding is the path from verified to first reply by @jhgaylor in #1394
- feat(libraries): managoat_runtimes, how a coding agent gets into a sandbox speaking ACP by @jhgaylor in #1387
- chore(scripts): graduate-library keeps a library's extra package files by @jhgaylor in #1396
- refactor(conversations): sprite environment assembly and runtime file writes out (SpriteEnv, Provisioning) by @jhgaylor in #1395
- feat(api): sandbox files and git diff, read-only (ADR 0039) by @jhgaylor in #1397
- refactor(conversations): egress brokerage and connection secrets out (Egress) by @jhgaylor in #1398
- chore(libraries): managoat_runtimes from hex by @jhgaylor in #1400
- refactor(conversations): the turn machinery and peer reports as a state machine (TurnMachine) by @jhgaylor in #1401
- refactor(conversations): pending permissions and parked caller tools out (Pending) by @jhgaylor in #1402
- refactor(conversations): sandbox reclaim actions into Lifecycle by @jhgaylor in #1403
- feat(sdk): add Elixir client by @jhgaylor in #1409
- feat(sdk): add Swift client by @jhgaylor in #1408
- feat(sdk): add Python client by @jhgaylor in #1407
- feat(funnel): activation is the first conversation with a reply by @jhgaylor in #1416
- feat(sdk): make OpenAPI the canonical wire contract for every client by @jhgaylor in #1417
- feat(billing): platform inference keys, metered against credits (#1388) by @jhgaylor in #1419
- feat(onboarding): a default agent in every account at verification by @jhgaylor in #1420
- feat(sdk): a shared cross-language behavioural conformance suite by @jhgaylor in #1425
- test: scratch paths two concurrent suites cannot collide on by @jhgaylor in #1428
- feat(onboarding): the verified landing is a key, one request, the reply by @jhgaylor in #1426
- test(api): guard the schema against its own controller by @jhgaylor in #1442
- refactor(onboarding): drop users.onboarding_state (#1393) by @jhgaylor in #1447
- feat(cli): auth register waits for verification; quickstart runs the request by @jhgaylor in #1443
- docs(sandbox): ADR 0040 for Render, and the Render column in platform-requirements by @jhgaylor in #1449
- fix(api): LogEvent renders state and stage as null, not "" by @jhgaylor in #1445
- copy(docs): tighten sandbox platform requirements by @jhgaylor in #1450
- docs(sandbox): mark Render Sandboxes as early access by @jhgaylor in #1451
- fix(api): one shape for every 422 by @jhgaylor in #1448
- fix(funnel): re-decompose the stalled breakdown around the starter agent (#1421) by @jhgaylor in #1453
- ci(sdk): publish the Elixir package from Actions by @jhgaylor in #1452
- fix(sdk): make the Swift package release-ready by @jhgaylor in #1454
- chore(release): v0.16.0 by @jhgaylor in #1455
Full Changelog: v0.15.0...v0.16.0
v0.15.0
What's Changed
- docs: drop the MIT-through-v0.12.0 history from the README and the open-source page by @jhgaylor in #1192
- feat: Open Graph and Twitter cards on every page by @jhgaylor in #1193
- feat(brand): BRAND_ASSETS_URL serves the icon, favicons and card from any static host by @jhgaylor in #1194
- feat(marketing): rewrite the homepage above the pricing section by @jhgaylor in #1195
- chore(deps): Bump github.com/coder/websocket from 1.8.12 to 1.8.15 in /cli in the go-deps group by @dependabot[bot] in #1189
- fix(conversations): wake a dead server before giving up on interrupt by @BinaryBourbon in #1180
- feat(api): agent config versions and conversation provenance over the API by @jhgaylor in #1056
- feat(api): OpenAI-compatible /v1/chat/completions where the model is an agent by @jhgaylor in #1199
- fix(provision): retry the runtime config write, and fail cleanly if it still cannot land by @jhgaylor in #1200
- feat(examples): Deep Agents orchestrator with Fountain agents as subagents by @jhgaylor in #1201
- feat(api): tool bridge on /v1/chat/completions and AG-UI, the caller's tools come back as tool_calls by @jhgaylor in #1203
- fix(conversations): the caller's tools ride on the attach create path too (#1202) by @jhgaylor in #1204
- feat(marketing): an integrations page, the protocols Fountain speaks and what speaks them by @jhgaylor in #1207
- docs(openbot): the tool bridge exists now, say so by @jhgaylor in #1208
- docs: client-side search over titles and headings (#1009) by @geekyNads in #1210
- feat(marketing): a gallery of what people built on the API, at /built-with by @jhgaylor in #1211
- feat(marketing): a landing page for running it yourself, at /self-hosted by @jhgaylor in #1212
- copy(marketing): a headline for /self-hosted that is true and sells something by @jhgaylor in #1213
- fix(compose): forward the four app-facing vars, and guard what a guide tells you to set by @jhgaylor in #1215
- fix(test): async modules must not write global application env by @jhgaylor in #1214
- docs(deploy): the prerequisites an operator needs, and a cold start that is not a failure by @jhgaylor in #1216
- fix(compose): the features /self-hosted says you switch on are now reachable by @jhgaylor in #1217
- copy(marketing): /self-hosted sells the platform, not the machine by @jhgaylor in #1218
- feat(marketing): a case study, an estate that answers its own alerts by @jhgaylor in #1220
- copy(marketing): the three apps we build ourselves lead the pages by @jhgaylor in #1219
- copy(case-study): the headline concedes the pager and drops "him" by @techietequila in #1221
- copy(marketing): the homepage becomes a funnel, lane by lane by @lex00 in #1222
- fix(test): the caller-tool stage row is read after the server has written it by @jhgaylor in #1223
- refactor(runner): what a sandbox is made of becomes a Backend by @jhgaylor in #1224
- feat(runner): a Firecracker microVM for each sandbox by @jhgaylor in #1225
- docs(runner): the Firecracker backend is verified on hardware, and a broker tenant cannot use a runner by @jhgaylor in #1226
- fix(runner): a microVM's sandbox path is /home/sprite, not the host's state directory by @jhgaylor in #1227
- copy(marketing): the self-healing case study says the same thing in fewer words by @jhgaylor in #1228
- feat(marketing): a code review bot, whole, on one screen by @jhgaylor in #1229
- docs(primitives): redraw the diagram as three stages, and pin its two copies by @jhgaylor in #1230
- copy(marketing): unlist /code-review-bot until somebody has run it by @jhgaylor in #1231
- copy(marketing): every line of the case study defends itself, or changes by @jhgaylor in #1232
- design(tokens): brand color matches the managoat logo's blue by @beauregardhenry in #1233
- copy(marketing): trim the self-hosted hero to one line before the CTA by @beauregardhenry in #1234
- feat(marketing): /self-hosted leads with the bring-up by @jhgaylor in #1235
- design(marketing): the footer wraps into groups instead of one long row by @jhgaylor in #1237
- copy(marketing): the homepage sells infrastructure to builders by @jhgaylor in #1236
- The docs stop sounding like an assistant wrote them by @jhgaylor in #1239
- Docs CI: a third prose gate, for AI-writing tells (re-target of #1240) by @jhgaylor in #1242
- docs: name the three prose gates on the contribute page by @jhgaylor in #1243
- feat(deploy): a Render blueprint, for an instance that is not ours by @jhgaylor in #1244
- copy: say what Fountain is before saying what it saves you by @jhgaylor in #1246
- chore: drop .sops.public-key, missed when SOPS left by @jhgaylor in #1245
- The demo suite moved to *.demo.managoat.com by @jhgaylor in #1247
- Take Reflex off /built-with, and finish the URL move #1247 left half-done by @jhgaylor in #1248
- feat(deploy): Fly, Coolify, and a name for the hosts that do not work by @jhgaylor in #1249
- copy: rework the problem lead-in, cut the teammate contact section by @jhgaylor in #1250
- feat(marketing): one page for the questions, at /faq by @jhgaylor in #1251
- Restructure /self-hosted around the bring-up by @beauregardhenry in #1253
- chore(destink): switch to the published sentences package, drop the vendor tree by @lex00 in #1254
- copy: say each thing once on the homepage by @jhgaylor in #1255
- copy(marketing): the homepage sells an outcome, and shows the manifest by @jhgaylor in #1257
- design(marketing): the homepage gets a shape, and the tokens get a guard by @jhgaylor in #1258
- fix(web): version the tokens.css URL, so a deploy cannot land on a cached one by @jhgaylor in #1259
- design(marketing): the site on paper by @jhgaylor in #1260
- copy(marketing): one grammar for the six cards, one job for the subhead by @jhgaylor in #1261
- copy(marketing): the setup h2 says what you get for writing it by @jhgaylor in #1262
- copy(marketing): the homepage titles itself by @jhgaylor in #1263
- copy(marketing): the case study callout says cluster by @jhgaylor in #1264
- copy(marketing): agents are started, not hired by @jhgaylor in #1266
- docs: credit the sentences package in the prose-check table by @lex00 in #1256
- copy(marketing): the case study card ends on the credential, and stops underselling the estate by @jhgaylor in #1267
- marketing: the limits move to the FAQ, and the homepage becomes two forks by @jhgaylor in #1268
- copy(marketing): the foot of the homepage, in one voice by @jhgaylor in #1271
- Sharpen the homepage argument by @jhgaylor in #1272
- Refine self-hosted marketing copy by @jhgaylor in #1273
- Fix self-hosted ownership timeline artifact by @jhgaylor in #1274
- Clarify the self-hosted first boot sequence by @jhgaylor in https://gith...
v0.14.0
What's Changed
- docs: the manual catches up with the sandbox, team and contact APIs by @jhgaylor in #1173
- fix(web): env edit page 500s when a package value is not a list by @jhgaylor in #1174
- fix(broker): brokered sandboxes trust the MITM CA across uv/pip/cargo, not just Node by @jhgaylor in #1175
- dev: register the reflex OAuth client by @jhgaylor in #1176
- feat(connections): Gmail via OAuth — tenant signs in once, Fountain holds the credential (#1178) by @jhgaylor in #1182
- fix(connections): gmail_search 500 — Gmail's multi-valued params are repeated keys by @jhgaylor in #1183
- fix(broker): a refused vault create is checked against the vault list before it fails a prepare by @jhgaylor in #1184
- The hosted Fountain is managoat.com (#1177) by @jhgaylor in #1188
- docs: Open source page + ADR 0034, the project has no site of its own by @jhgaylor in #1190
- changelog: roll [Unreleased] into 0.14.0 by @jhgaylor in #1191
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- chore(buzz-acp): repin the fork to carry block/buzz#6101 (owner commands with mention text) by @jhgaylor in #787
- feat(acp): honour _meta.freshSession — !rotate opens a new channel conversation; repin buzz-acp to fountain.3 by @jhgaylor in #788
- fix: a lost reuse wake race drops the prompt instead of handing it off (#667) by @jhgaylor in #786
- fix(buzz): honor the desktop's respond_to policy on a hosted harness by @jhgaylor in #791
- chore(buzz-acp): repin to fountain.4 — publish the kind:10100 directory entry (block/buzz#6097) by @jhgaylor in #792
- feat(buzz): set who may @-mention a hosted agent after deploy — PATCH /api/buzz/agents/:id + fountain buzz agents set-access by @jhgaylor in #794
- docs: a fountain acp reference page, and "Operating a hosted agent" on the Buzz page by @jhgaylor in #795
- fix(billing): suspend-aware usage metering — parked time no longer inflates sandbox-minutes (#665) by @BinaryBourbon in #789
- docs: say where the nav is mirrored, at the two places a docs editor actually looks by @jhgaylor in #796
- fix(conversations): a transient provider error no longer retires a live sandbox (#799) by @jhgaylor in #801
- fix(conversations): a wake onto a fresh sandbox starts a new runtime session (#778) by @jhgaylor in #802
- feat(team): a messaging-style team page — agents as teammates, one conversation each by @jhgaylor in #804
- fix(conversations): a prompt that finds a pending sandbox waits for its server instead of racing it (#800) by @jhgaylor in #803
- feat(team): name a teammate and pick its environment and vault when adding it by @jhgaylor in #807
- feat(team): schedules — a cron that runs a teammate with a prompt, in its thread or on a one-off computer by @jhgaylor in #808
- fix(team): a teammate keeps its agent's name — no generated summary over a team conversation's title by @jhgaylor in #809
- feat(api): the team over the API — /api/team, one SSE stream for the whole team, opt-in CORS by @jhgaylor in #811
- fix(api): the team stream sends a first byte before anything else by @jhgaylor in #812
- feat(api): blocks over the API, and every conversation on one SSE stream by @jhgaylor in #814
- feat(api): GET /api/catalog and POST /api/avatars/generate by @jhgaylor in #816
- feat(auth): "Sign in with Fountain" — OAuth 2.0 code + PKCE for the browser apps by @jhgaylor in #819
- feat(integrations): Hermes Agent plugin — Fountain agents as Hermes tools by @jhgaylor in #824
- feat(api): team schedules over the API (#825) by @jhgaylor in #828
- feat(api): token usage per turn and per conversation (#827) by @jhgaylor in #829
- feat(api): GET /api/search across a user's conversations and turns (#826) by @jhgaylor in #830
- feat(sandbox): self-hosted runner provider — a user's own machine as a backend (ADR 0022) by @jhgaylor in #833
- feat(api): rename a teammate and list its history (#831, #832) by @jhgaylor in #835
- feat(team): presence and roster fields for runner-backed teammates (#834) by @jhgaylor in #836
- fix(acp/claude): make MCP servers actually work — provision into the sandbox (#837) by @jhgaylor in #838
- fix(team): a pending conversation on a ready sandbox is online, not "starting computer" by @jhgaylor in #839
- feat(team): a fresh conversation on the same computer — POST /api/team/:agent_id/conversations by @jhgaylor in #840
- feat(onboarding): ask for Anthropic only; collect other providers' keys when a model first needs them (#841) by @jhgaylor in #842
- feat(support): POST /api/support/reports — "Report a problem" with context, forwarded to the operator (#843) by @jhgaylor in #844
- fix(agents): deliver the system prompt to the runtime (#848) by @jhgaylor in #849
- feat(team): teammates that know each other — the fountain-team MCP — and a bundled /create-team skill (#851) by @jhgaylor in #852
- feat(team): a teammate with its own email address and phone number (PoC, flag team_comms) by @jhgaylor in #850
- team: a from-line that states the trust boundary on teammate messages by @jhgaylor in #853
- fix(team): AgentMail client_id without a colon; provider refusals are 424, not 502 by @jhgaylor in #854
- team: wait_for_teammate — block for a teammate's reply instead of polling by @jhgaylor in #855
- ci: skip the main re-run when the merged PR already tested this exact tree by @jhgaylor in #856
- feat(team): change a teammate's prompt number without re-buying; texts carry the trust line by @jhgaylor in #857
- fix(team): an AgentPhone persona per teammate number; voice calls declined; provider errors described by @jhgaylor in #858
- feat(team): SMS opt-in consent on the contact form; STOP/START/HELP honoured inbound (A2P/10DLC) by @jhgaylor in #859
- oauth: register the dns-desk client by @jhgaylor in #862
- fix(agents): re-wire system-prompt delivery lost in #850's merge by @jhgaylor in #863
- k8s: admit the demo-suite origins (CORS + OAuth clients) by @jhgaylor in #864
- api: first_prompt on conversation JSON by @jhgaylor in #865
- k8s: admit mend.inevitable.fyi (CORS + OAuth client) by @jhgaylor in #867
- apps: one place that knows where the browser apps live by @jhgaylor in #866
- docs: the two app URL vars the config guard asked for by @jhgaylor in #868
- The web UI is a console by @jhgaylor in #869
- docs: tell a self-hoster where the conversation UI went by @jhgaylor in #870
- Usage on the console's dashboard by @jhgaylor in #871
- k8s: admit rounds.inevitable.fyi (CORS + OAuth client) by @jhgaylor in #872
- The tokens tile counted a rounding error by @jhgaylor in #874
- Promote the account menu into the sidebar by @jhgaylor in #875
- A TypeScript SDK: fountain.run(prompt, {agent, environment, vault}) by @jhgaylor in #876
- The SDK surface the applications actually use, over generated types by @jhgaylor in #877
- The docs theme painted a box behind every line of code by @jhgaylor in #879
- Bake the highlighter's parsers into the image by @jhgaylor in #883
- The image build cannot read a doc snippet it was never given by @jhgaylor in #884
- feat(agui): Fountain speaks AG-UI, so an OpenBot coworker can be a Fountain agent by @jhgaylor in #873
- One Integrations section held two unrelated jobs by @jhgaylor in #889
- A docs typo ran the whole Elixir suite, and no docs check at all by @jhgaylor in #891
- An orphaned
sleepheld CI's pipe open for five minutes a run by @jhgaylor in #892 - The bot messenger everyone is cloning, minus the half that is hard by @jhgaylor in #893
- Write the build pages like a person by @jhgaylor in #896
- Six test partitions, because the slowest one is the wall-clock by @jhgaylor in #895
- The nav was written twice and only checked by a test that looked unrelated by @jhgaylor in #894
- The image should not claim to be a commit by @jhgaylor in #897
- k8s: drop all c...
v0.12.0
What's Changed
- ci(build): docs/ and CHANGELOG.md changes build the image — they are in it by @jhgaylor in #770
- docs(openclaw): scope the two-conversations limit and the proof to versions actually run by @jhgaylor in #771
- fix(acp): a turn in flight across a deploy no longer hangs on reattach by @jhgaylor in #772
- fix(buzz): resolve a harness's launch in the child start, not in the Horde spec by @jhgaylor in #773
- feat(conversations): channel-bound conversations — resume by channel_id, forwarded from ACP _meta (#774) by @jhgaylor in #775
- chore(buzz-acp): point the fork pin at #776 by @jhgaylor in #777
- fix(buzz): a harness that loses a Horde name conflict stops instead of running unregistered by @jhgaylor in #780
- test(acp): settle/1 tolerates a peer that stopped between the alive check and the sync by @jhgaylor in #782
- feat(conversations): per-launch environment override — environment_id on create, --environment on acp/run, Buzz passthrough (#783) by @jhgaylor in #784
- docs(changelog): roll [Unreleased] into 0.12.0 by @jhgaylor in #785
Full Changelog: v0.11.0...v0.12.0
buzz-acp v0.5.14-fountain.4
buzz-acp v0.5.14-fountain.3
buzz-acp v0.5.14-fountain.2
v0.11.0
What's Changed
- docs: 0016's status stops listing built things as missing by @jhgaylor in #733
- docs: ADR 0020 — Buzz as a client of the ACP gateway by @jhgaylor in #734
- feat(buzz): BuzzIdentity primitive + hosted buzz-acp Harness (ADR 0020 gate 2, increment 1) by @jhgaylor in #739
- feat(buzz): Horde supervisor + Manager + boot sweep for hosted harnesses (ADR 0020 gate 2, increment 2a) by @jhgaylor in #740
- docs: decisions/ is an OKF bundle, validated in CI by @jhgaylor in #741
- feat(buzz): bake buzz-acp + fountain CLI into the image (ADR 0020 gate 2, increment 2b-i) by @jhgaylor in #742
- ci(buzz): workflow to build & publish arm64+amd64 buzz-acp (#743) by @jhgaylor in #744
- feat(buzz): image bakes our own buzz-acp for both arches (#743) by @jhgaylor in #745
- fix(buzz): reap buzz-acp on stop via a port middleman — no more orphans (#736) by @jhgaylor in #746
- feat(buzz): surface buzz-acp output on the Logger (#736) by @jhgaylor in #747
- ci(buzz): publish the buzz CLI alongside buzz-acp (gate 3, #737) by @jhgaylor in #748
- feat(buzz): bake the buzz CLI into the image (gate 3, #737) by @jhgaylor in #749
- feat(buzz): MCP tool layer for the reply path (#737) by @jhgaylor in #750
- feat(buzz): HTTP MCP endpoint for the reply path (#737) by @jhgaylor in #751
- feat(buzz): give the sandboxed agent the reply tools (#737) by @jhgaylor in #752
- feat(buzz): provision_identity/2 — the Fountain side of the provider deploy (#738) by @jhgaylor in #753
- feat(buzz): REST API for hosted Buzz agents (#738) by @jhgaylor in #754
- feat(buzz): buzz-backend-fountain remote-agents provider (#738) by @jhgaylor in #755
- fix(buzz): set BUZZ_ACP_RELAY_OBSERVER so the desktop's ACP activity panel populates by @jhgaylor in #756
- docs: OpenClaw as an ACP client of fountain acp (0015 addendum) by @jhgaylor in #757
- docs(0015): OpenClaw acpx smoke verified on Node 24 (residual #1 closed) by @jhgaylor in #758
- fix(acp): accept session/set_config_option instead of rejecting it by @jhgaylor in #759
- docs: Buzz integration page + in-app diagram rendering by @jhgaylor in #761
- docs(0020): refresh status — Phases 1-3 built, PDP gating is not by @jhgaylor in #763
- Migrate markdown rendering from Earmark to MDEx (#762) by @jhgaylor in #764
- docs: heading ids on the trusted markdown path so #anchor links resolve (#765) by @jhgaylor in #766
- fix(acp): set_config_option reply advertises no config-option list — OpenClaw gateway round trip green (#760) by @jhgaylor in #767
- docs(changelog): v0.11.0 — hosted Buzz agents, OpenClaw, MDEx by @jhgaylor in #768
- docs(openclaw): OpenClaw-side agent, allowedAgents, persistent mode, verification tell by @jhgaylor in #769
Full Changelog: v0.10.2...v0.11.0