Internal state
Internal state is TabMate’s running notebook for your workspace. It is not a memory you manually save. It is a system-managed layer TabMate updates on its own so it can stay aligned while your work evolves across tabs and turns.
If memories are what TabMate can recall by relevance, and pins are what TabMate always includes, internal state is how TabMate keeps track of the work in motion.
What Internal State stores
Internal state is split into two scopes.
1) Conversation overlay (“Right now”)
This is short-lived state for the current conversation. It captures things like:
- Current goal
- Goal stage
- Next likely steps
- Current constraints
- Short-term instructions
- Open threads
- Recent milestones
- Working assumptions
This is the part that helps TabMate not lose your near-term direction in long threads.
This scope is explicitly volatile and conversation-tied.
2) Workspace profile (“Workspace patterns”)
This is slower-moving state for the workspace overall. It captures patterns like:
- Stable preferences
- Stable dislikes
- Stable working style
- Decision patterns
- Recent shift signals
This is the part that helps TabMate carry your repeated ways of working across conversations in the same workspace.
This scope is slower-moving and shared across conversations inside a workspace.
Lifecycle and expiry behavior
Internal state has different lifecycle rules per scope:
- Conversation overlay has a time-to-live (TTL). Default overlay TTL is 7 days.
- Workspace profile does not use overlay TTL and persists as workspace-level state.
Conversation overlay can also be considered stale if newer user turns exist beyond its source cursor, and stale overlays can be reset/cleaned by maintenance paths.
How Internal State gets generated
Internal state updates after asks as part of TabMate’s post-response processing. TabMate reviews:
- Recent transcript
- Existing internal state
- Current workspace context
- Relevant compressed history (when needed)
Then it updates only bounded fields, with explicit actions for volatile fields (keep, replace, or clear). In simple terms: if your goal changed, the old goal can be replaced or cleared instead of silently hanging around.
💡 Internal state is confidence-scored and token-budgeted. Prompt rendering picks the first variant that fits budget while preserving core fields.
Confidence and prompt budgeting
Internal state slots include confidence and trust level metadata. When TabMate renders Internal State into prompt context, it applies confidence filtering and bounded list limits.
Examples of rendered constraints include:
- Minimum confidence threshold for inclusion.
- Limited counts for constraints, instructions, open threads, assumptions, and profile fields.
- Variant fallback logic to fit token budget without dropping critical context first.
This keeps state useful without overpowering page evidence and current user instructions.
Decay behavior
Low-confidence slots can decay over time.
- Slots above a confidence threshold are retained.
- Lower-confidence slots can lose confidence after a decay window.
- Very low confidence slots can be dropped.
When the current goal changes, related fields such as goal stage and likely steps may be cleared or pruned, which prevents stale short-term intent from lingering.
Why this helps
Without internal state, long workflows drift. With it, TabMate can:
- Keep active goals and constraints visible while you switch tabs
- Carry unfinished threads forward without you repeating everything
- Preserve stable working preferences separately from one-off details
- Recover faster after long or complex conversations
This is also one of the reasons memory candidates get better over time: TabMate has a clearer picture of what is actually important versus what was just temporary.
What control you have
Internal state is mostly automatic, but you still influence it heavily.
Direct control today
- You can open Notebook to view what TabMate is currently tracking.
- You can refresh Notebook to pull the latest state snapshot.
Indirect control (most important)
- Be explicit about goal changes (“we are now doing X”)
- State constraints clearly (deadlines, scope limits, must/avoid rules)
- Repeat durable preferences when they matter
- Correct wrong assumptions immediately
TabMate uses this signal to update or clear internal state fields.
Reset/clear behavior
You cannot edit Internal State line by line.
If you want TabMate to stop carrying old context, start a new conversation or clear old workspace history. As you keep working, TabMate also updates this state automatically based on what you tell it.
So in practice: you guide Internal State by giving clear instructions, correcting wrong assumptions, and managing which conversations/workspaces you keep.
Internal State vs Memories vs Pins
Use this separation model:
- Internal State: system-managed steering context.
- Memories: user-approved durable knowledge.
- Pins: user-controlled temporary always-on context.
They are complementary, not interchangeable. If you need guaranteed persistence and explicit control, save memory. If you need immediate turn-by-turn emphasis, pin. If you need automatic continuity across long threads, rely on Internal State.