Previously v0.5 — The "Agent Remembers You" Update
This is our biggest update yet. By a lot.
68 commits. 102 files changed. Nearly 9,000 lines of new code. Over 6,000 lines rewritten or removed.
It changes how your agent understands you. How you scroll through your own memory. How you see it think.
🧠 Your agent now actually remembers you
This is the soul of v0.5.
Before this, every conversation started fresh. Your agent would meet you again, like a stranger. Now, every conversation builds something called previously.md — your agent's persistent, evolving understanding of who you are.
This is not a static profile. It's a living self-model.
When you tell your agent something about yourself, it observes. When you bring it up again across different conversations, it reinforces that belief. When you correct it — "no, that's not what I meant" — it contradicts the old impression instead of forgetting it. Some beliefs promote from short-term memory into long-term. Others naturally expire.
And here's the thing: your agent self-evolves after every single conversation. That's not a metaphor. A separate Pro model literally fires up after each turn to ask: "Has my understanding of this person changed? Do I need to update anything?"
You can see it happen. The Previously Bar at the bottom of your screen tells you, in real time:
🧠 Evolved: +2 observed · ↑1 reinforced · ↓1 demoted
🕰️ A completely new timeline — your memory, now scrollable
We tore down the old memory browser and rebuilt it from scratch.
Before: a vertical sidebar. Date-grouped cards. Functional, but it felt like a file manager.
Now: a horizontal, scrollable line. Every dot is a conversation. Date above. Time below. A single thin connector runs through them all, from the past stretching all the way to —
The rightmost dot. Hollow. Waiting.
That one is NOW.
Click any dot and you're back in that day. The full conversation renders — every exchange, every reply, exactly as it happened. And next to every agent message, there's a tiny link that says "Thoughts." Click it, and you see what the agent was thinking during that exact turn. Not what it said. What it was thinking while it said it.
And when you're flipping through memories, the old one doesn't flash away while the new one loads. We built stable slice switching — content stays visible. Only a subtle pulse bar at the top lets you know something is loading. No flicker, no blank screen, no whiplash.
👁️ You can see it think now
We designed something called the Phase Indicator. Your agent's thought process is now transparent. Staged. Timed.
- 🌀 Slicing time… 3s → ✓ Time sliced
- 🔍 Scanning memory… 2s → ✓ 3 conversations found
- 🧠 Updating its understanding of you… → "+1 observed · +1 reinforced"
The best part? Subtitle-style reasoning. When the agent is thinking, you don't see a wall of text. You see the current line it's working on, like a subtitle track scrolling in real time. A line ends. A new one fades in. A cursor blinks at the last character.
Subtle. But trust is built on transparency.
🎨 A new visual language
- #0066FF — our brand color. It's on the icons. The links. The progress bars. The send button. The cursor blink.
- Typeset — we wrote our own typography engine to replace Tailwind prose. Three CSS variables control the entire rhythm. Streaming-safe: new text never reflows old text.
- Two-screen layout — Hero fills your entire viewport. Scroll down, the timeline snaps below the header, and your conversations flow beneath it. Pure CSS. Zero JavaScript height hacks.
- Loading Tip carousel — Agent thinking used to be a boring spinner. Now it's 16 rotating tips that teach you how the product works. What's a time slice. How previously.md evolves. Why GitHub is your database.
🏗️ What changed under the hood (if you're into that)
Push → Pull architecture
The old system force-fed context to the agent before every reply ("Push"). Now the agent decides when it needs to look something up — it calls the recall tool on its own ("Pull"). Conversations that don't need memory retrieval don't pay the latency or token cost. This is what turns a passive LLM into an actual agent.
Dual timeline
Every time slice now has two parallel records:
core.md— the conversation (what was said)agent.md— the cognition (what the agent was thinking, which tools it called, and why)
This is where the "Thoughts" link comes from. The agent can reflect on its own past reasoning.
Evolution as an independent workflow
The agent's self-evolution is now a fully independent Vercel Workflow, running in parallel with the chat workflow. The two know nothing about each other — they couple only through previously.md on disk. If evolution fails, chat doesn't care. If chat is slow, evolution doesn't wait.
Conceptual tools
The agent no longer sees readFile / writeFile. It sees:
readSlice— open a memoryreadStrand— trace a topic across timerecall— search the pastreadPreviously— check its own historical impressions
The agent navigates memory concepts, not file systems.
Subtraction
We deleted ~600 lines of UI components (old vertical timeline, old identity system, old loop engine, old filesystem tools). Less code. More capability.
📦 The full list
New
- Horizontal timeline (
HorizontalTimeline+TimeDisplay) - previously.md v2 — long-term / short-term memory split
- Phase Indicator — subtitle-style reasoning, staged thinking, elapsed timer
- Previously Bar — live evolution status, always visible
- Evolution Indicator — self-evolution after every turn, expandable mutation cards
- Cognition Popover — peek at the agent's past thoughts ("Thoughts" link)
- Historical Chat View — browse past conversations in full
- Loading Tip carousel — 16 rotating tips, randomized starting point
- Typeset typography engine — zero-specificity, streaming-safe
- #0066FF brand color system — light + dark mode
- Global timeline index — flat file, auto-regenerated, stale detection
- Recall search — Flash sub-agent with 3-stage exploration
- Capabilities module — single source of truth for app mode
- Dual-timeline architecture —
core.md+agent.mdper slice - Mechanical cognition extraction — no model involvement, automatic
- Reasoning effort control — low / medium / high
- 7 new test suites — capabilities, cognition, previously format/updater, timeline, recall, loops
Changed
- Page layout rebuilt — two-screen CSS document flow, no virtual scroller
- Tool system fully refactored — filesystem → memory concepts
- Evolution Agent extracted to independent Vercel Workflow
- Flash from mandatory per-turn step → on-demand search (Push → Pull)
- Streaming UX: animations, subtitle reasoning, shimmer bars, merged tool cards
- Identity system migrated from
profile.md→ previously.md - Data source resolution simplified (
STORAGEenv var)
Removed
- Old vertical timeline panel (~580 lines)
- Old
profile.mdidentity system - Old file-driven loop engine
- Old
memory/nodes/extractor - Old archive sync
- Old filesystem-concept tools (
readFile,writeFile,updateUserProfile, etc.) - Tailwind prose typography
🔭 What's next
v0.5 establishes Previously On's core product language: memory is a line you can scroll. Agents self-evolve. Thinking is transparent. Your data lives in your repo.
We're building a brand new website based on everything in this release.
Made with 🧠 by Previously On.
Your memory. Your repo. Your agent.