Disciplines · Audits

Eve chat-surface parity audit: ChatGPT and Claude.ai as dated references

Two public assistant interfaces were used as the dated comparison set, as observed on 2026-09-11 from their published product pages and in-product behaviour: OpenAI ChatGPT (web, desktop, mobile) and Anthropic Claude.ai (web,

6sections12 minread

On this page

Assessment date: 2026-09-11. Source baseline: 1d545a6bb9 (oshun-mobile-parity-2026-07-04, merged with origin/main).

Verdict: Eve cannot generate images, video, music, or 3D models from the conversation, and none of her three chat surfaces can show such media inline or as an artifact. The generation toolchains exist elsewhere in the monorepo (Isis image/video/music/3D, Bellona text-to-3D, the opt-in image/TTS media tool in the Hermes-parity library) but none is mounted in Eve's governed BFF toolset, the turn request accepts text only, the shared reply renderer has no image, audio, video, math, or diagram node, and the model registry records the media leg as not admitted (task 15.1). Beyond media, the surfaces are behind ChatGPT and Claude.ai on file attachments, artifact/canvas workspaces, code presentation, turn editing and branching, conversation management, mode/tool selection, web search, data analysis, and long-running task delivery. Every gap below is bound to a task in EVE_SOTA_GAP_CLOSURE_TODOS_2026-09-01.md.

This is an assessment, not an implementation or release-admission change. It records what the source shows on the stated baseline; it does not claim any new capability, and it does not lower the bar for the tasks it creates.

Reference products and what "parity" means here#

Two public assistant interfaces were used as the dated comparison set, as observed on 2026-09-11 from their published product pages and in-product behaviour: OpenAI ChatGPT (web, desktop, mobile) and Anthropic Claude.ai (web, desktop, mobile). Both are moving targets; this record names the feature classes they share, not a screenshot of either. Parity is a measured usefulness outcome for the operator, not a badge: a feature counts only when a real journey through Eve's own governance (intent ledger, confirm cards, privacy boundary, capability declarations) produces the same operator outcome. Copying chrome without the governed path would violate the charter.

Feature classes shared by both references and treated as the baseline:

  • Composer: text with multi-line input, stop generation, file and image attachment (upload, paste, drag-drop, mobile camera/library), dictation, duplex voice mode, a picker for tools/modes (search, research, create image, canvas, extended thinking), model or effort selection, prompt starters, slash/mention shortcuts for saved instructions and tools.
  • Transcript: full Markdown with syntax-highlighted code blocks that carry a language label and copy/download controls, math, diagrams, inline images and media players, collapsible reasoning/tool activity, cited sources with links, per-message copy, feedback, read-aloud, regenerate, edit-and-resend with version navigation, share and export.
  • Artifact workspace (Claude Artifacts, ChatGPT Canvas): a side-by-side panel for code, documents, HTML/SVG/React previews, data tables and generated media, with versions, in-place edits by the assistant, download, save, and publish decisions.
  • Conversations: auto-titled history with search, rename, pin, archive, delete, folders/projects with files and instructions, temporary chats, cross-device resume.
  • Personalisation: visible memory with edit/delete, custom instructions or personality, theme and accessibility settings, connectors (drive, mail, code hosts, MCP servers), scheduled tasks, data controls.
  • Agentic work in chat: web search with source cards, deep research with a cited report, data analysis with sandboxed code execution and file/chart outputs, computer use with a live view, long-running task progress and completion notifications.
  • Media generation: image creation with edits/variations (both), video creation (ChatGPT via Sora). Neither reference ships native music or 3D generation; Oshun has toolchains for both, so those rows are beyond-parity charter requirements rather than parity gaps.

Surfaces audited#

Surface Source Transport Renderer
Admin copilot drawer (builder side) AdminAssistantChat.tsx, AdminAssistantPanel.tsx incremental SSE with buffered fallback shared markdown.tsx
Member web panel and dock (Lilith) AssistantPanel.tsx, AssistantDock.tsx, ReplyDetails.tsx incremental SSE shared markdown.tsx
Mobile sheet (React Native) MobileAssistantSheet.tsx, MobileAssistantProvider.tsx buffered JSON (task 8.4 open) plain text; the shared renderer is React DOM and is not imported here

Server contract: routes/assistant.ts exposes sessions (create, list, delete), turns (text, inputMode, locale, contextHandoff, pageContext, clientCapabilities only), cancel, feedback, actions, audio (speech-to-text), tts, client-tool results, tour submissions, metrics, and telemetry. There is no attachment, artifact, generation-job, or share endpoint.

Crosswalk#

Status vocabulary: ships (source and coverage found), partial (a narrower or recovery-only form exists), absent (no source path). Evidence is the file or contract that decides the status. "Task" names the ledger owner that must close the row.

Composer and input#

Feature Admin Web Mobile Evidence Task
Text prompt, stop generation ships ships ships Stop assistant reply controls; turns/:turnId/cancel route; cancellation release gate spec 8.5 (post-cancel side-effect gate)
File/document attachment (PDF, docs, sheets) absent absent absent turn body accepts text plus context fields only; no upload route; no type="file" input on any surface 8.13, 14.8, 17.24
Image attach, paste, drag-drop, camera absent absent absent no onPaste/onDrop/dataTransfer handlers; the only image path is the server-initiated single page screenshot (inspect_page), ephemeral and never persisted 8.13, 17.24
Dictation (speech-to-text) ships (browser dictation) ships (MediaRecorder/audio) absent (direct text submission) task 8.1 baseline note; README.voice.md 8.7
Duplex voice mode, barge-in, VAD absent absent absent 8.1 baseline: "not duplex voice-first" 8.7
Tool/mode picker (search, research, create media, canvas, think longer) absent absent absent no picker component; tool selection is server-side routing only 8.18
Model or effort selection absent absent absent no select/model control; registry-bound routes only 8.18, 15.7
Prompt starters absent ships partial (quick actions tray) web suggestion chips; admin has command palette but no starters 8.18
Slash commands, mentions of skills/tours/targets absent absent absent no composer grammar; tours start via tool call 8.18
Keyboard shortcut help ships partial n/a KeyboardShortcutsHelp.tsx; web has key handlers, no help sheet 8.8

Transcript and rendering#

Feature Admin Web Mobile Evidence Task
Markdown: paragraphs, nested lists, GFM tables, links, RTL ships ships absent (plain text) markdown.tsx closed subset; no import in the mobile sheet 8.14
Code blocks with language label, syntax highlight, copy/download absent absent absent fences render as <pre>; no highlighter, no per-block control 8.14
Math (LaTeX) absent absent absent no math node in the renderer 8.14
Diagrams (Mermaid or equivalent) absent absent absent no diagram node 8.14
Inline images in replies absent partial (card imageUrl carried, never rendered) absent AssistantResponseCard.imageUrl in types.ts; the only <img> on web is the page-screenshot preview 8.14, 17.23
Audio/video players, 3D viewer in transcript absent absent absent TTS plays through an audio object; no media node 8.14, 17.23
Tool activity and evidence panel ships (Activity list) ships (ReplyDetails, evidence, tool filter) partial admin turnActivity; web reply inspection 8.16
Collapsible reasoning stream absent absent absent small-model turn route; no reasoning frames in turn-stream-frames.ts 8.16 (decision)
Citations and sources partial (docs only) ships (docs, grounded cards) partial citation-claim checks; docs search is the only retrieval source 17.26 (web sources)
Copy reply absent ships absent Copy this reply only on web 8.16
Per-turn feedback with reasons absent ships absent /turns/:turnId/feedback route exists; only web renders feedback controls 8.16
Read aloud per reply ships (conditional) ships absent /tts route; voice config 8.16
Regenerate (same or alternate route) absent absent absent no regenerate control; web "Edit message" is a post-failure recovery affordance that resends the same text 8.16
Edit-and-resend with branch/version navigation partial (recovery only) partial (recovery only) partial (Edit message label) all three surfaces expose recovery editing; no branch model in AssistantTurn or version navigation 8.16
Share link, export (Markdown/JSON) absent partial (save grounded reply as Nisaba notebook) absent no share/export route 8.16, 14.8
Typed generative UI (confirm/status/evidence intents) ships ships absent task 8.6 closed; generative-ui.ts allowlist 8.15 extends
Streaming with live region ships ships absent (buffered) 8.1 baseline 8.4

Artifact workspace#

Feature Admin Web Mobile Evidence Task
Side-by-side artifact panel (code, doc, HTML/SVG preview, data table, media) absent absent absent no artifact type in types.ts or stream frames; contextHandoff.artifact is an input label only 8.15
Versions, diff, assistant edit-in-place absent absent absent no artifact store bound to sessions 8.15
Download, save to owning domain, publish decision absent partial (Nisaba notebook save) absent one-off save path 8.15, 14.8

Conversation management#

Feature Admin Web Mobile Evidence Task
History list and switch absent ships (Previous sessions) partial (Assistant turn history) GET /v1/assistant/sessions; admin creates sessions but lists none 8.17
Auto titles partial partial partial sessions carry metadata but no generated title surfaced 8.17
Rename, pin, archive, delete absent absent absent DELETE /v1/assistant/sessions/:sessionId exists; no UI calls it 8.17
Search across conversations absent absent absent no search route or control 8.17
Projects/folders with files and instructions absent absent absent no grouping model 8.17
Temporary chat partial partial partial memoryScope: 'off' | 'session' exists; no explicit temporary-chat affordance or non-persistence guarantee 8.17, 9.2
Cross-device resume partial partial partial durable session store with integration spec; no cross-client hand-off UI 8.17

Personalisation and settings#

Feature Admin Web Mobile Evidence Task
Memory view, edit, delete partial partial partial remember_operator_note/forget_operator_memory tools; memory state components; task 9.2 open 9.2
Custom instructions / personality partial partial partial persona switchers disabled with routing copy (8.1); invocation-seeded persona only 8.18
Theme, reduced motion partial ships partial web honours prefers-reduced-motion; admin shell theme 8.8
Connectors and MCP servers absent absent absent Phase 16 has no UI 16.x (no new task; noted for 18.3)
Scheduled tasks / watchers UI absent absent absent watcher semantics specified (7.3); UI gated by 7.4 7.4, 8.19
Data controls (export, delete) partial partial partial Phase 14 open 14.4, 14.8

Agentic work in chat#

Feature Admin Web Mobile Evidence Task
Web search / browse with source cards absent absent absent Eve BFF tools: search_docs, read_page, inspect_page, domain tools only; the web-search/browser tools in @oshun/assistant are unfused (7.1) 17.26
Deep research with cited report absent absent absent no research mode 17.26
Data analysis / sandboxed code execution with file and chart outputs absent absent absent code-exec.tool.ts exists in the unfused library; no sandbox admission 17.25
Computer use with live view absent absent absent Phase 6 6.6–6.8
Long-running task progress and completion notifications absent absent absent no background job cards; notification center is admin-only and not chat-bound 8.19

Media generation#

Feature Admin Web Mobile Reference Existing Oshun toolchain (not reachable from Eve) Task
Image generation, edits, variations absent absent absent ChatGPT, Claude (via connectors) @isis/ai-providers Flux/SD3.x adapters; opt-in media.tool.ts image generator + filesystem sink 15.7, 17.22, 17.23
Video generation absent absent absent ChatGPT (Sora) @isis/seedance-provider, @isis/ai-video, @yemaya/video-generation 15.7, 17.22, 17.23
Music / audio / speech generation absent (TTS ships for replies) absent absent neither reference natively @isis/music-generation (suno/udio/musicgen/stable-audio), @isis/audio-generation, existing TTS route 15.7, 17.22, 17.23
3D model generation and viewer absent absent absent neither reference natively @isis/3d-generation (Rodin), @bellona/text-to-3d (Meshy/Tripo), @isis/3d-browser 15.7, 17.22, 17.23
Provenance, disclosure, licence on generated media absent absent absent both label generated images task 14.7 governs; nothing is wired because nothing generates 14.7, 17.22

Why the media rows are absent, precisely#

  1. The governed toolsets Eve actually mounts are agent-tools.ts, admin-agent-tools.ts, and the workbench-kit read/write/command tools. None calls a generator.
  2. The only Eve-adjacent generation tool, media.tool.ts, lives in the Hermes-parity library whose fusion scope task 7.1 recorded as unfused; its sole BFF consumer is the V10 Ori presence runtime, not the assistant route.
  3. The model registry (task 15.1 note) lists the media leg as not admitted, so even a mounted tool would have no priced, fail-loud route.
  4. The turn contract carries no attachment, and the stream frames carry no artifact or media frame, so a generated file would have no way to reach a surface or be rendered when it arrived.
  5. Privacy (14.7/14.8), security (Phase 4 gate), and evaluation (Phase 12) admission for generated and uploaded media has not been done.

Bound tasks#

The 2026-09-11 chat-surface parity expansion adds tasks 8.12–8.20, 12.11, 14.8, 15.7, and 17.22–17.27 to the ledger. Tasks 8.9 and 18.1 now depend on the expansion so that Phase 8/G9 and final closure cannot pass with these rows open. Every new task starts unchecked; this document proves nothing about any of them.

Task 8.12 ratification (2026-09-16)#

The dated crosswalk is now adopted as the source-owned eve.chat-surface-parity.v1 register and validated by eve-chat-surface-parity.schema.json. It contains all 53 feature rows, all 159 per-surface statuses, exact owner task IDs, deciding evidence, and source anchors for every one of the 54 ships or partial claims. The anchors resolve against the immutable audited revision 1d545a6bb947910c5f303c70da04bd3d33981bf0, so subsequent product work cannot silently rewrite what this dated assessment observed.

Ratification corrected two prose classifications before adoption: mobile per-turn feedback is absent because only the web surface renders feedback controls, while the admin drawer's failure-recovery edit control makes edit-and-resend partial (recovery only), matching web and mobile. Placeholder owners were also made executable: connectors/MCP binds to Tasks 16.5 and 8.18, and computer use expands to Tasks 6.6, 6.7, and 6.8.

The verifier fails closed when a row is omitted, a status lacks deciding evidence, an absent or partial row loses its exact ledger owner, a positive claim lacks a source anchor, an anchor is absent from the dated source, source bytes change, or outcome parity is weakened to copied chrome. This ratification changes no user-facing source and closes only Task 8.12; every downstream feature owner and Phase 8 remain open.