sol — solstone home

journal releases

what's new in the journal, newest first. the journal is the memory sol keeps, on a computer you choose; these are the journal's own changes.

install solstone →

journal 1.0.22

august 2, 2026

Changed

  • turning on confidential processing finishes on its own now. once you finish turning it on in your browser, your journal runs its check and shows "confidential processing is ready" when it passes, instead of stopping short until you press check again. that button is still there, and a setup that needs repair, or one still in progress, is left alone.
  • your journal no longer gets you a Gemini key. that option is gone from the thinking app and from the command line. the scout program itself is still running. a Gemini key already saved in your journal keeps working, untouched, with nothing to re-enter and nothing to reconfigure. choosing Gemini and adding your own Google AI Studio key is unchanged: same field, same models, same check that the key works.
  • pairing your browser with your journal, and sending pages to it that way, is gone. sol in the browser is on hold for now. pages already in your journal stay exactly as they are, searchable and readable.
  • on an Intel mac, the journal now says plainly that Apple Silicon is what it needs on a mac, and points you at where it does run: an Apple Silicon mac, or supported linux.

Fixed

  • your journal turns away malformed device authorization it used to let through. an entry in its list of authorized devices could be damaged in a way that still read as a valid certificate. separately, a device whose pairing was stored as empty could skip the check that ties it to that list. both are refused now, before anything gets in. neither shape is one your journal writes, so a device you paired the ordinary way authorizes as it always has. if a device does stop authorizing after this update, pair it again.

journal 1.0.21

august 1, 2026

Changed

  • adding a device by hand is gone. the page in your journal that lists your devices no longer offers it, and the request behind it now refuses. pairing is how a device joins your journal.
  • sol export --to <url> --key <key> is retired. it refuses now and points at the paired form instead. sol export --to <label>, sending to a journal you have already paired with, is unchanged and works as it always has.
  • the part of your journal that carries the private network is now native Rust in place of Python. your paired devices reach your journal exactly as before, over the same private network, with nothing to re-pair and nothing to set up. it runs as a single program that starts and stops with your journal, with no Python in between.
  • two devices with the same name are told apart now. a second device calling itself "iPhone" is listed as "iPhone (2)" rather than reading the same as the first. on a journal that already holds two devices sharing a name, one of them takes its number on its own the first time the journal starts after this upgrade, so a device whose name reads differently afterwards is that, not a fault. the name you give a device is the name that shows, and the name a device proposed for itself at pairing is noted separately.

Fixed

  • unpairing a device by name could take away the wrong device's access. when two of your devices shared a name, unpairing by that name acted on whichever one it found first. separately, a device that was reinstalled and paired again would revoke the older entry with the same name on its own, whether or not it was the same device. unpairing by name now only proceeds when the name points at exactly one device, and when it does not, it lists each candidate with the date it was paired and the exact command for the one you mean. pairing again revokes nothing, and an entry you no longer want stays until you remove it.
  • speaker analysis works on your audio again. on the last two releases every clip was turned away at that step as invalid, so nothing was analyzed for who was speaking.
  • a local model that has finished starting is left running. a model server that had loaded and was answering could be stopped about a minute later, because the check for whether there was room to start one was re-run against memory the model itself was now holding. it would start again and be stopped again, so a day's work could never finish and a backlog could sit still. that check now only decides whether to start a model, never whether to stop one that is already serving.
  • an import you open while it is still working now says it is running. the import history listed it correctly, but opening that same import showed it as failed until it finished — on every file type, and most noticeable on longer imports. the page now also keeps up on its own while the import runs, instead of waiting for a reload. reported and fixed by ha-ye.

journal 1.0.20

july 31, 2026

Added

  • journal reprocess <start> --through <end> --from-scratch --yes redoes a range of days rather than one at a time. days queue oldest first and run one at a time, so a long range can take hours and the current day waits until it finishes. journal top and journal health show where it is.

Changed

  • importing from Granola is gone. Granola removed the local file access this import read from, and every remaining route to that data needs a paid Granola plan and a network call, which this import never made. a scheduled Granola sync goes with it, so nothing is left retrying every hour. Granola transcripts already in your journal stay exactly as they are, searchable and readable.

Fixed

  • an upload your journal turns away now leaves a trace. something can arrive carrying a key your journal does not know, or one that has since been withdrawn, and it is refused. until now that left no sign anywhere: no way to see it had happened, or how often. a refusal is now noted while it is going on, and again once it stops, with how many were turned away.
  • what sol takes in on a paired device reaches your journal byte-for-byte. a read over the link could add two stray bytes to the front of a file while still reporting that the transfer finished.
  • a day that stalled on a local model moves again. work could be handed to a model that was still loading and fail there, and in chat a reply that was still being written could be ended with an error while the answer arrived moments later. queued work now waits for the models it needs to finish starting instead of waiting on a timer, and a reply still being written is no longer read as a stopped one. when a day is held back for a retry, process now says so instead of reporting it queued.
  • a model that declines a piece of work no longer has its refusal kept as the answer. text along the lines of "I cannot view images" could be written into your journal as a screen description, or come back in chat as a reply. that now ends with a stated reason and nothing written, and a model that keeps declining the same frame is no longer asked over and over.
  • an import started while another one is running now waits its turn. it used to report that it started and then never run, and the file it came from could not be started again afterwards. an import that failed or never ran can now be started again, and a start that cannot be handed off to run says so instead of reporting success.

journal 1.0.19

july 29, 2026

Added

  • the entities overview in your journal now shows what each entity is, read from that entity's own record and never guessed from its name. an entity with no type of its own still appears in the list with everything else about it unchanged.

Changed

  • speaker analysis now uses the native helper only. if the helper is missing, damaged, or returns invalid data, journal startup and transcription fail loudly instead of falling back to the old python speaker path.
  • new transcript headers name solstone-core-speakers-analyze-v1 as the speaker-analysis producer whenever the helper actually ran, including when it declines speaker labels. transcripts with no speech-bearing statements still omit the field because no speaker-analysis producer touched them.
  • long audio no longer quietly changes engines. with confidential processing turned on, audio longer than the confidential service accepts used to be handed to the built-in local engine instead. it now stops with a stated reason and the audio is kept as it is, so nothing gets processed somewhere you didn't choose.

Fixed

  • what sol takes in on your paired devices keeps reaching your journal. an unsteady connection could leave a transfer stalled and holding one of the journal's slots for incoming work indefinitely. enough of those and nothing arrived at all, with no error, and with pairing, the connection, and the device's last-seen time all still reading healthy until the journal was restarted. stalled transfers are now bounded and cleared, everyday arrivals have room reserved for them so long streams can't take every slot, and a stall that does happen is logged with how long it waited.
  • a day sol is thinking through no longer stalls on unusual text. a stray half of an emoji, or another unpaired character, could stop the request while it was still being built on your machine, and the failure was reported against the endpoint, which never received it. that text is repaired before the request is built now, and text that was already valid is unchanged.

journal 1.0.18

july 28, 2026

Added

  • sol link join and sol link serve are now native commands, like sol and solstone before them. same commands, same pairing, and no python on any path they own.

Changed

  • journal link is gone. listing paired devices, checking a device's status, unpairing one, and seeing what's authorized now live in the network app in your journal, with no command-line equivalent. anything built on journal link needs the network app instead.
  • the base install is thinner. pip install solstone no longer brings along the compiled cryptography and websocket libraries only the journal needs; they install with solstone-journal and solstone-journal-cuda, so a journal install is unchanged and pairing works the same way. anything that relied on those libraries being present in a base install needs a journal package now.

Fixed

  • installing the Apple Silicon solstone-core wheel no longer leaves its signing facts as a stray file in site-packages. the signing evidence stays in the release rail instead of the installed package.
  • sol thinks through your days more reliably. a run through a local model, confidential processing, or an endpoint you bring could be refused for being too long: the length sol measured before sending came out under what the model itself counted, so sol now leaves room for the difference. a run could also stall on sol retrying a command in a form your journal doesn't accept; sol now gets the working form back instead.
  • the voice evidence in your journal stays with the voice it came from. when your journal grouped a conversation's voices again and came out with a different number of them, statements could shift onto a different voice, either one it was still learning or a person you had already named. a voice now carries the statements it was built from, so this can no longer happen. entries from before this release that carry none are skipped rather than guessed at, and a maintenance pass recovers the ones it can.
  • a day's record of sol's thinking is no longer cleared before its time. those records were aged by the date in their filename while the runs inside them could be from the last day, so a recent one could be removed early. a record is now kept unless everything in it is genuinely past the cutoff, and one that can't be read is kept rather than discarded.
  • the apps in your journal read and behave better. faint text in the health logs, in empty-state messages, and on the body app's main button now has enough contrast to read; the charts in stats no longer overlap their own labels or push the page sideways on a phone; and tokens shows the day you're looking at, where an earlier day used to show today's numbers. Tab stays inside an open dialog instead of jumping out to the browser, the network app's pair dialog closes when you click outside it, and closing a dialog no longer leaves part of the page behind it unresponsive.

journal 1.0.17

july 26, 2026

Fixed

  • setting up your journal now finishes cleanly. two of its own steps were failing on every run, so setup reported a problem at the end even when your journal was fine, and on a Mac a brand new install could sit waiting at the last step and never finish.

journal 1.0.16

july 25, 2026

Fixed

  • pairing a device with your journal over your own network now completes. attempts your journal had already authorized were reaching the device as a failure, often reading there as a pairing code that had expired. every attempt that failed this way still left an authorized device behind, so open the network app and remove any unnamed devices you don't recognize.
  • sol link join now reads a pasted pair link in full before it connects to anything. an address in the link that sits outside your own network refuses the whole link rather than being skipped, the identity of the journal you're joining is confirmed from the connection itself before the request goes out, and each run makes exactly one pairing request. a run that fails partway no longer leaves a half-written credentials folder behind.
  • if you use Google as your AI provider, sol can think about your days. Google was refusing nearly every request sol sent about a day, so your days were taken into your journal and never thought through, while your journal's health still reported that sol could think.
  • home now tells you when a day in your journal is stuck, or when it can't tell whether your journal is caught up. before, home could still show as healthy in both cases.
  • on a Mac, doctor no longer warns that your sol and journal commands were installed by something else and asks you to run journal setup. every install done by the macOS app got that warning, and running setup would have replaced a working launcher.

journal 1.0.15

july 25, 2026

Fixed

  • installing with uv tool install solstone now puts the sol and solstone commands on your path. the 1.0.14 install could finish without them.

Changed

  • the main package now owns the public sol and solstone commands, and the native package owns the compiled program they run.

journal 1.0.13

july 24, 2026

Added

  • the sol command can now turn confidential processing on, check its verification again, turn it off, and show where setup stands.

Changed

  • thinking through a local model, confidential processing, or an endpoint you bring now fits each request to the model's real working limit. longer prompts and image-heavy work retry once at a tighter limit instead of repeating the same failure.

Fixed

  • confidential processing now renews its verification before it expires, so a journal can stay connected across long unattended runs. if verification cannot renew, the connection stays closed before any request is sent and recovers on its own after verification succeeds again.
  • a routine confidential-processing status check now shows the operation phase without repeating its one-time setup link.
  • damaged or empty screen video now reaches a finished error state instead of leaving the whole day waiting for analysis forever.

journal 1.0.12

july 23, 2026

Added

  • every release now publishes signed evidence of exactly what shipped at transparency.solstone.app. anyone can check a release against it independently.

Changed

  • one version number for the journal everywhere now. the pip-installed journal and the native journal apps used to count releases separately; from this release they share the same version, which is why the number jumps. same journal, nothing was skipped.
  • on supported machines, the journal's index is now updated by new native code. what the index holds is unchanged, and a setting can put the previous indexer back at any time.

Fixed

  • a journal with leftover confidential processing settings, but with the built-in local model doing its thinking, could stop thinking entirely. sol now goes by where thinking actually runs, not by what's left in settings, so the built-in model keeps working. while confidential processing is on, switching providers now requires turning it off first, so a settings change can't leave the journal in that state again.
  • the same leftover settings could quietly stall transcription while everything else looked fine, leaving new audio waiting. transcription now falls back to local speech-to-text in that state. the separate safeguard that decides whether audio may leave your machine is unchanged.

journal 0.9.1

july 22, 2026

Added

  • recurring voices now open in one who-is-this sheet from home, speakers, or a transcript. it shows the evidence, searches known people before offering a new person, keeps similar names separate only after confirmation, routes your own voice to its teaching path, and lets you preview, apply, or undo corrections across matching statements. speaker identification is also more cautious when voices sound alike.
  • the journal now names which brain produced each new image description and each run of screen descriptions.

Changed

  • thinking status now agrees everywhere it appears. background checks, blank replies, and model readiness all resolve to one state with one next action.
  • sol now suggests exact Gemini models instead of moving aliases and keeps confidential processing active while saving a model for later. confidential processing sets up verification on first use and names setup or integrity problems, while a failed local-model replacement leaves the working model available.

Fixed

  • image imports now reach each brain in a format it understands, including webp with local models. markdown with accented or non-latin text keeps the same size and grouping rules as other text, and an interrupted index update no longer leaves a partial result.
  • links inside the journal on ios now open reliably instead of stalling. journal doctor now finds background launchers that keep reopening the legacy mac app, and a full index rescan explains why it found no new relationships and how to rebuild them.

journal 0.9.0

july 19, 2026

Added

  • the calendar day grid now reaches entities and news. pick a day on an entity to narrow its page to that day, and browse news one day at a time.

Changed

  • setting up a local AI model no longer loses your settings when two changes save at the same time, and the install status now reflects what's actually ready instead of showing a model as ready before it can run.
  • speaker naming is more accurate. sol is less likely to mistake another person's voice for yours, and busy conversations with many similar-sounding voices now settle to the true set of speakers for you to review and confirm.
  • on Linux, local speech-to-text now uses much less memory, so more graphics cards can run it on the GPU instead of the CPU. transcription quality is unchanged.

Fixed

  • when you send anonymous feedback, it now uses a generated handle instead of your device's name, no longer attaches diagnostic details automatically, and scrubs secrets from any error text before it's included.
  • if a local AI model stops responding, your settings now show a repair action that gets it working again in place, without restarting your whole journal.

journal 0.8.9

july 17, 2026

Added

  • your journal can now keep older media in your backup instead of on disk. it's off until you turn it on: you set a media budget and a free-space floor, and when the original screen and audio files pass them, the oldest fully-processed media your backup has confirmed moves out, oldest first, with the local copy removed only after that confirmation. transcripts and everything else your journal holds stay where they are, and any offloaded day restores on demand. once media has moved, your backup holds the only copy of it: turning offload on walks through your recovery key first, offloaded media is pinned so your backup's normal rotation can't age it out, and a weekly read-back check samples the backup itself. if a backup lapses or a check fails, offload halts with nothing deleted and says so on the backup page, and turning your backup off now tells you what it holds the only copy of and offers to restore everything first.
  • timeline, search, speakers, and reflections now show your days as a calendar grid. timeline reaches back through your whole journal instead of stopping twelve months ago, search lets you drag a date range right on the grid, speakers shows which days still need names, and reflections shows which weeks have one.

Changed

  • analysis that stops partway now picks itself back up. your journal sizes its analysis work to what your model can actually serve, treats a busy endpoint as busy rather than unreachable, and re-runs a failed day on the next daily pass, paying only for the frames that failed and keeping the ones that already worked. before, the densest screen days could sit unanalyzed indefinitely, and a day that failed stayed failed until you re-ran it by hand. after three tries your journal stops and the day completes with the gap named in its health summary rather than holding the day open.

Fixed

  • a segment whose analysis had failed could still be marked finished, and the check that removes raw media once it's processed trusted that mark. the mark is now written after every stage completes, and any unresolved error holds the raw media in place. your journal keeps raw media unless you've asked for it to be removed after processing, so that setting is who this reached. it's the same mark offload reads before any media moves.
  • changing your retention settings from the backup page now saves. if you tried and got an error, this resolves it.
  • naming yourself as a speaker now works on a fresh journal. before your voice had been identified, tagging a sentence as you failed on every sentence, which left no way to seed it. when detection can't find your voice, the speakers page and the sol command now name the next step rather than stopping.
  • journal doctor now detects when the macOS app and the legacy background service both target one journal, and points to the single service removal step before other repair actions.

journal 0.8.8

july 16, 2026

Added

  • your journal now keeps pages from the solstone browser extension: what you read in the browser shows up in the timeline and transcripts, site by site, and sol's thinking works from pages along with everything else.

Changed

  • journal audio transcription now uses only the local Parakeet paths or the confidential lane; legacy Rev.ai/Gemini STT, default transcript enrichment, noisy-audio cloud upgrade, and the google-genai dependency were removed.
  • machines below the local STT memory floor now surface a local/confidential setup requirement instead of falling back to hosted Google transcription.
  • thinking now has one active brain for every task: bundled local by default, a personal OpenAI, Anthropic, or Google AI Studio key, or an owner-supplied OpenAI-compatible endpoint. legacy split lanes, tier and talent routing, Vertex support, and duplicate cloud-provider adapters have been removed.

Fixed

  • a key set for an owner-supplied thinking endpoint could appear in error details when a request failed. keys are now removed from every error, event, and trace.
  • the settings page's data included whether cloud thinking keys were set. it no longer does; thinking is the only place that holds provider configuration.
  • pointing thinking at your own compatible endpoint is more dependable: requests no longer carry local-only fields some endpoints rejected, and an endpoint that can't be reached now says so quickly instead of timing out.
  • the bundled local model now downloads at full speed on first setup; some installs saw it crawl at a fraction of their connection's speed.

journal 0.8.7

july 15, 2026

Added

  • older journals with repeated copies of the same segment can now preview and safely remove only proven duplicates, including copies filed under different start times.

Changed

  • pdf imports now handle each page separately, keep extracted text distinct from model-assisted text, and preserve a page image anywhere a model helps.
  • dated journal views now use one in-page date control, with day, month, and year zoom plus week-by-week movement for reflections.

Fixed

  • when sol sends the same moment again, your journal now reuses what it already has instead of creating extra copies.
  • text, markdown, and document imports that produce nothing now say so clearly and can be retried without a false "already imported" result.
  • private-network errors now stay contained, so one failed request no longer drops the whole link or forces repeat pairing.

journal 0.8.6

july 14, 2026

Fixed

  • on a fresh install, checking your thinking providers now reaches every provider instead of stopping before the checks begin.

journal 0.8.5

july 14, 2026

Added

  • confidential processing can now be enabled from the thinking app and includes a separate audio transcription switch. when audio transcription is on, that step uses the same verified confidential connection as thinking; the rest of audio processing stays local.
  • you can now bring Apple Health exports and Oura into your journal, then explore sleep, activity, heart, recovery, and other signals by day or across trends. your raw-retention choice is enforced when the import is saved, saved health material has owner-only file access, and its summary cards stay out of sol's thinking.
  • the home and entities views now show how people and organizations connect. identity changes keep a history, merges can be undone, and an ambiguous name waits for your choice before the journal changes anything.
  • when you add a Google, Anthropic, or OpenAI key, the thinking app checks it before anything is saved. then you can choose from three model options or name a specific model, which is checked before it becomes sol's active brain.

Changed

  • sol now uses one brain chosen in the thinking app for each lane and no longer ranks or switches engines behind the scenes. older tier, routing, and fallback settings remain untouched but no longer steer model choice. if you bring a paid vendor key, some frequent work may cost more because it now uses the model you chose.

Fixed

  • long hosted backups and restores no longer lose access partway through. each job now uses narrowly scoped access that lasts for the operation, while older snapshots remain append-only.

journal 0.8.4

july 12, 2026

Added

  • when solstone suggests merging duplicate people or companies in your journal, you can now review several of those suggestions at once. select a batch and accept or dismiss them together instead of one by one; if some can't be merged, the rest still go through and the ones that need attention stay listed.

Changed

  • sol's chat replies now display formatting properly, so lists, emphasis, and code render instead of showing as raw text, and long code blocks stay contained inside the reply rather than stretching it wider. when you ask sol about your own life or history, it also now checks your journal by default instead of answering from general knowledge, while everyday conversation like greetings and follow-ups still answers directly.
  • setting up local thinking now shows live progress while the model downloads and installs, picks up where it left off if you reload the page, and shows a clear error with a retry if an install doesn't finish.

Fixed

  • the words in your transcripts are never meant to appear in solstone's internal error reports. we closed a gap where a failed transcription could put a short fragment of that text into one, and made the guarantee structural: those reports now carry only the kind of error, never any of your content.
  • local thinking and transcription handle their limits more honestly now. when a request is too long for the local model or your machine is busy, sol says so in plain words instead of showing a raw code; when local transcription can't finish a clip, sol keeps the audio and retries next time instead of quietly treating it as finished; and truncated local runs no longer leave partial results in your journal.

journal 0.8.3

july 10, 2026

Added

  • the journal now builds a rebuildable relationship layer from evidence already in your journal. it connects people, projects, decisions, and documents without invented links.

Changed

  • setup and thinking settings now separate the three ways for sol to think: local on this machine, confidential processing, or an engine you bring yourself. on capable machines, local setup starts in the background; when no engine is chosen, sol says so plainly instead of choosing one silently.

Fixed

  • local thinking on your own machine is steadier under busy stretches and backlogs. sol now keeps repeat loops from taking over a run, waits out brief overload, and avoids starting more work than the local engine can handle.
  • on machines where local model work shares system memory, sol now waits for memory to free up before starting heavy work, instead of launching into out-of-memory failures.
  • speaker review can get through the first speaker setup on fresh or migrated journals. it finds a starting voice sample quickly, plays audio from mac journals, and offers your own name when the journal is new.

journal 0.8.2

july 8, 2026

Added

  • sol now notices calendar and scheduling moments and files them as their own category in your journal, so appointments and plans are easier to find.

Fixed

  • the screen and combined-transcript tabs no longer go blank when a moment comes through in an unexpected shape. if you'd seen either tab empty out, this resolves it.
  • the home page no longer shows the same thing to do twice across its "needs you" and "needs attention" lists.
  • adding an alternate name to a person or company no longer trips a false "name already in use" warning against that same person or company. real conflicts between different ones still flag.
  • local thinking on your own machine is more reliable. sol now uses the right runtime for your hardware instead of quietly falling back to cpu, and local requests that use time-like patterns no longer fail before the model starts.
  • on linux, sol check no longer reports "no usable gpu" when the gpu is present but the current user lacks permission to reach it. it now flags this as a permission problem you can fix instead of a wrong "no gpu" verdict.

journal 0.8.1

july 7, 2026

Fixed

  • sol-only installs now render provider readiness in sol call health summary without importing journal-only model setup code.

journal 0.8.0

july 7, 2026

Added

  • journal search now starts with exact matches for agent calls and returns an honest zero when nothing matches, so agents can broaden their own query instead of getting silent near-misses.
  • sol can now add local media, social, and ambient-sound hints to material already kept in your journal, using local model installs that stay on your machine.
  • the journal can prepare and verify local vision and audio helper models from settings, including host-fit checks before a download starts.

Changed

  • journal screens now stay in one app frame, so moving between home, health, settings, search, transcripts, and the other screens is faster and steadier.
  • media and social classification now use one shared prompt, so the same moment is described more consistently across install paths.

Fixed

  • search totals and segment details are now de-duplicated, so agent and journal search results no longer over-count the same stretch of the day.
  • settings pages no longer flash or blank when switching views in the new app frame.

journal 0.7.0

july 5, 2026

Added

  • sol doctor and journal doctor now check that the installed packages fit together, and name the exact fix when they don't. the checks read only what's installed locally, nothing goes over the network.
  • the journal command now refuses to start when an upgrade left packages out of step, and prints the fix command instead of running with mismatched pieces.

Changed

  • the journal is now its own package: install solstone-journal (or solstone-journal-cuda for NVIDIA GPUs) and sol comes included. bare solstone still installs just sol.
  • the old install spellings (solstone[journal], solstone[journal-cuda], and solstone-journal-host) are retired. they now stop at install time with a message pointing at the new packages, instead of quietly producing an install missing the journal command.
  • a sol-only install is much smaller: the speech models that used to ship inside every install now come with the journal, so a plain solstone install (and uvx solstone one-shots) drops from about 34 MB to about 3 MB, and journal upgrades no longer re-download models that haven't changed.

migrating from an earlier version

if you already have solstone installed, run the one line that matches how you installed it:

`

pip uninstall solstone-journal-host && pip install solstone-journal

pipx uninstall solstone && pipx install solstone-journal && pipx install solstone

uv tool uninstall solstone && uv tool install solstone-journal && uv tool install solstone

`

journal 0.6.24

july 4, 2026

Fixed

  • if screen processing fell a few days behind, sol now catches up instead of stalling. it used to chip away at a backlog in one short nightly window, one piece at a time, so a pile could sit for days; sol now works through more at once and keeps going until the backlog clears.
  • a stretch of the day still being processed is no longer mistaken for an empty one. sol used to sometimes mark that stretch done too soon, so what was on your screen never made it into the day's summary; it now waits and comes back, so the summary in your journal reflects the full day.

journal 0.6.23

july 4, 2026

Added

  • a browser observer can now sync to your journal even when the journal runs on a different machine. it reaches your home over the private relay and seals what it sends end to end, so the relay only moves the bytes and can't read them.

Changed

  • the journal's own screens and the customer-facing docs now follow the sol naming model: sol lives on your devices and keeps everything in your journal.

Fixed

  • sol reports its own health and a day's processing truthfully. status and health views now show a real state instead of an optimistic guess, a day where every image read failed is marked done-until-you-redo instead of looking stuck, and work that already retried and finished is no longer counted as a problem.
  • your journal holds onto your data more safely. a single corrupt reading no longer aborts the whole day, imported data is checked against its fingerprint before it's trusted, a segment copy either finishes or leaves nothing half-written, backups keep the health record they used to drop, and older media is only cleared once sol can confirm the results derived from it are safely stored.
  • hardened the journal's local connections. the local web surface now turns away requests from unexpected sites, audio and segment files are only served from inside your journal, and searching with an apostrophe no longer errors out.

journal 0.6.22

july 3, 2026

Added

  • you can now pair a device to your journal over a Tailscale network, not only a shared wi-fi. if your phone and your journal are on the same Tailscale network but different wi-fi, that direct connection now works for pairing.

Fixed

  • sol's summary of a day's processing now reflects what actually happened. the 'yesterday's processing' view used to flag problems on nearly every normal day, counting work that had already retried and finished, or that belonged to a different day, and cutting long lists short. it now shows only what genuinely didn't finish for that day, grouped by name with an honest count.
  • sol gets through a full day's processing more reliably. scheduled work that didn't run at its set time is now retried instead of waiting out a full cycle, the switch to a new day at midnight no longer gets stuck, and if one step runs into trouble sol keeps going with the rest instead of stalling. work that sol used to occasionally lose track of now either finishes or is recorded as a clear failure.

journal 0.6.21

july 2, 2026

Changed

  • on linux, sol now uses a single local engine to turn your speech into text. it runs entirely on your own machine, and your audio never leaves it.
  • the first time that engine runs, it downloads the model files it needs to work, the same as the previous engine did. that download only brings files in; nothing from your journal goes out.

journal 0.6.20

july 2, 2026

Added

  • on linux, you can now opt into an alternative local transcription engine. the default engine is unchanged.

Changed

  • sol now does less repeated work on the video and on-screen activity it takes in. it skips near-identical moments while keeping the ones where something on screen changed, so nothing that changed gets missed.

Fixed

  • catching up on past days is steadier. sol re-does only the parts of a day that didn't finish rather than walking the whole day from the start, and it skips audio it has already turned into text.
  • if one audio file in your day couldn't be read, it used to be able to stop the rest of the day from being transcribed. now sol sets that one file aside and keeps going, so the rest of your day still becomes text in your journal.

journal 0.6.19

july 1, 2026

Fixed

  • a stretch of your day with nothing for sol to think about, like a quiet passage with no speech or one where your phone only had your location, used to keep the day from finishing. sol would keep re-trying that stretch and never mark the day done. now sol recognizes there's nothing there to read, marks that stretch done, and moves on, so the day completes.
  • if one step sol runs on a stretch of your day kept failing, it could hold the whole day open, re-attempted each time solstone caught up and never finishing. now sol sets a step aside after it fails enough times in a row, so the day completes, and leaves it there to try again later. your transcript and media stay in your journal the whole time.
  • asking sol to re-process part of a day is steadier now. it used to be able to get wedged partway and not restart, and now it recovers. and if an earlier version already left days stuck this way, running journal backfill-processing-records clears them so they can finish, previewing the change before you apply it.

journal 0.6.18

june 30, 2026

Added

  • you can now pair a device to your journal over your private network from the command line, even when that device isn't on the same local network as your home. your home opens a brief pairing window directly to do it, instead of relying on a short code that kept rotating, so it's more reliable and there's no shared code sitting anywhere in between. if the window isn't ready yet, pairing waits for it and tells you plainly when it's unavailable, rather than failing with a confusing error.

Fixed

  • your private network's status now stays honest while it's running. it used to be able to read as connected while the link that reaches your journal from afar was actually failing. now it tells those apart, recovers on its own when the link goes stale, and never puts access tokens or connection secrets into its status or logs.
  • a local command that talks to your journal no longer waits forever if the journal stops responding. it now stops after a set wait and tells you "the journal didn't answer in time," instead of hanging.
  • status about finishing up your days is honest now too. when sol re-processes part of a day or re-analyzes a transcript, a step that had only started, or hadn't been verified, used to be able to read as done. your health could even read as well while it hadn't. anything that hasn't truly finished and produced a result now shows as still running or as a clear error, and a day that didn't finish re-processing no longer reads as fully caught up.
  • catching up on your days is steadier when something goes wrong. if sol gets stuck finishing one day, solstone now keeps working through the rest of your days instead of letting that one hold everything up, and a single stalled step can no longer tie up sol's daily work.