Feature Intro: Bubble Chats

Or: when the desk is the product, not the transcript

Source: /Users/nitishchauhan/Downloads/1 Feature intro - Bubble Chats.md
Phase: final
Previous: Trajectory - Inner Map · Index - Feature Intro Bubble Chats
Status: draft

Pipeline: CONSTITUTION - Publishable Asset Pipeline · 00 - Master Index


How this one actually started

I kept describing Atlas like it was one clever tree.

Branch here. Fork there. Never lose the logical spine. That is real. Deep reasoning needs relationships.

But the other half of how I actually work kept leaking into the same pitch: three chats open at once, one for a side definition, one for a wild tangent, one for the main plan, none of them forced into parent and child. Drag them. Kill them. Leave them floating.

The useful cut was not “branching is wrong.” It was: I was smuggling two different modes of thinking into one system name. Once those modes separate, the rest of the bubble desk almost designs itself: Session as the unit, interrupt-spawn without abandoning the main thread, recovery that restores geometry, panels that are not only AI, and a closing claim that most AI clients are still messaging apps.

What follows is the feature intro that froze after that cut. Design conversation, not a finished paper. The open questions at the end are still open on purpose.


The real question under the feature list

Is the product a smarter chat transcript, or a spatial thinking desk where conversations are tools you arrange?

That is the fork this piece stays on.


1. Two modes, kept on purpose

Mode 1: Structured Branching

Purpose:

“I don’t want to lose the logical flow.”

This is for deep reasoning.

Main
├── 1.1
├── 1.2
│   ├── 1.2.1
│   └── 1.2.2
└── 1.3

Everything has relationships.

Mode 2: Floating Workspace

Purpose:

“I’m exploring. Don’t force relationships.”

Figma meets ChatGPT. Chats sit as free rectangles on a surface. You drag them, resize them, close them, move them. No hierarchy. No branching. Just thinking.

+---------------------+
|  Chat A             |
+---------------------+

          +------------------+
          | Chat B           |
          +------------------+

     +------------------+
     | Chat C           |
     +------------------+

                    +----------------+
                    | Chat D         |
                    +----------------+

Names that stick

Call them Conversation Mode and Workspace Mode. Switch with one click. Do not collapse them into a single tree and pretend the second need never existed.


2. Session is stronger than folders

A Session is one thinking episode. Everything inside belongs to it.

Session

Morning Research

├── S1
├── S2
├── S3
├── S4
└── S5

On export:

Morning Research/

S1.md
S2.md
S3.md
S4.md
Session.json
metadata.json

Clean pack. One closed loop of work, not a permanent graveyard of half-named files.

Visual titles, internal UUIDs

Internally keep UUIDs. Visually, auto-title from the first prompt:

💬 PDF Summary
💬 Electron
💬 Cursor
💬 Python
💬 VPS

You remember the bubble by what you asked, not by S3 forever.


3. Interrupt cognition: temp, spawn, pin

Temporary chats

Sometimes the whole need is:

“What’s Electron?”

Read. Done. Delete. Gone forever. No guilt. No clutter.

⌘ + W
Gone.

Quick Spawn

⌘ + N

Instant floating chat. Cursor already inside. No menu. No dialog. Just type.

ADHD-style spawn beside you

You are in Chat A. Suddenly: “Oh wait…”

Instead of leaving the thread:

⌥ + Enter

Creates Chat B floating beside it. Focus switches instantly. Main thread stays. Side itch gets a surface.

That is not a power-user easter egg. That is matching how interrupt-driven thinking actually moves.

Pinning

Some chats are load-bearing:

📌 Main Plan

Pinned. Never closes by accident. Everything else can disappear.


4. Session close, recover, promote, timeline

Closing the session

Closing Main can ask:

Close entire session?

✓ Save
✓ Compress
✓ Export

Cancel

Then all floating windows disappear together. It should feel like ending a work session, not like hunting stray tabs.

Session Recovery

Like VS Code resume. Yesterday:

Morning AI
(Resume?)

One click. Every floating panel returns exactly where it was: same sizes, same zoom, same scroll positions.

Promote to Primary

“Primary stays in the center” is a useful default, not a law. The main discussion changes mid-session. Any floating window can become Main:

Right Click
↓
Promote to Primary

Now every other window belongs to it. Flexible ownership, not a fixed altar in the middle.

Session Timeline

Bottom of screen. Narrative, not only state:

09:02  S1 Started
────────────
09:15  S2 Spawned
────────────
09:40  S3 Spawned
────────────
10:20  Returned to S1
────────────
11:01  Closed S3

The day has a story. Spawn, return, close. That matters if the product is about how thinking moved, not only what text was saved.


5. Not every panel is AI

Floating Notes

Some windows are sticky thought capture only:

Todo
Research later
Book
Idea
Question

No tokens. No model. Capture without turning every itch into a chat bill.

Floating Browser (and polymorphic objects)

Instead of Chat in one app, Browser in another, Finder in a third, Atlas holds panels that can become:

  • AI Chat
  • Browser
  • Markdown editor
  • PDF viewer
  • Whiteboard
  • Scratchpad

One workspace. Multiple object types. Chat is a citizen, not the only species.


6. Window physics as product soul

Fun is not decoration here. It is how willing you are to keep rearranging thought.

Grab a chat and flick it aside. Smooth spring animation. Magnetic snapping. Zoom. Keyboard shortcuts for everything. No lag. 60 FPS.

Closer to moving index cards across a desk than managing software windows. If the cards feel heavy, people stop spatializing and fall back to one long scroll.


7. Questions before the technical specification

These are not trims. They make the design richer before locking a TRD.

1. Multi-model support

Should each floating chat use a different model at once?

  • Chat A → GPT-class
  • Chat B → Gemini
  • Chat C → Claude
  • Chat D → DeepSeek

Comparison becomes a spatial layout, not a settings pilgrimage.

2. Shared session memory

Should Chat B automatically know Chat A?

Default preference that held in this design pass: fresh context by default, with an option to inject context when you mean it. Independence first. Link when intentional.

3. Cross-chat drag and drop

Drag an answer from Chat B into Chat A as quoted context. Candidate for a signature interaction: the desk does what copy-paste menus never teach.

4. Live compression panel

Do not wait for end-of-day dump. A side panel continuously builds:

  • Key questions
  • Emerging themes
  • Decisions
  • Open loops

Then the session summary is half-written before you stop working.

5. Universal command palette

One shortcut, VS Code-shaped:

⌘ + K

From there: create chat, search sessions, switch models, compress session, export, search every conversation you have ever had. No menu hunting.


What I was hunting by the end

Out of the feature pile, the durable claim is not any single shortcut.

Floating workspace + Session model is a distinctive interaction model. Most AI chat clients are still designed as messaging apps. This direction is a thinking workspace, where conversations are tools you arrange spatially instead of a single scrolling transcript.

That is the design direction worth protecting when the technical specification starts: keep Conversation Mode for logical flow, keep Workspace Mode for relationship-free exploration, make Session the unit of close/recover/export, and treat panels as objects on a fast desk, not tabs in a chat client.


Gemma 14 Phase 3. Experiential series angle from Index - Feature Intro Bubble Chats. Related Atlas spine lives in sibling indexes (MVP roadmap, technical specification) without merging this intro into a TRD.