Repository navigation
Releases: finitecomputer/fragment
Releases · finitecomputer/fragment
Release list
fragment v0.15.0
What's Changed
- templates: doc — paragraph notes any fragment can take by @futurepaul in #339
- docs: fix the inconsistencies found writing the platform explainer by @futurepaul in #338
- Hermes v0.21.7: the first Hermes canary round (forward only) by @futurepaul in #346
- The repo moved to finitecomputer/fragment by @futurepaul in #340
- shell: three ways to ask at a time, and a die that deals three more by @futurepaul in #347
- /admin is a 404 to anyone but an operator by @futurepaul in #348
- The model route takes real model ids; Hermes names them (canary round) by @futurepaul in #350
- Sign-in: Use another account ends the session AuthKit holds in the browser by @futurepaul in #351
- hermes image:
hermesby name in an agent's terminal by @futurepaul in #349 - bridge: a listing that fails is asked again at once, not in 5 minutes by @futurepaul in #353
- Docs match the code, and tests hold them to it by @futurepaul in #354
- A deleted agent fragment leaves its computer; spent invites leave the owner's count by @futurepaul in #356
- An agent's name has one source; the first chat is "Your first chat" by @futurepaul in #355
- The registry is the seat's one writer; a computer, an invite and a re-made name catch up by @futurepaul in #359
- Hermes keeps its tiers' prompt (family guidance off); the smoke reads commands run from execute_code by @futurepaul in #357
- The shell reads each fact from its one source: guest, prices, model, agent colour, a chat's agent by @futurepaul in #358
- Fix sign-out and account switching blocked by browser CSP by @alexlwn123 in #360
- A sleep ends within its bounds, a hung save fails, and a dead snapshot wake starts again by @futurepaul in #363
- The time kept for a failed save is free from the start of its try by @futurepaul in #364
- Audit M1, M2, M3, M5: one read rule, the share token out of URLs, secrets bound to hosts, sync only at repo paths by @futurepaul in #366
- Browser round trips finish only for whoever began them; a CLI key joins only the person who typed its code (audit H3, M6) by @futurepaul in #365
- Content is data: one DOM-only markdown renderer, no HTML sinks, agents' own work (H2, M7) by @futurepaul in #368
- Nobody joins an org without their own yes; a wipe cancels what the wiped would pay (audit H1, M4) by @futurepaul in #367
- CI on standard actions: rust-cache for Rust's caches, paths-filter for the Docker lane by @futurepaul in #374
- Ledger: preview cards keep their CDP client; quick actions cannot carry the page's report by @futurepaul in #375
- devstack: termination signals through signal-hook by @futurepaul in #376
- The multipart parser and the per-address CLI counter say why they are ours by @futurepaul in #377
- fakes: their HTTP client is reqwest by @futurepaul in #378
- AGENTS.md: choosing tools — prefer what exists, a build step when it pays, one concern per PR by @futurepaul in #373
- Versioned schemas for the platform's Durable Objects, and a lock that guards them by @futurepaul in #383
- Listed records: a channel names the kinds its members' list rows show by @futurepaul in #384
- Shell: the agent's row says what it is doing, from its chats' listed records by @futurepaul in #385
- ci: deploy on a green push, master's to the preview, production's to production by @futurepaul in #352
- ci: a production push of a commit master proved deploys at once by @futurepaul in #386
- Shell: say which email is signed in, with Use another account, wherever someone has no seat by @futurepaul in #388
- Calls between releases: every Worker/DO call carries its release, refused before it acts (deploy skew) by @futurepaul in #387
- The agent's page names its model by its id; its screen names it by its name by @futurepaul in #389
- e2e: a hung backup's error may name a millisecond less than its bound by @futurepaul in #392
- Image workflow: build the canary on a runner; copy the proven image into production at its digest by @futurepaul in #391
- e2e shell-ui: the guest's switch to a seat waits on the rendered email, not a mouse's press by @futurepaul in #395
- Scheduled records: a fragment's data schedules (and an agent's routine as one on itself) by @futurepaul in #390
- e2e: a restart's awake is waited for, not read off its answer by @futurepaul in #397
- e2e notes: the linked note is read once its embed is in and loaded by @futurepaul in #398
- Notes viewer: an open note is drawn again when a note or picture it names comes or goes by @futurepaul in #399
- No eval in runtime code: cargo xtask check refuses a string run as script by @futurepaul in #400
- Chat page: one record it cannot draw never stops the chat drawing; the renderer's one-column table by @futurepaul in #402
- Bind Pipes consent to the initiating browser and session by @alexlwn123 in #401
- The shell reloads itself, at a safe moment, once the platform runs another release by @futurepaul in #403
- xtask deploy: run wrangler deploy again for a failure a re-run answers by @futurepaul in #412
- Chats keep their own drafts; the shell reloads for a new release only while hidden or at the next move by @futurepaul in #406
- Refine Finite login page and theme transitions by @skylerwww in #393
- Report exact Wasm size and remaining build budget by @alexlwn123 in #419
- cell: one JSON answer after serializing, not a copy per type by @futurepaul in #434
- Billing off sells nothing: no price, no Checkout, no trial for a guest by @futurepaul in #452
- Settings: no Add another sign-in (/auth/link cut), Loading in the loaded layout by @futurepaul in #453
- CD: read the deploy configs from finitecomputer/fragment-deploy, not DEPLOY_CONFIG by @futurepaul in #454
- e2e shell-ui: a reload under way is seen from another page, not the one reloading by @futurepaul in #455
- e2e: a guest's page is evaluated once its document is there; a command's record is waited for by @futurepaul in #456
- Settings: Connect opens its window in the press, says when it is blocked by @futurepaul in #458
- Ledger: take the configured price book whenever its contents differ, whatever its version by @futurepaul in #460
- e2e chat: a message's record is waited for, not read once by @futurepaul in #465
- e2e: a reload waits for the page to load, and is tried again if it never does by @futurepaul in #470
- e2e chat: a viewport change is waited for until the chat fits it by @futurepaul in #472
- Shell: its notice shows over settings and a chat, not in #frames (#436) by @futurepaul in #457
- Settings: only the latest load renders (#441) by @futurepaul in #461
- AI steps: gated by the cached standing, charged from the fragment's outbox by @futurepaul in #473
- Operator keys: gated by the cached standing, charged after the provider answered by @futurepaul in #469
- Model calls: gated by the cached standing, charged after their answers by @futurepaul in h...
fragment v0.14.1
What's Changed
- billing: sell one seat, the $200 always-on, and the $25 pack by @futurepaul in #336
- models: Finite's tiers on GLM-5.3 Flash through OpenRouter; a slot's body by @futurepaul in #335
- cli: version 0.14.1 by @futurepaul in #337
Full Changelog: v0.14.0...v0.14.1
fragment v0.14.0
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 repl...
fragment v0.13.0
What's Changed
- Computer browser: Stagehand on pinned Chrome, Jev first (agent computer slice 2) by @futurepaul in #72
- Computer browser: Stagehand's calls answer, and loaded sessions get new tools by @futurepaul in #74
- Chats: the owner's agent joins as the deploy lands, and hears what came before by @futurepaul in #75
- Computer sessions: the tools refresh checks what goose offers and says so; a platform deploy brings a new task client by @futurepaul in #76
- Computer sessions: a task after its tools changed is told what changed by @futurepaul in #77
- Each life of a fragment's name has its own app database by @futurepaul in #78
- Computer memory: a person's memory and skills in git, synced by each computer they hand work to (agent computer slice 3) by @futurepaul in #79
- Memory follow-ups: the platform records each person's memory, grants every computer as it pairs and syncs, and the agent keeps a fact itself by @futurepaul in #80
- Screenshots as blobs pages show (agent computer slice 4) by @futurepaul in #81
Full Changelog: v0.12.1...v0.13.0
fragment v0.12.1
What's Changed
- code.storage: a delete streams no content, so a sync that deletes lands by @futurepaul in #70
- Computers keep their CLI current, and agent home takes bare labels by @futurepaul in #71
- Hand-offs: the brain never writes the computer's result by @futurepaul in #73
Full Changelog: v0.12.0...v0.12.1
fragment v0.12.0
What's Changed
- The desktop's computers: a pet fragment as a pane, your agent runs commands on it by @futurepaul in #59
- celld v0.6.0: the fork rebased, its alarm fix gone upstream by @futurepaul in #57
- Docs: celld v0.6.0 left pre-upgrade app data unread; test old data on a new rev first by @futurepaul in #62
- docs: screen streaming design (live video for a computer's screen) by @futurepaul in #58
- pet: a computer-use agent, do({task}): goose with Cua Driver as its hands by @futurepaul in #63
- Computer: one alarm step at a time, so a slow wake is not undone (no such reservation) by @futurepaul in #65
- Your agent hands work to a computer: a throwaway builder, or one you name by @futurepaul in #64
- docs: the agent computer, and decision 24 (brain in the cell, hands on a computer) by @futurepaul in #66
- Model routing: flashx the default, a computer names one of three, sorted by latency by @futurepaul in #67
- Computer: a job's long command stays held and its polls wait on no alarm by @futurepaul in #68
- Computer sessions: goose serve on every computer, a session per chat, hand-off to your home computer by @futurepaul in #69
Full Changelog: v0.11.1...v0.12.0
fragment v0.11.1
What's Changed
- Pet follow-ups: signedIn channels, ephemeral mutations, --input @file, private computers by @futurepaul in #60
- The CLI's live socket speaks wss:// (fragment channel --follow on hosted fleets) by @futurepaul in #61
Full Changelog: v0.11.0...v0.11.1
fragment v0.11.0
What's Changed
- Computers: no charge for failed boots, the full idle wait, a checked hold by @futurepaul in #51
- fragment model --serve, and a streaming model endpoint by @futurepaul in #52
- job.computer.exec: a fragment's jobs run commands on its computer by @futurepaul in #54
- A computer runs its fragment's start from the live files, as a service by @futurepaul in #56
- The pet template: a computer everyone with the fragment watches live and drives together by @futurepaul in #53
- goose on a fragment's computer: the builder template by @futurepaul in #55
Full Changelog: v0.10.0...v0.11.0
fragment v0.10.0
What's Changed
- Computers are identities: paired by their owner, acting only where let by @futurepaul in #44
- The desktop and the chat leave the core: no chat flag, one frame consent by @futurepaul in #45
- The move: fragments on fragment.boats, the platform on fragment.club by @futurepaul in #46
- The agent add-on: a fragment declares its own agent; the owner pays for agent calls by @futurepaul in #47
- job.agent: a fragment's job runs one turn of its own agent by @futurepaul in #48
- A fragment's own computer: "computer": {} makes a Sprite, paired as its owner's by @futurepaul in #49
- Computers call the model through the platform, on their owner's budget by @futurepaul in #50
Full Changelog: v0.9.0...v0.10.0
fragment v0.9.0
What's Changed
- Sign-in: a return path never leaves the platform's origin (two live open redirects) by @futurepaul in #9
- NIP-98: a malformed signature or clock is refused, never a panic (unauthenticated router crash) by @futurepaul in #11
- Reliability: effects checked where they're applied, no silent loss, bounded everything (audit R2–R23) by @futurepaul in #10
- Single source of truth: decode once at each door, one definition per fact (audit T1–T16) by @futurepaul in #12
- Speed: the audit's 23 speed items, each measured (stacked on #12) by @futurepaul in #13
- Tests: the audit's 19 test items, each check shown to fail (stacked on #13) by @futurepaul in #14
- Platform pages refuse frames; its forms refuse a fragment's page (clickjacking fix) by @futurepaul in #19
- Agent: answer a chat once, and listen once by @futurepaul in #20
- Phase 7: the plan, the decisions, and the platform's special cases by @futurepaul in #18
- Registry and the cell's JS: the route tables, dead answers, and parallel helpers go (−133) by @futurepaul in #22
- Cell: one test countdown, one life check, and route tables left to docs/api.md by @futurepaul in #23
- crates: what nothing calls, the copies, and one constructor for App by @futurepaul in #21
- Phase 7 B1: postable channels, and a quiet poll backstop by @futurepaul in #26
- Phase 7 A: an agent acts for whoever asked, one conversation per chat by @futurepaul in #31
- Cell: remove the migrations every fragment has run (−317 lines) by @futurepaul in #32
- Docs: what fragment.club runs, what master adds, and the lines that fell behind by @futurepaul in #16
- Sockets: a fragment's live socket and change feed open only from its own page by @futurepaul in #33
- Phase 7 D: share sheet and /join on the platform's origin by @futurepaul in #28
- CLI: the deletion pass (−329 lines), and fragment host keeps its config by @futurepaul in #24
- CLI tests: nine duplicate host tests (−121 lines) by @futurepaul in #25
- CLI: delete fragment build (−356 lines, 7 oxc deps, 60 lockfile packages) by @futurepaul in #27
- Sync: an installed unit carries --mirror-from by @futurepaul in #30
- Watch: the change feed's URL changes only the host's scheme by @futurepaul in #29
- The new chat: no app code, work on a channel, the platform's page (phase 7 slice C) by @futurepaul in #34
- Docs: fragments on fragment.boats (design, proposed) by @futurepaul in #35
- CI: build the e2e kit in two parallel parts; cargo rebuilds only what changed by @futurepaul in #17
- Phase 7, slice E: the acceptance e2e (phase7) by @futurepaul in #36
- Isolation between fragments, and the desktop's frames through __frame (fragment.boats slice 1) by @futurepaul in #37
- A fragment's URL signs you in; refusals a browser navigates to are pages by @futurepaul in #38
- Agent: build apps from a guide, bound each model call, never fail silently by @futurepaul in #39
- The platform's desktop frames from the start; chats listed by what they are by @futurepaul in #40
- A list read wakes no fragment; a chat says so when it sends its row by @futurepaul in #41
- Docs: fragment is the product; agents and computers are add-ons by @futurepaul in #42
- fragment's front door: a one-line install, a skill, and a home that is the product by @futurepaul in #43
Full Changelog: v0.8.0...v0.9.0