Repository navigation
·
138 commits
to master
since this release
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 #468
- Live sockets: one not open in ten seconds is closed and dialled again by @futurepaul in #476
- cli tests: a host never reached is a port held refusing, not one let go by @futurepaul in #478
- devstack: a node just written is run again, briefly, while its file is busy by @futurepaul in #479
- Ledger: one cached gate a spend asks, failing open; writes and the e2e's paid calls read it by @futurepaul in #467
- Settings: a pack's return that is not applied says so in plain words by @futurepaul in #480
- Shell: a failed read of the computer is not "no computer" (#437) by @futurepaul in #459
- Releases: an object that refuses a newer release's call restarts onto it by @futurepaul in #485
- e2e chat: the held-socket check waits for the chat, not only its hello by @futurepaul in #489
- e2e shell-ui: the first-run checks press Settings as its own click by @futurepaul in #490
- Chat: the reader's place is kept by its message, not its node by @futurepaul in #491
- Billing: a default-plan person in no org can buy the subscription from Settings by @alexlwn123 in #482
- Settings: a failed Disconnect or Remove says so; a late answer stays out of a chat (#439) by @futurepaul in #462
- Settings: a failed export read keeps its rows, with Try again; no reads behind a chat (#440) by @futurepaul in #463
- Settings: a Copy the clipboard refuses says so, the prompt selected (#438) by @futurepaul in #464
- Shell: a page whose scripts have not started says it is still loading by @futurepaul in #477
- Billing: every failure says what happened and what to do, in plain words by @futurepaul in #481
- Chat: a page whose script has not drawn it says it is still loading by @futurepaul in #492
- docs: Google's consent shows its account chooser by @alexlwn123 in #487
- Billing: the default plan's seat button says its failure by reason by @futurepaul in #494
- Settings can disconnect a connection, revoking its grant by @alexlwn123 in #486
- Settings names the account a connection is connected to by @alexlwn123 in #488
- Billing: a trial's Checkout that never is gives back its place at once by @futurepaul in #484
- Ledger: no holds, no reservations; a head that held some loads, its holds forgiven by @futurepaul in #474
- Ledger: priced with the release's book; a ledger keeps none by @futurepaul in #475
- Shell: its icon is Finite's mark (the favicon WorkOS's sign-in logo comes from), and iOS gets a home-screen icon by @futurepaul in #497
- Finite's about page, privacy policy and terms at /about, /privacy and /terms (#496) by @futurepaul in #498
- A provider's note, shown under its name in settings' Connections (#496) by @futurepaul in #499
- Node 24.22.1: October 2026's security release (Brotli RCE, TLS hostname bypasses) by @futurepaul in #501
- README: Fragment, the platform behind finite.chat, self-hostable on your own Cloudflare by @futurepaul in #500
- Shell: the favicon is Finite's mark full-bleed (light/dark); the app icon keeps a dark square by @futurepaul in #503
- models: an OpenRouter slot is priced at its config's ceiling, any model by @futurepaul in #507
- Tell every agent that a file attached in chat is already on its computer, and how to upload it by @futurepaul in #510
- A message sent while the agent waits on a question answers it: words, files or both, asked in words or on a card by @futurepaul in #508
- An agent's reasoning level, picked beside its model in Settings; high by default by @futurepaul in #506
- Terms: basic liability disclaimers by @futurepaul in #515
- e2e: a run's id adds a random nonce, so two runs in one second never share a scratch by @futurepaul in #517
- fix: a disconnect holds through an import whose outcome is unknown by @alexlwn123 in #512
- computers: a restart answers with its start up (the exit report raced the stop) by @futurepaul in #518
- xtask: the cell's Wasm names no path of the machine that built it by @futurepaul in #519
- feat: a Google connection keeps whatever scopes the person allows (#445) by @alexlwn123 in #521
- Chat on a phone: the composer one line high, just above the keyboard by @futurepaul in #544
- An invite waits for its person's yes, in the shell's sidebar (decision 63) by @futurepaul in #536
- Unify platform pages with onboarding card styles by @skylerwww in #516
- Onboarding: the shell's first run on #516's onboarding card (stacks on #516) by @futurepaul in #531
- Legal pages: about, privacy and terms as the design's sheet of paper (stacks on #531) by @futurepaul in #532
- xtask: the cell's Wasm drops its function names, 15% of it by @futurepaul in #528
- Computers: a stop that lost nothing tells nothing; the went-back notice, calmer by @futurepaul in #556
- Computers: a keepalive the runtime no longer holds is closed; the bridge opens a cut one again by @futurepaul in #562
- Chat: a step's icon says what it does; commentary has room below by @futurepaul in #565
- A person's membership is their agents' (decision 64) by @futurepaul in #561
- Sharing: inviting someone where the owner's agent is in says to trust them by @futurepaul in #566
- CI: a master push of a tree a green run already tested skips the tests by @futurepaul in #559
- CI: the e2e's builds keep our own crates; the stub image's layers are cached by @futurepaul in #558
- e2e: use the framed share sheet once it has sized itself; check it at a short and a tall window by @futurepaul in #570
- chat: Download saves a file through the page, so it works in the shell's frame by @futurepaul in #572
- A frame session's page may frame its own pages: a chat's PDF shows in the shell by @futurepaul in #573
- Managed skills: chat-attachments-finite, so an agent attaches a file in its chat by @futurepaul in #574
- Hermes image: every agent is told it attaches a file in its chat with MEDIA: by @futurepaul in #575
- Trials ask no card; one added before the end keeps the seat by @alexlwn123 in #576
- feat: an agent reaches Google Slides through the Google connection by @alexlwn123 in #578
- Add design-finite to the default managed skills by @AustinKelsay in #567
- Add upstream Google Docs skill alongside connected Workspace by @AustinKelsay in #568
- test: keep Sharing view clicks clear of sticky navigation by @AustinKelsay in #579
- Add Google Slides skill alongside connected Workspace by @AustinKelsay in #577
- A local fleet's code.storage, reached through a computer's egress: an agent's sync and deploy work locally by @AustinKelsay in #563
- xtask dev --real-agent: our Hermes image and real models, and an operator key to start a person over by @AustinKelsay in #564
- feat: a person may connect several Google accounts, each agent using the one picked for it (#446) by @alexlwn123 in #537
- Models: a slot's own list price (Tinfoil's DeepSeek V4.1 Flash as the private tier's fallback, by config) by @futurepaul in #526
- Models: vision falls back to a fallback that says it reads images (stacked on #526) by @futurepaul in #529
- Models: a private slot's calls reach only private models (stacked on #529) by @futurepaul in #540
- Share sheet: the agent warning on a chat only, less copy, a compact layout, faster to open by @futurepaul in #588
- The cell's pages' CSS and platform-pages.js out of Rust, into the release's files (part of #569) by @futurepaul in #591
- chat: an agent's steps as a quiet timeline, three lines while it works by @skylerwww in #580
- Settings: the routes the deployment labels, Private (recommended) and Standard (stacked on #540) by @futurepaul in #586
- Bridge: the model's words before a tool call are a reply, whole, before the step (image round) by @futurepaul in #584
- Settings: the release at the bottom, its commit linked, when it was deployed by @futurepaul in #597
- shell: a New chat button below the agent pill by @skylerwww in #581
- Chat alerts held by the shell: a framed chat's bell no longer needs a tab of its own by @futurepaul in #585
- Chat's microphone: delegated to the fragment's origin; a card before the browser asks by @skylerwww in #582
- The dock, a person's own choice: PUT /api/fragments/{name}/dock (#587, item 2) by @futurepaul in #595
- Kinds: a client reads a kind it does not know as other (a round ahead of #587's new kinds) by @futurepaul in #593
- dev: rebuild the cell in seconds for a change to the shell or a template by @skylerwww in #596
- e2e: an app an agent made, opened in a browser as its owner (agent-app; hermes' twin) by @futurepaul in #547
- Transcription: a fast failure for want of capacity is asked once more by @futurepaul in #520
- e2e: the transcribe section sends each browser's own memo to Whisper by @futurepaul in #524
- Transcription: Whisper hears a memo through its voice-activity filter by @futurepaul in #522
- Deploy: every pinned image ready on Cloudflare's network before anything changes (deploy safety 1 of 4) by @futurepaul in #602
- Image: a push or a copy waits for its image to be ready on Cloudflare's network (deploy safety 2 of 4; stacked on #602) by @futurepaul in #603
- Health: /healthz/objects asks every object class whether it runs this release (deploy safety 3 of 4; stacked on #602) by @futurepaul in #604
- Deploy: finished, verified at every object class, or rolled back; never green over a mix (deploy safety 4 of 4; stacked on #604) by @futurepaul in #605
- A page's refused socket is opened and closed for good (4003), not refused by its status by @futurepaul in #606
- SimpleX 1/5: the link's core, proven against simplex-chat v7.0.3 (draft) by @futurepaul in #523
- SimpleX 2/5: the bridge runs each linked agent's core; the image carries it (draft) by @futurepaul in #546
- SimpleX 3/5: messages both ways through the agent's own chat (relayed records, via SimpleX) (draft) by @futurepaul in #548
- SimpleX 4/5: the link page, its QR code, and Settings' entry (draft) by @futurepaul in #549
- SimpleX 5/5: the real Hermes image end to end in the Docker lane (draft) by @futurepaul in #550
- SimpleX: the signed link start and the door key (Paul's design) by @futurepaul in #560
- SimpleX: Settings offer it only on a computer whose image does it by @futurepaul in #608
- SimpleX: reach SMP servers on 5223, and say when a file cannot arrive by @futurepaul in #610
- A seat let sleep says so: Settings' SimpleX tells how to take it back, operators see it by @futurepaul in #609
- SimpleX: files through an XFTP relay in the cell (Worker connect()) by @futurepaul in #611
- images CI: the Docker lane on ubuntu-24.04 (Docker 28) by @futurepaul in #613
- SimpleX files: delete only what was given up on, cancel until taken; Settings follow the seat by @futurepaul in #612
- SimpleX: the agent knows a message came from SimpleX, and can't run SimpleX itself by @futurepaul in #615
- SimpleX: a reply's files go to the owner's app, a voice message as one by @futurepaul in #616
- An agent's home: where it reaches its person, set in Settings, marked in the sidebar (SimpleX 1 of 2) by @futurepaul in #619
- SimpleX is a chat of its own: everything said there reaches the phone; routines go home (SimpleX 2 of 2; stacked on #616 and #619) by @futurepaul in #620
- SimpleX home, after review: Settings paint on mount; a routine waits for its chat by @futurepaul in #624
- SimpleX shows the agent's name now, and follows a rename by @futurepaul in #628
- An agent's name: one source, read where it is shown, and no copy by @futurepaul in #630
- An agent is told another agent's name, never "someone" by @futurepaul in #631
- A routine with nothing to tell says nothing by @futurepaul in #633
- Cards: regenerate (POST) or upload (PUT) a preview card (part of #587) by @futurepaul in #594
- Icons: a fragment's icon, made from drawings its editors pick, or uploaded (#587, 1 of 3) by @futurepaul in #598
- Icons: a fragment's pages take its icon as their favicon (#587, 3 of 3; stacked on #598) by @futurepaul in #599
- Chat: an image attachment's box hugs its picture (no blank band) by @futurepaul in #641
- Settings: every section and nav item stays reachable by @futurepaul in #642
- Shell: an app's own icon in the dock, and Icon… to make, pick, upload or remove one (#587, 2 of 3; stacked on #598) by @futurepaul in #600
- Let operators lower a trial code's places, never below those taken by @alexlwn123 in #644
- Launcher: its own launcher.js; Enter goes straight to the new chat, files, a growing input (supersedes #592) by @futurepaul in #637
- The Apps page: each app's dock, card, icon and who has access; sharing leaves Settings (#587; stacked on #594, #599, #600) by @futurepaul in #640
- CI: rebalance the overloaded E2E shard by @futurepaul in #651
- SimpleX: stop sending restart announcements by @futurepaul in #646
- images/hermes: the browser and Node trust the interception CA by @futurepaul in #533
- Models:
maxpasses the route as asked (Fast and Deep, step 3) by @futurepaul in #638 - An agent's page shows its job as its computer left it: main, not live by @futurepaul in #635
- Models: each tier names its route's fallback and vision, so Standard falls back to Cloudflare (stacked on #586) by @futurepaul in #589
- hermes-boot: a tier agent's stall falls back to its route's fallback (image; stacked on #589) by @futurepaul in #590
- Use regular Chromium for Hermes desktop browsing by @futurepaul in #648
- SimpleX: preserve encryption negotiations across retries and restarts by @futurepaul in #645
- Show Updating while shell reads wait for a deploy by @futurepaul in #655
- Improve Apps with inline editing, public addresses and progress by @futurepaul in #649
- Let agents name apps, generate icons, refresh previews and claim addresses by @futurepaul in #650
- A rename by its owner says the new name in the agent's job too by @futurepaul in #636
- Models: mark refused signing preflight as not dispatched by @futurepaul in #668
- Hermes: wait for confirmed model preflight deployment refusals by @futurepaul in #674
- ci: prove merge queue trees before they reach master by @futurepaul in #667
- ci: make preview follow master’s computer image automatically by @futurepaul in #669
- Show an updating page for navigations during deploys by @futurepaul in #666
- Models: define Fast and Deep slots per tier by @futurepaul in #653
- Keep computers awake while delegated children run by @futurepaul in #654
- ci: fix preview image lookup without listing registry tags by @futurepaul in #676
- images: exclude build trace context from Hermes env flattening by @futurepaul in #678
- Hermes: run native delegates on each tier’s Deep mode by @futurepaul in #677
- Bridge: deliver files from background delegates by @futurepaul in #679
- Let BYO agents pick Fast and Deep in Settings by @futurepaul in #680
- Give image-capable Fast and Deep models pixels directly by @futurepaul in #683
- Continue hosted sweeps after a person’s fragment list fails by @futurepaul in #675
- chore: cli version 0.15.0, so the next release matches production's guide by @alexlwn123 in #682
New Contributors
- @alexlwn123 made their first contribution in #360
- @AustinKelsay made their first contribution in #567
Full Changelog: v0.14.1...v0.15.0