Repository navigation
fragment v0.14.0
·
696 commits
to master
since this release
What's Changed
- A hand-off changes the owner's apps: fragments, on a throwaway made their editor by @futurepaul in #82
- The desktop's app panes say who may open each app, share it, and who has it open by @futurepaul in #83
- The share sheet as a Docs-style card, in a dialog on the home by @futurepaul in #85
- __files is a files viewer: a tree beside a reader, compiled into the cell by @futurepaul in #84
- The share sheet in a dialog in the owner's desktop, signed in through __share by @futurepaul in #86
- A desktop updates itself to its template's latest files (__template) by @futurepaul in #87
- The desktop's share dialog falls back to a window when the sheet never shows by @futurepaul in #88
- The desktop's share dialog says it is opening until the sheet shows by @futurepaul in #89
- Self-hosted computers: sandcastle, and a credential route for its nodes by @futurepaul in #90
- sandcastle: the rewrite to engineering style (core, simulator, real-engine e2e) by @futurepaul in #91
- sandcastle phase 5: budgets (reserve, admission, measured capacity) and services under their image's init by @futurepaul in #92
- sandcastle: sleep tiers: idle computers pause (warm) or stop (cold), and a request wakes them (phase 5 step 3) by @futurepaul in #93
- sandcastle: cors_origins, and the e2e chats with Hermes over its native socket (Hermes chat, phase 1) by @futurepaul in #94
- hermes: a fragment's own Hermes on sandcastle, bound Finite's way (phases 2–3) by @futurepaul in #95
- hermes template: a chat page straight to the fragment's Hermes (phase 4), and fragment-club's grantor config by @futurepaul in #96
- docs/runtime-seam.md: one computer wherever it runs (decisions of 2026-09-30) by @futurepaul in #97
- sandcastle: a computer reached by its key over iroh, measured on lat-6 (docs/runtime-seam.md) by @futurepaul in #98
- KEYS signs admissions (step 1 of the cut to one computer) by @futurepaul in #100
- One computer: Hermes by its key, the computer client on every host, and Hermes as a preset by @futurepaul in #101
- Hosted e2e: a hermes section (the hosted proof) by @futurepaul in #102
- Hermes on the platform's new-fragment page by @futurepaul in #104
- Hermes' socket: the fake and the lane as real Hermes answers by @futurepaul in #105
- One home, phase 1: the design, and the chat for anyone by @futurepaul in #106
- One home, phases 2–4: Hermes answers chats through its Relay, its desktop image, and its screen by @futurepaul in #107
- One home, phase 5: the desktop is home, new chats choose who answers, editors trusted as owners by @futurepaul in #108
- Hermes: one Relay, however its chat joins (fixes 403 deliveries on fragment.club) by @futurepaul in #109
- Hermes: its model in config.yaml, where its gateway reads it (fixes 400s on fragment.club) by @futurepaul in #110
- Hermes: approvals from the chat's owner and editors, mid-turn (fixes a stuck turn on fragment.club) by @futurepaul in #111
- fragment v1 on Cloudflare: the plan of record and phase 1's hard cut by @futurepaul in #112
- docs/cloudflare-v1.md: AI Gateway's second half, lessons from cloudflare/agents, two defaults by @futurepaul in #113
- ci: check only until the e2e runs on Cloudflare by @futurepaul in #114
- Phase 2: the cell on Cloudflare (workerd, in-cell keys, wrangler deploys), plus the ledger core by @futurepaul in #115
- Phases 3–4: the usage ledger, and computers through the real-Hermes lane by @futurepaul in #116
- Phase 5: the shell and the blessed templates by @futurepaul in #117
- Phases 6 and 7: brains, skills, cards, the hosted lane by @futurepaul in #118
- Agents share on their owner's behalf by @futurepaul in #119
- xtask brings its own Node; nothing from PATH by @futurepaul in #120
- e2e: the routine check waits for its computer to sleep by @futurepaul in #121
- Credentials: the provider catalog, per-agent placeholders, Google and the operator keys by @futurepaul in #122
- CI under 10 minutes: no webhook stalls, a working cache, four e2e shards by @futurepaul in #125
- cli: init prints the webhook URL with the fragment's full name by @futurepaul in #123
- computer: the container's reports reach their routes by @futurepaul in #126
- check: every first-party JavaScript file through node --check by @futurepaul in #124
- deploy: after a rollback, live takes main's files, not a three-way merge by @futurepaul in #127
- dev: Ctrl-C stops wrangler with xtask by @futurepaul in #129
- cli: TLS trusts the OS's roots beside the public ones by @futurepaul in #130
- computer: a container that dies while it starts meters nothing by @futurepaul in #131
- e2e, chat: Stop clicked on the slow message's own turn by @futurepaul in #132
- secrets: the deployment's secrets live in its Cloudflare Secrets Store by @futurepaul in #134
- docs: durable turns, what Pi Durable teaches our computers (an exploration) by @futurepaul in #135
- bridge: a turn runs only in the life that claimed it (P1, with its tests) by @futurepaul in #137
- cli: login opens the link without waiting for the browser by @futurepaul in #140
- computers: a crash lever, a wake that says what it restored, the snapshot as a cache of the save by @futurepaul in #136
- bridge: a terminal command's fenced block is its step's arguments, not a step by @futurepaul in #138
- bridge: an agent asking in words gets the asker's next message as its answer by @futurepaul in #139
- Every hosted agent knows its platform: a built-in fragment skill, and the skills fragment backfilled by @futurepaul in #142
- docs: durable computers, the design of record by @futurepaul in #141
- The desktop: Take over reaches it, the agent operates it, and gws by @futurepaul in #143
- Computers: saving is a lifecycle action (A+ step 1, 1/4): three saves, the hold handshake, failed sleeps keep their container by @futurepaul in #147
- Computers: a held save leaves out what its guest copied; our Hermes image copies its databases online (A+ step 1, 2/4) by @futurepaul in #148
- Hermes image: Litestream is cut; the saves carry Hermes' databases (durable computers, step 1's end) by @futurepaul in #150
- Computers: the seam, /data/work saved on its own (durable computers, step 2) by @futurepaul in #149
- docs: the SimpleX connector exploration, parked by @futurepaul in #152
- images, docker test: the scripted tool turn lasts long enough to show its step by @futurepaul in #145
- A vision model for Hermes' screenshots: the route's
vision, GLM-5.3 Flash by @futurepaul in #154 - images/hermes: Hermes installs software as root, gone at the next start by @futurepaul in #146
- The shell's sidebar is live: an agent's app shows without a reload by @futurepaul in #158
- bridge: an open card keeps its computer awake, so a missed card's next message is answered by @futurepaul in #159
- e2e: concurrent runs keep their computers apart and remove their own containers by @futurepaul in #155
- e2e, agents: wait for the say's ops record as well as the answer by @futurepaul in #157
- One reply per turn: a model's text beside a tool call is the step's words, not a message by @futurepaul in #160
- cell: a template lands in one seed; a commit that changes nothing answers main's tip by @futurepaul in #163
- shell: a late skills backfill shows in settings; its e2e check waits for the first commit by @futurepaul in #162
- Hosted desktop: Chromium's container flags on any runtime; the screen follows the desktop by @futurepaul in #161
- bridge: a first start makes its state directory, and so /data, at once by @futurepaul in #151
- Docker rung: the tool turn outlasts Hermes' progress poll by @futurepaul in #153
- P5: a turn a restart cut is closed in Hermes' session and the next turn is told what was cut by @futurepaul in #169
- e2e: agent-smoke, a real agent on a preview (Hermes on Containers, a real model, Chrome) by @futurepaul in #164
- Hosted: a computer's own sockets never wake it as it sleeps; Hermes sends a held tool step by @futurepaul in #171
- A fragment's delete answers at once; its members' lists, app database and blobs go after by @futurepaul in #172
- e2e: the hosted settle check waits out a model call Hermes makes after its reply by @futurepaul in #173
- Hermes image: the hold is answered once the desktop has drawn, or a browser runs by @futurepaul in #175
- ContainerHost.port: drop a message that arrives once the bridge is closed by @futurepaul in #166
- e2e, hermes: the install's posts take ids no other check uses by @futurepaul in #170
- e2e: the run's client drops an idle connection before workerd does by @futurepaul in #168
- URGENT templates/skills: remove powerpoint-finite (Anthropic's proprietary license) by @futurepaul in #200
- cell: cut a computer's S3 endpoint (storage.fragment.internal) by @futurepaul in #177
- hermes-boot: the repo sync deletes only what the other side was read whole without by @futurepaul in #181
- bridge: a Hermes turn ends at its reactions with no clock; questions by glyph (#156, problem 9) by @futurepaul in #184
- hermes: no bundled skills, stage2 unpatched (#156 head scratchers 1, 2) by @futurepaul in #204
- cell: a save let go of is kept until its archive's delete worked by @futurepaul in #176
- cell: a computer's exec holds only its output's tail, and is killed past its bound by @futurepaul in #179
- cell: a job step runs at least once; a changing fetch names its step by @futurepaul in #180
- cell: the blob store, the agents' binding and streams through workers-rs's own types by @futurepaul in #183
- cell: a connection's token is asked of Pipes for each swap, never held by @futurepaul in #185
- cell: search copies follow the channels every member may read (#156, problem 5) by @futurepaul in #186
- cell: the poll backstop runs only while the pins may lag the repo (#156 H10) by @futurepaul in #188
- cell: an outbound read is bounded in time and size as it streams by @futurepaul in #190
- cell: the storage meter stops asking the app its size by @futurepaul in #193
- cell: a fragment's status names the code that runs (#156 H9) by @futurepaul in #194
- cell: one presence protocol; ?v=2 is no longer asked for by @futurepaul in #207
- cell: cut __tree and GET /api/f/{name}/file/stat (only the e2e called them) by @futurepaul in #209
- e2e: cut the harness helpers nothing calls by @futurepaul in #202
- templates: drop the notes viewer's 21 dead chunks (638 KB), one agent.png by @futurepaul in #203
- e2e: cut the summary machinery; CI's e2e is green when every shard is by @futurepaul in #191
- cli: cut deploy --preview, manifest-set, the code.storage override, two sync flags by @futurepaul in #192
- cell: fragments are always on their own hosts; no path mode by @futurepaul in #213
- platform: the facet ledger's shims for rows from before runs go by @futurepaul in #216
- e2e: two races: share's quiet list waits for its install, shell's group for its heading by @futurepaul in #217
- cell: a run whose app code changes under it starts over on the new code by @futurepaul in #178
- cell: an operator key's call is held on its owner's ledger before it is made by @futurepaul in #182
- docs: the registry singleton, its costs and trigger (#156, problem 8) by @futurepaul in #187
- (decision for Paul) devstack: the pinned Node alone; FRAGMENT_NODE and WRANGLER_BIN go by @futurepaul in #199
- (decision for Paul) xtask: drop the secrets-migration shim; serde refuses the old fields by @futurepaul in #201
- hermes-boot: an agent's tier unread is said, never defaulted (#156 head scratcher 7) by @futurepaul in #205
- shell: cut the desktop's leftovers; one stylesheet by @futurepaul in #212
- fakes: cut what no test or tool calls by @futurepaul in #208
- cell: no migrations of state from before Cloudflare by @futurepaul in #197
- cell: the shell's sidebar is one read of the person's list by @futurepaul in #211
- cell: a fragment's alarm takes its preview card's shot itself (#156, head scratcher 4) by @futurepaul in #189
- cell: no code.storage push webhooks; a writer refreshes (#156 H10, stacked on #188) by @futurepaul in #215
- cell: one-value config knobs go; push's VAPID sub is the platform origin (was an unreachable .invalid mailto) by @futurepaul in #210
- cell: no moved hosts (FRAGMENT_LEGACY_HOST_SUFFIX) (decision for Paul) by @futurepaul in #214
- cli: cut sync --install/--uninstall and --mirror-from (decision for Paul) by @futurepaul in #195
- docs: cut the history, keep the contract (#156 audit) by @futurepaul in #198
- cell: cut the manifest's notifyUrls (decision for Paul) by @futurepaul in #218
- cell: cut the browser library's notify export (decision for Paul) by @futurepaul in #219
- shell: cut backfillSkills (decision for Paul) by @futurepaul in #220
- docs: ROADMAP.md and fragment-boats.md go; cited decisions become cloudflare-v1's R4-R18 by @futurepaul in #206
- Cut goose: Hermes on a computer is the one agent runtime by @futurepaul in #196
- Hermes' container guesses pinned: an agent's home is the same on Docker and Containers by @futurepaul in #167
- e2e: a sweep removes one run's fragments; --sweep-all the rest, sparing the young by @futurepaul in #174
- hermes: an agent's home is in its work (~ → /data/work//home) by @futurepaul in #223
- xtask: teardown removes a branch's queue consumers before its Worker by @futurepaul in #224
- hermes: what Hermes writes under the hold, chosen (catalog off, Node's cache out of /data) by @futurepaul in #225
- An operator's wipe of a person (fragment operator wipe) by @futurepaul in #226
- Agents ask each other: @ lists all your agents, fragment ask, the bridge counts the hops by @futurepaul in #228
- A screen per agent: each agent's own desktop, Take over through Hermes' lease, idle desktops stop by @futurepaul in #230
- images CI: the Docker lane (real Hermes) on PRs that touch the images by @futurepaul in #252
- A wipe never waits on the lists it empties; a cleanup's failures are named (p5's stuck wipe) by @futurepaul in #256
- models: voice memos transcribed through the model route (Workers AI's Whisper) by @futurepaul in #229
- A fragment's host label is one DNS label: refused past 63 bytes, never cut by @futurepaul in #251
- Hermes v0.21.6: move to upstream's first stable (pinned digest) by @futurepaul in #231
- hermes: an agent's temp files are in its work (cache/scratch → /data/work//tmp) by @futurepaul in #227
- Computers: their owner is told, and Restart is the way back to working by @futurepaul in #255
- GUIDE: build discipline in First moves, and a short design section by @futurepaul in #233
- The platform serves the agent docs: /llms.txt (SKILL.md) and /llms-full.txt (GUIDE.md) by @futurepaul in #235
- A platform stylesheet a page may link (__fragment.css), used by the blank template by @futurepaul in #234
- The page's errors from the card's shot, on status and in events by @futurepaul in #237
- Agents run on GLM-5.3 Flash by default (Paul, 2026-10-08) by @futurepaul in #273
- hermes: Bot Mode on, each agent's own chat its Bot Chat; messages between bots are turns in their chats by @futurepaul in #272
- People and billing: npub identities, email sharing, orgs, Stripe seats, trials, packs, operator admin (#254–#269 rebased) by @futurepaul in #271
- hermes: Bot Mode polish: one answer per bot, bots named by title, no chat joined by @futurepaul in #274
- Mail from a named sender; agent-restart reads npub identities by @futurepaul in #275
- A first-time person's path: a guest's home, an org of one, shared titles, one name by @futurepaul in #276
- e2e: checkout, a guest's seat bought on Stripe's own Checkout in Chrome by @futurepaul in #277
- e2e: the rehearsal's sweep makes its decoys by the names it checks by @futurepaul in #279
- A sweep's sign-in leaves the paid calls a running lane lent as they are by @futurepaul in #278
- models: a failed call is made once more on a fallback model (DeepSeek V4 Flash) by @futurepaul in #281
- Skills: keep ours where they're ours, Hermes' and upstream's where they're better by @futurepaul in #280
- Connect your models: a person's own OpenRouter, from settings (decision 60) by @futurepaul in #282
- models: DeepSeek V4 Flash is the cheap tier, GLM-5.3 Flash its fallback by @futurepaul in #283
- hermes: an agent's own desktop never asks its owner by @futurepaul in #284
- Operator keys for Hermes' tool categories: Firecrawl, FAL, ElevenLabs, a cloud browser; Perplexity and X search wired by @futurepaul in #285
- models: GLM-5.3 Flash is the cheap tier again, DeepSeek V4 Flash its fallback by @futurepaul in #286
- images/hermes: layer the image so a code-only deploy pushes 9 MB, not 1.5 GB by @futurepaul in #287
- hermes: a stalled call falls back to the route's fallback, by Hermes' own switch by @futurepaul in #290
- shell: a new agent says hello first; its job is its SOUL.md, never your first message by @futurepaul in #288
- chat: a clarify's Other is answered on its card, in words, with Enter by @futurepaul in #289
- cell: a post answers first; computers are woken without the queue by @futurepaul in #291
- hermes: no blocked credentials in env passthrough; the fragment skill's references exist by @futurepaul in #292
- hermes: a bot's answer comes back after a restart by @futurepaul in #293
- Fragments look better by default: optchat's stylesheet and guidance; apps have no header unless asked by @futurepaul in #294
- shell: an app beside the chat, new chats with an agent, unread badges by @futurepaul in #297
- Chat: the owner's commands (Hermes' manifest less what changes the install), queued messages, Steer, Reply by @futurepaul in #296
- chat: video and PDF inline, earlier messages, jump to latest, share, fuller markdown, reconnecting by @futurepaul in #295
- hermes: every agent is routed, so a completion in any chat comes back by @futurepaul in #298
- bridge, chat: readable steps, Hermes' notices, waiting for an answer, images by URL by @futurepaul in #299
- chat: the working card reads cleanly (markdown in notes, compact status, short paths) by @futurepaul in #302
- computers: an update is told, never forced (the update notice) by @futurepaul in #303
- xtask deploy: a deployment of its own routes each host in its own zone by @futurepaul in #309
- cell: templates, the shell and the agent docs into Static Assets; the Wasm held to 6 MB (8.92 → 5.48 MB) by @futurepaul in #305
- shell: a new person's first run is the welcome, never settings by @futurepaul in #310
- computers: stable kept at its digest, the canary built; the update pill goes by @futurepaul in #311
- admin: an operator pins a person's computer (the canary group) by @futurepaul in #312
- e2e: a hosted run tries a round's candidate, and agent-restart upgrades into it by @futurepaul in #314
- sharing: buttons for the sheet, leaving, and who has access to what by @futurepaul in #313
- Polish settings navigation and account controls by @skylerwww in #307
- Refresh chat, sidebar, desktop and mobile UI by @skylerwww in #308
- Export everything: a person's data as one tar, from Settings by @futurepaul in #315
- e2e chat: wait for a reply's quote to clear with its message, not after it by @futurepaul in #319
- AGENTS.md: the hosted lane's --candidate by @futurepaul in #316
- e2e billing-page: no step acts on what is not there; waits on what is by @futurepaul in #317
- shell, chat: on a phone, an app's page by @futurepaul in #318
- e2e: agent-smoke's awake save, missed, says what the computer said by @futurepaul in #320
- e2e: a GET or HEAD with no body says no Content-Length, so wrangler dev can retry it by @futurepaul in #321
- images: the Hermes image's inputs are what it runs by @futurepaul in #322
- shell: Add teaches how to ask for an app, into the chat's composer by @futurepaul in #323
- images: nothing technical asks a person; agents ask about outcomes in plain words by @futurepaul in #324
- chat: a phone's return is a newline; the send button sends by @futurepaul in #325
- operations: a description each, plain text, shown in status by @futurepaul in #327
- cli: fragment mcp, a fragment's described operations as an MCP server's tools by @futurepaul in #328
- llms.txt: a coding agent's handoff, filled in with the deployment that serves it by @futurepaul in #329
- xtask build: the cell's Wasm budget is 6.5 MB for launch week by @futurepaul in #331
- models: the tiers run where the deployment says; Finite's on Finite Private (decision 61) by @futurepaul in #330
- job.ai.text: tools, streamed drafts and timing; the model route settles at [DONE] by @futurepaul in #332
- agents: one name and one picture, shown everywhere by @futurepaul in #326
- Typed decisions for jobs and agents on the Clef family, media included by @futurepaul in #304
- cli: version 0.14.0 by @futurepaul in #333
New Contributors
- @skylerwww made their first contribution in #307
Full Changelog: v0.13.0...v0.14.0