Skip to content

Releases: solpbc/solstone-journal

solstone 1.0.20

Choose a tag to compare

@quartzjer quartzjer released this 31 Jul 06:45

[1.0.20] - 2026-07-30

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.

solstone 1.0.19

Choose a tag to compare

@quartzjer quartzjer released this 29 Jul 06:49

[1.0.19] - 2026-07-29

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.

solstone 1.0.18

Choose a tag to compare

@quartzjer quartzjer released this 28 Jul 16:45

[1.0.18] - 2026-07-28

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.

solstone 1.0.17

Choose a tag to compare

@quartzjer quartzjer released this 26 Jul 07:44

[1.0.17] - 2026-07-26

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.

solstone 1.0.16

Choose a tag to compare

@quartzjer quartzjer released this 25 Jul 23:14

[1.0.16] - 2026-07-25

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.

solstone 1.0.15

Choose a tag to compare

@quartzjer quartzjer released this 25 Jul 16:14

[1.0.15] - 2026-07-25

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.

solstone 1.0.13

Choose a tag to compare

@quartzjer quartzjer released this 24 Jul 06:24

[1.0.13] - 2026-07-24

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.

solstone 1.0.12

Choose a tag to compare

@quartzjer quartzjer released this 23 Jul 05:11

[1.0.12] - 2026-07-22

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.

solstone 0.9.1

Choose a tag to compare

@quartzjer quartzjer released this 22 Jul 16:12

[0.9.1] - 2026-07-22

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.

solstone 0.9.0

Choose a tag to compare

@quartzjer quartzjer released this 19 Jul 19:25

[0.9.0] - 2026-07-19

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.