Skip to main content
Converted from aiConnected OS - 8. Cognition console UI design.md.

Cognition console UI design

User: Oxford Pierpont
Created: 12/7/2025 12:39:13
Updated: 12/10/2025 6:50:26
Exported: 2/11/2026 7:09:19
Link: https://chatgpt.com/g/g-p-69395d9991108191841f1dac1fd8d1a1-oxpi-aiconnected-ui-features/c/6935bbc0-3a00-8327-b73f-fe6e7bd904a2

Prompt:

I’m preparing to build the Cognigraph artificial cognition architecture, and in order to do that I need to also build a front-end interactive interface that will be used to just, you know, operate and use the AI. So since I have to build one anyway, I’m going to take this opportunity to design a better version of memory, just chat history, chat memory, the way that these chat interfaces the way that a concept like projects works, and the way that memory or interconnected chats work in general. And so that’s what we’re here to plan out today.

Response:

Good, this is exactly the right time to nail this, before you start wiring in Cognigraph under the hood. Let’s treat today as “define the mental model + UI contract” for how people will actually live inside this thing.

1. What this interface actually is

Instead of “a chat app with better memory,” I’m going to assume you’re building:
A Cognition Console
where:
  • you talk to one or more Personas
  • inside clearly defined Projects
  • with an explicit, inspectable Memory System (Cognigraph)
  • and all of that is visible and controllable from the UI.
So the front-end is basically a control panel over Cognigraph’s memory layers, plus a workbench for doing real projects with the AI.

2. Core objects (the data model your UI should expose)

These are the “things” the user should see and manipulate. I’ll define them as conceptual types, not final code.

2.1 Persona

A Persona is not “just a chat.” It’s a semi-stable mind:
  • id
  • name – “Neuro Architect”, “Legal Analyst”, “Story Engine”, etc.
  • role / purpose – What this Persona is supposed to be used for.
  • style – Tone, level of detail, assumptions.
  • linked_memory_scope – Which slice of Cognigraph it’s mainly allowed to use (global, domain, project-level).
  • safety/constraints profile – Guardrails, forbidden topics, etc.
UI impact:
  • Persona picker at the top.
  • Persona detail panel showing its purpose, strengths, and what memories it “lives inside.”

2.2 Project

Projects are the backbone. Not loose chats.
  • id
  • name
  • description / goal statement
  • status – active / paused / archived
  • primary_persona_id (optional)
  • related_persona_ids (secondary minds you use for this project)
  • pinned_memory_ids – the most relevant long-term memories for this project
  • artifact_ids – docs, specs, uploads
  • created_at / updated_at
UI impact:
  • Left sidebar: list of projects with filters.
  • Project dashboard: goals, tasks, last sessions, key memories.

2.3 Session (what replaces “chats”)

A Session is a conversation episode inside a Project. This is where the messages live.
  • id
  • project_id
  • persona_id
  • title – “Memory architecture brainstorm #1”
  • context_config – which memories/topics are attached to this session
  • created_at / last_active_at
UI impact:
  • Within a Project: “Sessions” tab with a timeline.
  • Each Session opens into a chat-like view, but with visible context/memory.

2.4 Message

This is the raw dialogue, but it’s not the primary memory; it’s the evidence from which memory is distilled.
  • id
  • session_id
  • author – user | persona | system
  • content
  • created_at
  • tags – auto-suggested topics
  • linked_memory_ids – which Memory nodes this message contributed to
  • “promoted” flag – if some part was selected & promoted into long-term memory
UI impact:
  • Normal chat stream.
  • Hover over a message → see which memories came from it, and promote/demote.

2.5 MemoryNode (Cognigraph node)

This is the central thing. A structured memory entry, following your Category → Concept → Topic hierarchy and Open/Closed layers.
  • id
  • scope – global | persona | project | session
  • layer – Open Thinking (ephemeral notes) | Closed Thinking (committed knowledge)
  • category – big domain (“Business”, “Health”, “Fiction: Rift”, “aiConnected architecture”)
  • concept – sub-area (“Cognigraph memory model”, “BrowserEngine PRD”)
  • topic – specific thread (“Open vs Closed Thinking Layers UI”, “Project vs Session distinction”)
  • type – fact | preference | rule | plan | story | pattern | question | decision
  • content – the distilled memory text
  • source_message_ids – which messages created this
  • origin_persona_id (optional)
  • importance_score – how central this is
  • stability_score – how “settled” vs “tentative”
  • last_accessed_at
  • created_at
UI impact:
  • A dedicated Memory Explorer.
  • “Memory drawer” on the right side of a Session.
  • Ability to expand Category → Concept → Topic, click a node, read/edit it.

2.6 Artifact

Anything that isn’t a message but is part of the work.
  • id
  • project_id
  • type – file | URL | note | spec | dataset
  • title
  • description
  • link / file_metadata
  • generated_by_persona_id (if AI wrote it)
  • created_at
UI impact:
  • Project “Assets” tab showing documents.
  • Side panel to quickly insert artifacts into context.

2.7 Task (optional, but powerful)

Even if you don’t build a full task system, the UI should support:
  • id
  • project_id
  • title
  • status – idea | todo | in progress | done
  • linked_memory_ids / artifact_ids
  • created_at / due_date
UI impact:
  • Lightweight checklist inside each Project.
  • Tasks feed the memory graph: tasks completed → decisions/lessons get stored as MemoryNodes.

3. Rethinking “chat history” & “projects”

3.1 Old world: Chat ≈ Memory

  • Each chat is a silo.
  • “Memory” is a vague hidden blob.
  • Projects are bolted on as a folder of chats.

3.2 New world: Memory ≈ Knowledge graph; chat is a log

  • Projects are first-class.
  • Sessions are episodic conversations inside projects.
  • Memory is a graph across everything, with clear scopes.
  • The UI lets you see:
    • what was remembered
    • where it’s stored (global / persona / project)
    • how it’s used in the current Session.
From the user’s point of view:
“I’m not talking to a blank slate each time.
I’m talking to a Persona that lives in a specific Project,
and I can see the brain it’s using.”

4. Core screens & layout

Think in terms of 4 primary views:
  1. Home / Persona Hub
  2. Project Dashboard
  3. Session View (chat + memory drawer)
  4. Memory Explorer

4.1 Global layout (for desktop)

  • Left sidebar
    • Top: Persona selector (avatar + name + status)
    • Mid: “Projects”, “Global Memory”, “Settings”
    • Bottom: Daily “New Memory Report” link
  • Main area
    • Contextual: Projects list, Session, Memory Explorer, etc.
  • Right drawer (toggle)
    • “Context & Memory” for current Session:
      • Active memory slice
      • Pinned nodes
      • Recently used nodes
      • Quick edit/add

5. Project Dashboard UX

When you click a Project:
  • Name
  • Main Persona
  • Key goal statement (“Build Cognigraph front-end for artificial cognition”)
  • Status badge

Tabs

  1. Overview
    • Current goal / summary.
    • Last 3 Sessions.
    • Top 5 “key memories” (pinned MemoryNodes).
    • Active tasks.
  2. Sessions
    • Timeline list of Sessions.
    • Each with title, date, Persona, and short summary.
    • Button: “New Session” (with Persona picker).
  3. Memory
    • Scoped Memory Explorer:
      • Only project-scoped nodes by default.
      • Filter by type (fact, plan, decision, etc.)
      • List + tree view.
  4. Artifacts
    • Uploads, specs, notes, links.
    • “Use in Session” button to attach an Artifact as context.
  5. Settings
    • Which Personas are allowed.
    • Default memory slice rules (e.g., “let this project use global ‘Engineering’ memories but not personal life”).

6. Session View: the “chat” you’ll live in

When you open a Session:

Left: Breadcrumbs

  • Persona avatar + name
  • Project name
  • Session title

Center: Conversation Stream

Standard chat, but each message can show:
  • Tiny tags under the message:
    • #Cognigraph, #MemoryModel, #UI
  • Indicator if memory was created/updated:
    • e.g. small icon “3 memories updated”
On hover / click:
  • “View linked memories”
  • “Promote this to long-term memory” (if the AI suggested a candidate)
  • “Remove from memory”

Right: Context & Memory Drawer

Sections:
  1. Active Context
    • List of memory nodes currently attached to this Session.
    • Chips or cards:
      • Title (topic)
      • Type (rule, plan, preference)
      • Scope icon (global / persona / project)
    • You can:
      • Pin/unpin
      • Temporarily disable a node for this Session.
  2. Suggestions
    • Memory nodes the engine thinks would be useful right now.
    • “Add to context” button.
  3. Scratchpad (Open Thinking Layer)
    • Ephemeral notes for this Session only.
    • The AI may write transient reasoning here.
    • You can click “Commit to closed memory” to solidify something.

7. Memory Explorer: “the brain” UI

Separate full-screen view, but also accessible inside a Project.

Controls

  • Filters:
    • Persona
    • Project
    • Scope (global / persona / project)
    • Type (fact, rule, preference, etc.)
    • Time window (created/last accessed)
  • Views:
    • Tree view – Category → Concept → Topic → nodes
    • List view – sortable table
    • Later: Graph view – visual knowledge graph

Memory Node card

When you click a node:
  • Content
  • Type, scope, layer, scores
  • Source Sessions/Messages
  • Links:
    • “Jump to source message”
    • “Edit & version history”
    • “Attach to current Session”
    • “Change scope” (e.g., promote from project → global)
    • “Mark outdated” (lowers stability & hides from default context)

Daily “New Memory Report”

This is a key surface for Cognigraph:
  • Grouped by Project & Persona.
  • “New long-term memories created today”
  • “Updated memories”
  • “Potential conflicts or contradictions”
From the report, you can:
  • Approve / adjust / delete nodes.
  • Re-scope them (“this belongs only in aiConnected, not global”).
This is how the user actually governs the Closed Thinking Layer.

8. How messages become memories (UI side)

You’ll want a consistent flow:
  1. User and Persona talk in a Session.
  2. Behind the scenes, Cognigraph:
    • extracts candidate memories
    • links them to existing nodes or creates new ones.
  3. UI surfaces this in two ways:
    • Inline: a subtle indicator on messages (“2 new memories extracted”).
    • End-of-session summary: “Here’s what I learned / updated.”
  4. User has explicit control:
    • Accept / reject / edit these new nodes.
    • Or defer and handle via the Daily New Memory Report.
This makes memory feel deliberate, not spooky.

9. “Projects” as true context bundles

In the current “Project” implementations you’ve seen elsewhere, it’s often just:
Project = folder of chats + some files.
You can do better: For each Project, the system should maintain:
  • Context Profile:
    • Default memory scopes
    • Relevant categories (e.g., “Engineering: Cognition”, “Business: aiConnected”)
    • Style preferences (short vs long, more code vs more explanation)
  • Personas:
    • Which Persona is the “lead” mind for this domain.
    • Which secondary Personas assist.
  • Knowledge baseline:
    • Pinned MemoryNodes representing key assumptions/decisions.
    • The Project reads like a living spec.
Then when you start a new Session, the UI can show:
“Starting Session with:
  • Persona: Neuro Architect
  • Project: Cognigraph Front-End
  • Context: 17 memory nodes (rules, decisions, architecture)
  • Artifacts: PRD v1, wireframe sketches, previous conversation summaries”
And you have a “Configure context” button to fine-tune before you send the first message.

10. How this ties into Cognigraph’s internal layers

You already defined:
  • Open Thinking Layer (OTL) – transient reasoning.
  • Closed Thinking Layer (CTL) – committed, structured memory.
So in the front-end:
  • The Scratchpad and per-Session notes map to OTL.
  • The Memory Explorer nodes (with category/concept/topic) map to CTL.
Key UI rules:
  1. The user can always see which layer they are editing.
  2. Promotion → “Convert this scratchpad element to a permanent memory.”
  3. Demotion → “Move this memory back to scratch / mark as tentative.”
You can visually distinguish:
  • OTL: lighter, “pencil” icon, ephemeral.
  • CTL: solid, “book” icon, durable.

11. Minimal MVP vs “fancy later”

To avoid trying to ship a 40-year system in v1, your MVP of the interface could be:

MVP must-haves

  1. Personas
    • Persona picker + simple Persona settings.
  2. Projects
    • Create/edit Project
    • Attach Personas to Projects
  3. Sessions
    • Conversation view
    • Basic Session list under a Project
  4. Memory (CTL)
    • Auto-extracted memories displayed as a list under each Project
    • Simple filters (by type, by time)
    • Ability to edit / delete / pin a memory
  5. Context Drawer
    • Shows memory nodes currently used in the Session
    • Let user toggle them on/off
  6. Daily Memory Report
    • Simple list of new/updated nodes, grouped by Project

Later enhancements

  • Full Memory Explorer tree view + graph view
  • Tasks integrated with memory
  • Cross-project similarity suggestions (“this looks similar to X from aiConnected”)
  • Timeline visualizations (“dashboard of what the AI learned over the last week”)
  • Story mode / narrative of a Project’s history

12. What we can do next

For the next step, I’d suggest:
  1. Lock the object model
    • I can turn the conceptual objects above into actual TypeScript interfaces or Supabase table schemas.
  2. Define core screens more concretely
    • Screen-by-screen layout: header, sidebars, components, and what each panel shows.
  3. Specify the API contract with Cognigraph
    • For example: what the front-end sends when it starts a Session:
      • persona_id, project_id, session_id, active_memory_ids, scratchpad, etc.
    • What it receives when messages are processed:
      • reply, created_memory_nodes[], updated_memory_nodes[], context_suggestions[].
If you want, I’ll start by drafting the data schema + component tree for the MVP version of this Cognition Console so you can immediately map it into Next.js / Supabase.
Powered by ChatGPT Exporter
Last modified on April 17, 2026