History
2026.07.25
- New The VISION app stays signed in. A device you've signed in on once is remembered for 90 days and quietly renews itself when you open it — no passkey prompt every morning. The security that expiry was providing moved somewhere better: your session still ends with the day, the app just renews it without you.
- Security Preferences lists every device signed in to your account — what it is, and when it last opened the app — and any one of them can be revoked on its own. Revoking a lost phone sends it back to the sign-in screen and leaves everything else you own untouched.
- Fixed Marking a task done in the Mac app closed the whole window. It closes the detail panel now, which is what it was always trying to do.
2026.07.19
- Improved Pressing Reflect on Refract's Sunday questions now plays the full refraction scene while your week is being read — the same laser-and-prism interstitial the daily insights get, instead of a quiet status line you could miss.
- Improved Horizon's AI filing is called Help Me Sort now — says what it does. Same button, same place, under the select panel's Edit group.
- Improved The campaign border around the screen fills in with you — Horizon's blue smears swell with every finished piece, crowding the dark stretches the CAMPAIGN lettering rides, so the frame itself says how close the finish is.
- Fixed Horizon's campaign ring now actually shows progress — it speaks the loading mark's language: there's always some blue crawling the outline, and finishing pieces closes the gaps between the segments, from sparse dashes at the start to one solid unbroken band on the last item.
- Fixed Horizon's side panels were sliding in under the top bar — the header with the count and close button was hidden behind it, on phones too. They sit flush below it again.
- Fixed Images pasted or dragged into a Luminate note uploaded fine and then never displayed — the picture now lives inside the note itself, so it shows up everywhere the note does, offline included.
- Fixed Same fix for Horizon task notes — an image dropped into the notes editor actually renders now, stored right in the note text.
- Security Because images are part of the note text now, they get the same at-rest encryption as your writing — they used to sit in object storage outside that layer.
- Security The inactivity lock counts time you're away now, not just time the page sits open. Closing the tab or backgrounding the app used to kill the lock's timer, and reopening later the same day walked straight back in on the restored session — now the app remembers when it last saw you, and coming back past the idle window means the PIN screen, exactly as if you'd sat idle in front of it.
2026.07.18
- New Luminate reads PDFs now — import one and it opens as its own kind of note: the document on the left, a margin on the right where a click drops a note exactly where you want it. A translucent green hexagon marks the spot on the page.
- New “Scan for tasks” — Luminate reads a PDF against your open Horizon tasks and marks anything actionable with a blue hexagon in the margin. Tap it to see the suggested task and add it to your hive, or dismiss it. Green is yours; blue is a suggestion.
- New Any Luminate margin note can become a real Horizon task — the little blue hexagon on the note card asks which domain, then the note's own words land in your hive.
- New Make your own Horizon categories — name one, pick its icon from a set of two dozen, and it shows up everywhere the built-ins do: the pickers, the @ shorthand, and on the hexes themselves. Built-ins can still be renamed or hidden. All of it lives in Preferences.
- New Horizon areas are called domains now, and their definitions moved to Preferences — add, rename, recolor, reorder, and remove them there. The old side panel is retired; open tabs still pick up every change live.
- New Preferences — a settings page of your own, reachable from the launcher on every app and landing on the section for the app you came from. Everything follows your account across devices: auto-lock timing; Horizon's quick-add defaults, festering, confetti, duplicate warning, snooze buttons, wake hour, categories, and tracked metrics; Luminate's text size, line width, spellcheck, and where new notes file; Pupil's pay-rate masking and timeline filter; Loupe's new-item and new-template defaults; Refract's check-ins and Insights — turning Insights off stops those AI runs entirely.
- New Signing back in after the inactivity lock returns you to the app you were in — and each app already remembers its own spot, so you resume mid-thought, not at square one.
- New Horizon can comb a selection into dwells — AI does the filing: select a pile of hexes (a pasted grocery list, say), hit Comb into dwells under the select panel's Edit group, and the model names the groups — Produce, Dairy, Hardware Store — builds a dwell hex for each, and files the items inside. One AI call per press, only when you press it; anything that truly fits nowhere stays put, and the toast names it.
- New The comb takes direction — pressing Horizon's Comb into dwells asks one question first: “Anything the sorter should know?” Hand it a rule like “by store aisle” or “cold vs hot” and your rule beats its instincts. Continue runs it, Cancel costs nothing.
- New Campaigns greet you — opening Horizon while one runs makes the VISION mark glow as the wipe lands. The border treatment fades in and stays the whole time a campaign lives: soft blue smears circling all four edges at one steady pace, with “CAMPAIGN” riding every dark stretch — upright on top, upside down along the bottom like a true wrapped band, spine-lettered up and down the sides.
- New Campaigns — pick a Horizon dwell that matters and hit Start campaign right above Mark done: the hex earns a genuine Aqua barber pole — blue-on-navy diagonal stripes scrolling around its outline the whole time it runs, with the campaign mark breathing gently at its center. Dwell inside and the same stripes frame the entire screen: everything in here counts. Watching the ring thin toward solid is the point — the closer the finish, the harder it pulls. (That's real research: the goal-gradient effect.)
- New “Estimate for me” — setting a Horizon countdown can now ask AI how long the task will actually take, anchored on your own recorded timer runtimes rather than optimism (the planning fallacy is real, and your own history is the antidote). Every timer you stop or finish quietly adds to that record. One AI call per press.
- New Refract's suggested tasks come with a when now — each suggestion ties itself to a concrete moment already in your week (“After Monday's closing paperwork”), shown on the card and carried into the task's notes when you accept it. If-then plans roughly double follow-through over bare intentions — the strongest finding in the task-science literature.
- Improved The signature iris wipe zooms in and out of the VISION mark now — every app, every launch, every switch. One anchor, always the same corner, always the logo.
- Improved Watch Horizon's sort happen — each group's dwell hex appears the moment its first item lands, hexes lift out of the field one by one behind the loading veil live as the model commits each one, the line under the hexagon names each filing, and the outline fills by exactly how many items are filed.
- Improved Searching the Horizon hive is instant now — matches from your own tasks appear the moment you type (prefixes, substrings, even a typo or two), with the AI's meaning-based matches folding in a beat later for anything text alone can't find. Very short queries skip the AI round trip entirely.
- Improved Horizon's search speaks keyboard — arrow keys walk the results and Enter opens the highlighted one; with nothing highlighted, Enter still creates a task from what you typed, same as always.
- Improved Every Horizon search result that lives inside a dwell says so — a small “in Groceries › Costco” line under the title, so a match is never floating in space. And picking one draws the signature hexagon outline around the found hex, traced clockwise in the hex's own color, instead of the old expanding ring.
- Improved Horizon's select panel got folded up — Select all and Mark as done stay right where your thumb expects them, and everything else lives under two expanding groups: Share / Export and Edit. Opening one closes the other, so the panel stays short.
- Improved Panning a crowded Horizon field with a mouse works like it does on your phone — a quick pull that starts on a hex moves the whole field; pause a beat first and you pick the tile up instead. When every pixel is hexagon, quick drags mean “move the view.”
- Improved Horizon snoozes and due dates understand each other — a snooze can't sleep through a deadline: snoozing past the due date caps at the morning it's due (your wake hour from Preferences), and pulling a due date underneath an existing snooze drags the wake time back with it. An already-overdue task can still take a short nap.
- Improved Horizon's task panel gathers Due date, Snooze, and Timer into one Timing section — in the bulk panel too.
- Improved Luminate's PDF toolbar filled in — an editable title, a Delete button, zoom and fit-width controls, a live page indicator, find-in-document (Enter hops between matches with a flash at the line), a download button for the original, and one-tap chips that cycle through your margin notes or the suggested tasks wherever they hide in a long document.
- Improved Luminate's scans read the whole document now, in parts, instead of quietly stopping a few pages in — and the PDF's text feeds search and Refract like any other note. The count ticks up live (“Found 3 action items…”) while the hexagon's outline traces further around as the scan moves through the document.
- Improved Luminate's loading mark is the signature outline-drawn hexagon everywhere now — clockwise, never a spinner — including a proper full-screen scene in Luminate red while a PDF imports. Suggestion hexagons breathe so they're impossible to miss, and resizing the window re-lays every page out cleanly.
- Improved Smarter models across the suite — Refract's reflections, feedback, and Insights now come from OpenAI's gpt‑oss‑120b, a much stronger writer and judge; email titling, Horizon's AI sort, Luminate's PDF scan, and Loupe's form import move to Llama 4 Scout, newer and quicker than what they had. The privacy policy names both, as always.
- Improved Refract's Insights dig deeper — each theme now places its thread in time (new this week, continuing, winding down) using what Refract has quietly learned across weeks, and closes with a line that's earned by what you actually did — not a restatement of your own task titles back at you.
- Fixed The date field is back on Horizon's task panel — and it's called Due date now, here and everywhere else that said “follow-up.” Yesterday's slim-down cut it, which left no way to change one task's due date after creation. Same field as before: a date picker with Today, Tomorrow, and Clear.
- Fixed Horizon's AI sort handles big lists — 128 items broke it: everything past 80 was silently ignored, one giant response left most of the rest unfiled, and a single garbled reply could strand 40 items at once. It sorts in parts of 40 now with one consistent set of group names, leftovers get a sweep pass at the end, and whatever still doesn't fit is named in the toast.
- Fixed Horizon's AI sort can't hang anymore — a model reply that stalled mid-stream used to leave the loading veil up forever. Both ends now give up on a silent stream and finish with everything already filed.
- Fixed Luminate's PDF scan could come back “nothing actionable” on a document full of action items — the new model streams bare numbers differently than text, and every line number was falling out of the response mid-flight, taking the suggestions with it. Numbers survive now.
- Fixed Luminate's PDF scan stops losing count of itself — a long document's scan runs in parts, and the tab was hearing echoes of its own earlier parts and rolling the suggestion list back mid-scan (“Found 4… then 2”). Parts now stack cleanly, and the live counter only counts finds that actually make the cut.
- Fixed Panning Horizon in select mode works on the desktop — the mouse drag belongs to the selection marquee there, so two-finger scroll (or the mouse wheel) moves the field instead while the mode is on. Pinch still zooms.
- Fixed On iPhone, the Horizon field pans again while select mode is on — a finger drag moves the view (the drag-to-select marquee is a mouse thing now), and a tap on a hex selects it only if the finger didn't move. Shoot mode works the same way.
- Fixed Rapid taps on iPhone no longer zoom the whole Horizon page — tapping two hexes quickly in shoot mode was triggering Safari's double-tap zoom.
- Fixed Refract no longer says “Summarized:” over text it didn't summarize. A saved check-in shows “You wrote:” with your opening lines — the AI summaries belong to the weekly lock-in, and now only those claim the word.
- Fixed A finished Horizon countdown no longer wears a stray colored needle at 12 o'clock — the sweep's soft edge left a sliver of the hex's original color unswept at exactly full. Fully gray means fully gray now.
- Fixed Stray “Something failed while loading” toasts are gone — that message belongs to startup rescue only, and background noise (a browser extension's hiccup, say) no longer surfaces as a toast. Real errors still reach the error log quietly.
- Security The new-day rule is baked into the session itself now — when you sign in, the session is stamped to expire at your local midnight, so yesterday's session isn't just noticed and dropped by the app, it stops existing. The server won't honor it anywhere.
- Security A new day means a fresh sign-in. Browsers can quietly restore a previous evening's session the next morning — now the app notices the calendar turned, signs you out, and sends you through your passkey, landing you right back where you were.
2026.07.17
- New VISION has a new home: achieve.vision. The old address keeps working, and passkeys are bound to the domain they were made on — so to move over, open a fresh invite link (Accounts → Invite link, your own row included) on the new domain and enroll a passkey there. Hive email addresses live on the new domain too.
- New Signing in at the old address now offers the move — one tap runs a secure handoff to achieve.vision, already signed in as you, where you create your passkey for the new domain and land straight in the app. Same data, same PIN, nothing to set up twice. Or “not now” and carry on where you are.
- New Tandem sign-in — a device that can't do passkeys (or whose passkey is being difficult) can show a QR code instead. Scan it with a phone that holds your passkey, approve there, and the first screen signs in on the spot — blessed for same-day PIN sign-in too, exactly as if the passkey had happened on it.
- New Horizon tasks can be snoozed — pick a wake time (or take 1 hr / 3 hrs / tomorrow morning) and the hex greys out completely, its tile flipping between the title and Zzzzzz until then — shrunk to the smallest size and drifted out to the pack's edge, its real importance untouched. Waking restores the color, size, and spot, with a notification if the bell's on.
- New Email becomes Horizon hexes — every account gets its own unguessable hive address (managed from Accounts), and mail sent to it lands in that person's hive as a task, titled and summarized by AI, with the sender, subject, and original text riding along in the notes. Mail to anything else bounces. Emailed hexes are their own species: an envelope-icon Email category, filed under an Email area that's created on first delivery with a color you're not already using.
- New Horizon has a holding tray — lift hexes out of any number of dwells (“Hold in tray” on a task, “Move to tray” on a selection), then release them all into whatever dwell you're standing in, spin up a brand-new dwell around them, or put everything back. Nothing actually moves until you release, so the tray is safe to abandon.
- New Luminate imports files as notes — .md, .txt, .docx, and .rtf, several at a time, filed into the folder you're looking at. Word documents keep their headings, bold/italic, links, lists, and tables as real Markdown; the conversion happens entirely in your browser, no libraries, and the file never leaves it as anything but the finished note.
- New Horizon's time filter learned exact windows — “Between dates” takes a from and a to (either one optional) and shows precisely what's due in that span. Set both to the same day to see just that day.
- New Any Horizon task can be duplicated — from its panel or across a whole selection. The copy takes the title, notes, dates, and colors; timers, reminders, and inbox links stay with the original.
- New Horizon's quick-add now spots likely duplicates as you type — an amber chip names the existing task it thinks you're re-adding, including which dwell it lives in. Just a heads-up; it never blocks the add.
- New Pupil members have a proper hired date now — set it on the profile, and the header shows “Hired” that day instead of assuming the day you added them is the day they started. Changes land in the timeline like pay and availability edits do.
- New Printable to-do lists can be named — “Printable to-do list” now opens a small naming step first, and the name becomes the sheet's heading and the shared page's title. Leave it blank and you get the generic “To-do list.”
- New Task notes are a mini Luminate now — the panel's Notes box is the same live Markdown editor, formatting as you type, with images, checkboxes, and all. Long notes fold to a few lines with an arrow at the bottom to expand and collapse, and Notes moved above the Mark done button.
- New Luminate exports — the open note goes out as Markdown, plain text, Word (.docx), Rich Text (.rtf), or PDF, from the Export menu beside Import. Same formats import accepts (plus PDF), converted entirely in your browser with zero libraries — the Word file is built byte-by-byte, and checkboxes survive a round trip back through import as live checkboxes.
- Improved The task panel slimmed down — “Remind me” and “Follow-up date” are gone, leaving Timer and Snooze. Due dates still work everywhere they always did: set one as you type with the ^ shorthand, or change it from the select-mode bulk panel — even for a single hex. (A reminder set before the change still fires.) And a counting-up timer no longer sweeps the hexagon's color — the sweep now belongs to countdowns alone, where the draining dial actually means something.
- Improved Faster everywhere: the database now has proper indexes for every screen's queries (loading the hive no longer reads past every completed task ever), and multi-step saves and deletes travel as single transactions instead of one round trip per statement.
- Improved The new home is stamped everywhere the old address was — this page, the privacy policy, and the footers on printed to-do sheets and Loupe reports all read achieve.vision now.
- Improved Horizon's select mode does timers and snooze now — the bulk panel starts one count-up or countdown across the whole selection (with a Stop timers button while any are running), or snoozes every selected hex at once with the same 1 hr / 3 hrs / tomorrow shortcuts.
- Improved Invite links unfurl properly in Messages and friends now — “You've been invited,” not the generic sign-in title.
- Improved Changing the area or date filter — or adding a task — while select mode is on actually re-configures the field now. The aiming freeze holds for everything that happens to you (completions, syncs, recurrences), but your own explicit moves repack the universe; anything a new filter hides also drops out of your selection.
- Improved Horizon's task panel puts Notes right under the Mark done button now, ahead of everything else.
- Improved Swiping across the hive on a phone pans the canvas now, even when the swipe starts on a hex — picking a tile up takes a brief press first (a beat, then pull). Holding still dwells in, same as before.
- Improved Refract's Insights stick to your actual life and work now — they no longer build a theme out of your ideas about the to-do system itself.
- Improved Loupe's printed report carries the brand now — hex mark, wordmark, and footer, same treatment as Horizon's printable to-do sheet.
- Improved Clearing everything due today in Horizon's “Due by end of today” view now says so: “You've done everything today.” Rather than implying your filters ate your tasks.
- Improved Refract's week navigation dropped the “This week” button — the arrows cover it.
- Improved Horizon's undo hexagon stacks — everything marked done while it's on screen joins the same undo, each addition refills the 10-second ring, and a count appears once it's holding more than one. Press it and they all come back, not just the last.
- Improved Panel close buttons wear the brand hexagon now — tinted to each app, filling solid when you hover.
- Fixed The weird gaps that could linger in the hive after completing a dwell from shoot mode — confirming “complete all” slipped past the note that a repack was owed, so leaving select mode never healed the holes. The exit repack is guaranteed now, with a second look at the layout on every exit for good measure.
- Fixed Dragging an area's color swatch fired a save on every frame of the drag, and the saves could land out of order — color changes now settle for a beat and save once, like every other typed edit.
- Fixed Hiding finally means hiding, everywhere — a handful of controls were quietly ignoring it: Pupil's add-goal and add-certification rows never collapsed and its import wizard showed both steps at once, and Loupe kept offering “Import from PDF” on templates that already came from one.
- Fixed A priority-1 hex showed one word of its title and a “…” — the smallest tiles now shrink their icon and type just enough to fit two clean lines, so low priority no longer means unreadable.
- Fixed An AI hiccup during Refract's background surfacing could quietly erase the “Achieved this week” summary sentence and ordering it had already written — a failed run keeps the last good one now.
- Fixed Scanning a tandem sign-in code with a phone that could have used its PIN showed the phone's own PIN screen instead of the approval. The tandem link is its own flow now — passkey approval only, no matter what the phone would normally offer.
- Fixed The one hex that kept refusing to dim in select mode turned out to be an overdue hex all along — its attention pulse animates the same property the dim uses, and animations always win that fight, so no amount of repainting could land it. The pulse now pauses on dimmed faces; a selected overdue hex keeps it.
- Fixed The task panel's Timer was showing its hours/minutes/seconds fields and the auto-done checkbox before Count up or Countdown had been picked — they wait for Countdown now, as designed.
- Fixed Pupil's Add → Note handed you a blank card with no cursor in it — it read as the note simply not getting added. The fresh card opens with its editor focused now, ready to type.
- Fixed Luminate's auto-pairing tripped over doubled markers — typing ** for bold could leave three asterisks behind, and closing *word* by typing the marker inserted a stray extra one. Doubling a marker no longer re-pairs, typing a closer that's already at the cursor steps over it, and a marker that closes something already open on the line inserts plainly instead of opening a second pair.
- Fixed Select mode's dim-everything-else could still miss hexes — the repaint nudge behind the earlier fix was quietly optimized away before it ever reached the screen. It's now guaranteed a painted frame, so the dim lands on every hex.
- Fixed Opening VISION from the iOS home screen could land on a broken page asking you to “check your connection and reload” — with no reload button anywhere, because home-screen apps don't have one. When part of the app fails to arrive it now keeps retrying on its own and reloads itself the moment the network is back, with a Reload button if you'd rather not wait.
- Fixed Pupil wasn't saving newly added team members at all — the create was rejected behind the scenes because the name hadn't been typed yet, and everything typed afterward went with it. Members added before this fix never reached the server and will need re-adding.
- Fixed Refract's Insights were citing tasks by their internal ids — strings of letter-soup instead of the task itself. They name the actual work now, and everyone's insights regenerate fresh on their next visit.
- Fixed The Metric panel's “+ New” button was a cramped little chip crowding the first card — it's now a proper full-width button with breathing room, matching the checklist panel it always should have matched.
- Fixed In Horizon's select mode, one hex could occasionally stay fully saturated while everything around it dimmed — the browser was skipping that one face's repaint when the dim landed. It gets nudged now, both entering and leaving the mode.
- Fixed Undoing a completion in Horizon could drop the hex back dead-center, buried under the pack. It now returns to the spot it was completed at — the gap it left — and draws on top while it pops back in.
- Security Removing an account now also removes its printable to-do sheets — the public check-off links behind their QR codes stopped outliving the account they belonged to. Error logs and in-flight sign-in challenges go with it.
2026.07.16
- New Luminate's editor renders the line you're editing live now — **bold** shows bold with the asterisks dimmed, links show their text styled and their URL muted, inline code gets its chip — while every character stays right there under your cursor. The heart of the Typora editing feel. And the syntax only surfaces around the styled text your cursor is actually inside — the rest of the line stays fully rendered.
- New In Luminate, a bare [ ] at the start of a line is a checkbox now — no list dash required.
- New When Refract has something real to generate, the wait is now a full-screen scene: a laser draws the rim of a glass hexagon full of boiling liquid, the light refracts through it — actual Snell/Fresnel optics, no libraries — and when the fresh read is ready, the camera tilts and dives through the prism into the updated page. It only plays while generation is genuinely running; a check that finds nothing new stays invisible. With reduce-motion on, the scene still shows — as a single finished still, nothing moving.
- New Luminate's find lights up every match in the note, not just the current one.
- New In Luminate's tables, ⌥↑/⌥↓ move a row, ⌥←/⌥→ move a column — from right inside the cell.
- New Real undo and redo in Luminate's editor — ⌘Z / ⌘⇧Z step through your actual edit history, one step per burst of typing, through table edits, find & replace, and formatting commands alike.
- New Luminate's code fences got syntax coloring (JavaScript, Python, CSS, HTML, JSON, SQL, shell — hand-rolled, no libraries), line numbers, and a language chip on the opening fence.
- New Type :fi in Luminate and an emoji autocomplete pops up — arrow through, Enter inserts 🔥. A couple hundred of the usual :names: render in place too.
- New In Luminate, brackets, quotes, and markdown markers auto-pair as you type, typing a closing bracket steps over the one that's already there, and Backspace inside an empty pair removes both halves.
- New In Luminate, formatting works across a multi-line selection now — each line's content gets wrapped, list bullets and heading marks left intact. Same for setting heading levels and quotes on a whole selection.
- New In Luminate, a > line right under a callout joins its box — multi-line callouts finally read as one. Plus ~subscript~, ^superscript^, and YAML front matter rendering as a quiet metadata block.
- New Luminate's sidebar has Notes ⇄ Outline tabs — the outline tracks your scroll position and highlights the section you're in. The old table-of-contents dropdown is gone.
- New Copying out of a Luminate note carries real formatting into Mail, Docs, or Word — a markdown editor pasted into still gets clean markdown.
- New In Luminate, ⌘P prints just the rendered note, cleanly, on white. And ⌘Enter escapes out of a table or code fence into a fresh paragraph below; ⌘L selects the current line.
- New Luminate's editor learned the keyboard: ⌘B/I/U for bold, italic, underline, ⌘E for code, ⌘⇧X strikethrough, ⌘⇧H highlight, ⌘K wraps a link, ⌘\ strips formatting off entirely. ⌘⌥1–6 set a heading level, ⌘⌥0 goes back to plain text, ⌘⌥Q toggles a quote. With nothing selected, the word under the cursor gets it. (Same engine as Horizon's full task-notes editor, so it all works there too.)
- New Select some text in Luminate and type *, `, ~, =, a bracket, or a quote mark — the selection gets wrapped, not typed over.
- New Luminate tables get a floating toolbar while you're in one: add or delete rows and columns, align a column left/center/right, delete the whole table. Alignment is written into the note as standard :---: Markdown, so it's just text like everything else.
- New Luminate headings run six levels deep now (#### and beyond), and the outline and [toc] block follow them down.
- New In Luminate, a bare pasted URL renders as a clickable link — no [name](url) ceremony required. And __underline__ works in notes, the same syntax task titles use.
- New In Luminate, ⌘⇧V pastes as plain text, skipping the usual rich-text-to-Markdown conversion for that one paste.
- New Luminate spell-checks while you type, in both the formatted view and source mode. Code blocks are left alone — squiggles under variable names help no one.
- New Luminate reopens the note you were in — the idle-lock round trip lands you back where you left off instead of at the empty pane.
- New In Luminate, Enter on a quote line continues the quote, the way lists already carried their bullets forward.
- New Refract's weekly reflection opens Sunday now, once the week's actually over. Monday through Saturday, you get a quick daily check-in, an “Achieved this week” board pulling in what you finished across Horizon, Loupe, and Pupil, and Insights — a few times a day, a read on what you've actually been circling this week.
- New Refract's Sunday reflection opens with all six of that week's daily check-ins read back to you.
- New Refract's daily check-in has a Mon–Sat day picker — go back and answer a day you missed. Days that haven't happened yet stay locked.
- New Refract's “Achieved this week” board picks its half-dozen highlights by real significance — a finished long-term project outranks a paid bill.
- New A Horizon task's hex can turn into a live timer — count up, or count down from a duration set in hours, minutes, and seconds.
- New In Horizon, a running timer's hex is a proper live tile — the face alternates between the task's title and the ticking readout, while the hex's color drains around the center like a pie chart: one lap a minute counting up, one full counterclockwise sweep across a whole countdown, kitchen-timer style. Stopping a timer sweeps the color right back.
- New In Horizon, a finished countdown breathes out a hexagon ring in the hex's own color until you deal with it — and a “Mark done when timer ends” option lets the task complete itself a few seconds after the ring starts.
- New Horizon can send you a browser notification — turn it on from the new bell icon in the topbar. Covers a finished countdown timer and a reminder time you set on any task, while the app is open.
- New Any hex in Horizon can be designated an anonymous inbox — turn it on from that task's own detail panel to get a hexagon-framed QR code or link anyone can send it a suggestion through. Suggestions land right inside that hex as items, ready to keep, finish, or delete.
- New Horizon's select mode gained a “Select all visible” button, drag-to-select across empty space, and a second tap of the select button for a “point and tap to mark done” mode.
- New The quick notes field on a Horizon task renders Markdown now too, not just the full editor — click to edit, click away to see it formatted.
- New Horizon task titles render Markdown on the hex — **bold**, *italic*, ~~strikethrough~~, and __underline__.
- New Finishing a task in Horizon gets a small confetti burst alongside the usual fly-to-tray animation.
- New Completing a Horizon hex that has open items dwelled inside asks first — confirm, and the whole dwell completes with it. The undo hexagon brings the whole set back.
- New Accepting a Refract suggestion now links straight to the new task it created in Horizon, and that task links back to the week it came from.
- Improved A saved Refract daily check-in collapses to its summary with a Show original button — the same locked treatment the Sunday reflection already uses — instead of a greyed-out box with a “Saved” note.
- Improved The Achieved-this-week hexagons wear Refract's amber now instead of Horizon blue, and the one-line rollup sentence above the board is gone — the magnets speak for themselves.
- Improved Luminate's word counter adds an estimated reading time once a note gets long enough for one to mean anything.
- Improved In Luminate, formatting a selection on already-rendered text works now — the line opens up to show its syntax and the markers land around exactly what you selected, instead of the styling going somewhere odd.
- Improved Luminate's focus mode keeps the line you're typing vertically centered, and the note gets real breathing room below its last line — click anywhere in that space to keep writing. Underline is __text__ now; the day-old ++text++ spelling is retired.
- Improved Luminate's editor toolbar moved up into the top bar, next to New note. Typewriter mode holds the caret centered while you type, not just when you switch lines, and the word counter adds a line count.
- Improved Horizon's task detail panel got reordered — the title sits above the Mark done/Reopen buttons, and Importance, Area, and Category come before the dates and timer.
- Improved Horizon's Mark done button — and the bulk panel's “Mark as done” — are green now, so the finish action reads clearly.
- Improved Overdue Horizon hexes pulse gently now, so the ones needing attention are easier to spot at a glance.
- Improved Horizon's hive freezes for the whole time select mode is on — marking things done (bulk or point-and-tap) leaves gaps instead of shuffling the remaining hexes while you're aiming, and the hive repacks once when you leave the mode.
- Improved Refract's week navigation lives entirely in the topbar — the past-weeks sidebar is gone.
- Improved Horizon's topbar wraps cleanly on narrow screens instead of overflowing.
- Improved Point-and-tap “mark done” mode takes a quick double-tap of Horizon's select button now. A second tap more than two seconds later leaves select mode instead — by then, that's almost always what you meant.
- Improved On a phone, every Horizon bottom sheet has a Close bar pinned to its bottom edge — in thumb reach no matter how far the sheet's content scrolls.
- Improved In Luminate, ⌘+click opens a link in a note; a plain click edits the line instead of yanking you off to the URL mid-thought. Long notes also load, undo, and re-render measurably faster.
- Security Plain-HTTP requests to VISION now redirect to HTTPS, and every page and API response carries a Strict-Transport-Security header — a browser that's visited once over HTTPS won't try HTTP again for two years.
- Fixed Refract's day picker and check-in run on your local clock — a Thursday evening was showing Friday selected because the date math used UTC.
- Fixed In Luminate, clicking into the middle of a paragraph keeps the cursor where you clicked — it used to snap to the end of the line.
- Fixed In Luminate, the paragraph being edited no longer greys out.
- Fixed Turning Luminate's focus mode off actually turns it off. It also no longer dims the whole note uniformly when the cursor isn't in the editor — nothing was “in focus,” it just looked stuck.
- Fixed In Luminate, a bare - [ ] with no text after it renders as a checkbox instead of literal brackets.
- Fixed Luminate's floating toolbar buttons are opaque now — note text scrolling underneath was bleeding through the icons.
- Fixed In Luminate and Horizon notes, a Markdown link pointing at another VISION page (a /horizon or /refract path) rendered as a dead link — only full https:// URLs worked. Relative links are clickable now.
- Fixed On a phone, Horizon's breadcrumb trail and the completed view's date filter floated on top of an open bottom sheet. They slide underneath now.
2026.07.15
- New Loupe: a new sub-app for running reusable checklists/inspections and grading the result — pass/fail/N-A, checkboxes, short text, numbers, dates, photos, and letter grades. A run's subject can be a Pupil team member or anything else you give a name to. Works offline and syncs when you're back online.
- New Loupe can import a checklist template straight from a PDF form — sections and fields are auto-detected from the page text and double-checked by AI, then a confirm step lets you drag or fix any detected box before saving, since auto-detect won't be pixel-perfect on every form.
- New Loupe exports a completed run back onto its original PDF layout — marks, typed answers, and grades stamped at the same spots the fields were imported from, not a regenerated report.
- New Loupe can also print a plain paper copy of any run, whether or not the template came from a PDF.
- New Every item in a Loupe run can carry a freeform comment now — any item, any response type, whether or not it came from a PDF. Comments show while you're filling out the run and on the printed report.
- New Loupe's filled-PDF export opens a preview first — page through the stamped result, then click anywhere to drop in your own text fields (inspector name, date, permit #, header notes) that get stamped alongside the checklist answers. Added fields save on the run and follow it across devices.
- New Pupil's member page is now a single timeline instead of separate sections: goals, certifications, Loupe checklist-run summaries, and notes all land as dated cards in one feed, filterable by type. Notes are now individually dated cards too, not one running block.
- New Pupil now keeps a lightweight activity log — changing someone's pay rate, availability, or a goal's due date leaves a timestamped line on their timeline.
- New Pupil availability is a real weekly grid now instead of a text field — each day can hold more than one window (for a split shift), plus freeform shift-preference tags like “Prefers opening.”
- New Pupil rows pasted from an outside tracker can be bulk-imported — re-pasting the same rows is a no-op, a changed row updates the existing entry instead of duplicating it, and nothing commits until you confirm what's about to change.
- New Horizon quick-add takes a pasted block of text now — one task per line, same shorthand (!/#/@/^) as typing them one at a time.
- New Checklist recurrence in Horizon now covers monthly (a specific day, or the last day of the month) and yearly schedules, alongside the existing weekday and every-N-days options.
- New Task notes in Horizon's full-editor view accept images now too — paste, drag-and-drop, or pick a file, same as Luminate below.
- New Luminate notes can live in folders now, nested as deep as you want, with drag-free move-to-folder from any note.
- New Luminate notes support images now — paste, drag-and-drop, or pick a file.
- New Luminate supports footnotes (hover to preview, click to jump to the definition) and GitHub-style callout blocks (> [!NOTE], [!TIP], [!IMPORTANT], [!WARNING], [!CAUTION]).
- New Pasting rich text into Luminate from elsewhere (a webpage, a doc) keeps its formatting, converted to real Markdown, instead of landing as plain text.
- New Luminate tables are a real grid now — click into a cell, Tab or the arrow keys move between them, Enter adds a row. No more typing pipe characters by hand.
- New Luminate formatting previews as you type — a heading, quote, or list line takes on its real styling immediately instead of waiting until you move to the next line.
- New Luminate editor: find & replace, a source-view toggle for the raw Markdown, live word count, and focus/typewriter modes.
- New Horizon pops up an undo hexagon when you finish a task — its outline counts down for ten seconds, and tapping it brings the task back. Ignore it and it fades on its own.
- New Horizon's completed view can filter by when things got done — Today, Yesterday, the last 7 days, or a specific day from a date picker.
- New Drop a task into Horizon from outside the app — generate a personal API key on the Accounts page and point an iOS Shortcut or a webhook at it.
- New Multi-selecting tasks in Horizon now has separate “Copy to clipboard” and “Export as markdown” buttons — copying no longer forces a file download.
- New The ? button in Horizon now opens a “How the hive works” page — what a hex's size, color, position, and pattern each mean, and how to read the field at a glance.
- Improved Horizon's hive packs tight now. The most important task sits dead center, sizes step down toward the edges, and every hex lands flush against its neighbors — the same tasks always build the same hive. Completing, adding, or editing a task rebuilds the field in one quick pop instead of hexes drifting into new positions, and a settled hive holds perfectly still.
- Improved VISION's signature dilation transition — switching apps, opening a page, zooming into a task — is a hexagon now instead of a circle, matching the brand mark.
- Improved Pass/Fail/N-A answers in Loupe are hexagons now — green with a check for Pass, red with an X for Fail — matching the checkbox response type.
- Improved Saving a Loupe checklist after confirming a PDF import now shows a loading state the whole time instead of going quiet between confirming and the checklist actually appearing.
- Improved VISION's changelog is named History now — old /changelog bookmarks redirect here.
- Improved Horizon's completed view now follows wherever you're focused — dwell into a task and it shows that task's finished pieces, not every done task in the hive.
- Improved Search in Horizon and Luminate returns more matches at once — up to 50.
- Improved VISION's app switcher menu lists the apps alphabetically.
- Improved Horizon's “Show done” toggle moved to the far right of the toolbar.
- Improved Horizon hexagons no longer show a small magnifying-glass button — double-click still drills into a task's subtasks.
- Security The 5-minute inactivity sign-out now applies on every app, not just Horizon — sitting idle in Luminate, Pupil, Loupe, Refract, or the Accounts page now locks the session the same way.
- Security Fixed a stored-XSS gap in Pupil's "add certification" dropdown — a certification-type name wasn't escaped before being rendered.
- Security Attachment uploads (Luminate images, Loupe photos and PDFs) are now restricted to actual image/PDF content types and served back with stricter content-type handling.
- Security Fixed a storage-quota leak in Loupe: deleting a checklist template, or replacing its imported PDF, now correctly releases the old attachment instead of leaving it counted against your storage limit forever.
- Security Loupe's PDF import now rejects absurdly large or long files up front instead of attempting to fully parse them.
- Security VISION's PIN sign-in same-day eligibility check no longer trusts an unbounded client-supplied date — it's now capped to a one-day window either side of the server's own clock.
- Security Fixed a race in VISION's invite-link redemption that could let the same one-time invite register two passkeys if opened twice at once.
- Security Closed a bypass in VISION's at-rest encryption where a specific crafted value could be written back out as plaintext instead of being encrypted.
- Security A Loupe "Download filled PDF" export now flattens the original form's fillable fields into the page — the exported copy can't be reopened and edited as a form in another PDF app.
- Security Updated the privacy policy to reflect that uploaded images and PDFs (Luminate, Loupe) rely on Cloudflare's storage-level protection rather than this app's own text-field encryption, which only covers database columns.
- Security VISION sign-in and the new task webhook are rate-limited now, to blunt brute-force attempts and runaway automation.
- Fixed Attaching a source PDF to a Loupe template could fail on anything over 1MB even though PDF import itself already allows up to 25MB — the two limits now match.
- Fixed Creating a new checklist in Loupe could silently fail to save the checklist itself while still saving anything added to it afterward, leaving it unreachable.
- Fixed Typing a Loupe checklist's name quickly could save a cut-off version of it.
- Fixed "Download filled PDF" in Loupe downloaded the original PDF with none of the run's answers stamped on it. Two separate bugs: import wasn't reading the form's actual checkbox squares, so marks landed off-target — fixed by reading the real checkbox geometry. Deeper cause: real inspection-form PDFs ship their checkboxes as fillable fields, which always draw on top of anything stamped underneath them, so nothing could ever show no matter where it landed — exporting now flattens those fields into the page first. Runs completed before this fix will need to be re-run to export correctly.
- Fixed Printing a Loupe report no longer trails a run of blank pages after it.
- Fixed On some Loupe inspection forms the last page of a filled-PDF export spelled out PASS/FAIL in words instead of marking the checkbox — forms that draw each checkbox as several stacked shapes, and continuation pages that don't reprint the column header, are both read correctly now. Re-import the PDF template to pick this up on an existing checklist.
- Fixed A brand-new Loupe checklist's untitled name field could show its placeholder text cut off.
- Fixed Multi-selected tasks in Horizon keep their highlight when editing one of them reshuffles the board.
- Fixed Date pickers in Horizon show a visible calendar icon in dark mode instead of a near-invisible dark one.
2026.07.14
- New This page.
- New Printable to-do list: select tasks in Horizon and print them as an actual paper checklist — grouped under priority headers when priorities mix, alphabetical within a group, each item carrying its notes. The sheet has a QR code up top: scan it with any phone to open the list, no sign-in, and tap items to check them off. A check completes the real task in Horizon, a task completed in Horizon shows checked on the list, and checks land live on every open copy of the page.
- New Horizon quick-add note operator: type " in the quick-add bar to attach a note at creation — Fix sink "call the landlord first. Close the quote to keep adding operators after it; leave it open and the note runs to the end of the line.
- New Generic VISION invite links: an account can now be created before its person's name is known — they enter their own name when they open the invite.
- New Browser errors on signed-in VISION pages are now reported to a central log (kept 30 days) so recurring bugs get found and fixed — noted in the privacy policy.
- Improved Horizon search now only surfaces tasks in your current view, with a “Search everything” option when you want the wider net — and low-relevance matches are filtered out.
- Improved When every Horizon task is hidden by your filters, the empty screen now names the filter responsible, and an “Adjust filters” button takes you straight to it.
- Improved Horizon boots lighter: finished tasks (65% of the table and counting) now load only when you open the completed view.
- Improved Horizon reopens in the task you were last dwelled into instead of always starting back at the hive.
- Improved Horizon's little confirmation popups for dwelling in and out (“Broke open…”, “Back to the hive”) are gone.
- Fixed Search text no longer lingers in Horizon's quick-add bar after you've moved on, and a dismissed results dropdown can no longer pop back open.
- Fixed VISION's sign-in page now greets you with the same color-shifting “Hello” as the rest of the login flow.
- Fixed A Horizon task whose pieces are all finished no longer keeps wearing the holds-subtasks pattern over an empty inside.
- Fixed Empty holes left behind in Horizon's hive packing now heal instead of lingering as random gaps.
- Fixed The VISION brand lettering now displays correctly in Safari, which was rejecting the font file over a metadata quirk.
- Fixed In Safari, leaving Horizon's multi-select mode could leave some hexes stuck dim/unsaturated until something else redrew them.
- Fixed A background error when a text selection started over Horizon's hive — the first bug caught by the new error log, fixed the same day.
- Fixed Creating a Horizon task and dwelling straight into it (the “>” shorthand) could leave stale search results and an off-screen-task arrow floating over the new scope.
Changes before 2026.07.14 are not logged.