Skip to content

feat(demo): cloud-backed interactive demo TUI (#304, #305)#306

Open
Yangtze-Seventh wants to merge 13 commits into
EverMind-AI:mainfrom
Yangtze-Seventh:feat/demo-cloud-interactive
Open

feat(demo): cloud-backed interactive demo TUI (#304, #305)#306
Yangtze-Seventh wants to merge 13 commits into
EverMind-AI:mainfrom
Yangtze-Seventh:feat/demo-cloud-interactive

Conversation

@Yangtze-Seventh

@Yangtze-Seventh Yangtze-Seventh commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Reworks everos demo into an interactive, cloud-backed first-run experience, and fixes two reported bugs (#304, #305). Rebased/merged onto v1.1.0 main; full suite green (1518 passed).

everos demo (default) — interactive cloud TUI

  • Opens the full-screen yellow TUI immediately with an in-UI input box (no CLI prompts, no template defaults).
  • Each round runs the real memory pipeline (health → add → flush → search) against a hosted EverOS server that holds the LLM + embedding keys server-side — keys never reach the client. Runs off the event loop (anyio worker) so the UI stays responsive.
  • Fresh, isolated (session_id, user_id) per run so concurrent visitors never read each other's memories.
  • After a few rounds, guides the user to their own keys (everos initeveros demo --live). 429 / unreachable are surfaced honestly (no faked output).
  • Endpoint overridable via EVEROS_CLOUD_DEMO_URL / --server-url (default is a placeholder until the hosted server + DNS are deployed).

TUI details

  • Header: local git/OS user name + scope=local-first + a four-stage trace (ingest · extract · index · recall) whose active word highlights in sync with the sphere (3s/stage).
  • Query ⇄ Answer bar with a marker that propagates back and forth.
  • Signal rail: stateful lights driven by the real round steps (white = not ready/idle, yellow = ready/active/hit, black = error); date-stamped source route.
  • EverOS strengths box (distinct panel border): real evermind.ai highlights — token efficiency (1/10 of full context), LoCoMo 93.05%, unlimited context, hybrid retrieval, agentic rerank, multimodal, self-evolving. No fabricated figures.
  • Recall lock: real recall score, a clearly-labelled per-round token-saving estimate (~XX% (est)), and scope (user=<local> project=demo).
  • Conversation log below the yellow line accumulates you/everos turns.
  • Slash commands: typing / surfaces a live command menu; /help, /live, /replay, /clear, /quit (+ /exit); unknown commands give feedback. ctrl+c / ctrl+q are priority bindings so they quit even with the input focused.
  • --plain / --cinematic remain static, no-network previews.

Fixes

Notes for reviewers

  • The hosted demo server + DNS (demo.everos.evermind.ai) are infra to deploy separately (server with keys + DNS + TLS + rate-limit gateway). This PR is the client only and degrades gracefully when unreachable.
  • The per-round token-saving figure is a labelled client-side estimate — there is no published token-saving number (checked docs, the benchmark repos, and evermind.ai). A true server-measured value would need the search response to return token usage (separate change).
  • Local verification before DNS exists: EVEROS_CLOUD_DEMO_URL=http://127.0.0.1:8000 everos demo against a local everos server start.

Testing

  • make lint — clean (ruff + import-linter contracts + datetime/openapi checks).
  • make test — 1518 passed.

🤖 Generated with Claude Code

Yangtze-Seventh and others added 5 commits June 24, 2026 20:29
Add .agents/ and AGENTS.md (local agent skill/config artifacts) to
.gitignore so they don't show up as untracked noise.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nd-AI#304)

jieba 0.42.1 (its last release) ships regex string literals with invalid
escape sequences. Python >= 3.12 flags these as SyntaxWarning at
first-import compile time, leaking noise on a user's first run. Wrap the
single jieba import site in warnings.catch_warnings() to suppress them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make `everos demo` an interactive TUI with an in-UI input box, where each
round runs the real memory pipeline (add -> flush -> search) against a
hosted EverOS server that holds the LLM + embedding keys server-side. The
keys never reach the client; each run uses a fresh, isolated
(session_id, user_id) pair.

- Extract a typer-free hosted-demo HTTP client into tui/demo/cloud.py.
- Drive the rounds off the event loop via an anyio worker so the UI stays
  responsive; surface unreachable/quota errors honestly instead of faking.
- After a few rounds, guide the user to configure their own key (--live).
- Fix EverMind-AI#305: panels (incl. sphere captions) follow the user's input rather
  than the hard-coded Yosemite default; remove the offline answer stub.
- Keep --plain / --cinematic as static, no-network previews.
- Endpoint overridable via EVEROS_CLOUD_DEMO_URL / --server-url.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…able quit

Top-half TUI polish for the interactive demo:

- Header shows the local git/OS user name (local-first) instead of the
  per-round session id; scope stays local-first.
- Trace becomes the four pipeline stages (ingest/extract/index/recall);
  the sphere posts a StageChanged message so the active word highlights in
  sync with the animation. Stage dwell time is an explicit 3s constant.
- Replace the query/answer caption with a Query <-> Answer bar whose marker
  propagates back and forth.
- Make quitting reliable: ctrl+c / ctrl+q are priority bindings (work even
  while the input box has focus), and typing 'quit'/'exit' in the box exits.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…conversation log

Make the demo's right column and bottom reflect real pipeline state instead
of hardcoded values:

- Signal rail status lights are now stateful, driven by the actual round
  steps (health -> add -> flush -> search). Colors: white = not ready/idle,
  yellow = ready/active/hit, black = error. Split cloud.recall_round into
  check_health/add_memory/flush_memory/search_recall so the UI lights up
  between steps.
- New 'EverOS strengths' box above the signal rail showing real product
  capabilities (hybrid retrieval, agentic rerank, multilingual, multimodal,
  md-first, local-first) -- no fabricated metrics.
- Source route / source lock filenames are date-stamped from the demo-usage
  day (episode-YYYY-MM-DD.md) instead of hardcoded.
- Recall lock shows the real recall score (similarity to the stored memory)
  and scope (real user id, project=demo); dropped the sample answer line.
- Bottom 'conversation' log (below the yellow line) accumulates you/everos
  turns across rounds, replacing the static payoff strip.
- DemoStory gains a score field; search misses surface as a 'miss' light.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Yangtze-Seventh and others added 8 commits June 25, 2026 22:41
- Shrink the conversation log + input box so the memory sphere stays the
  visual focus (conversation 7->4, input border removed to 1 row).
- Give the capabilities box a distinct 'panel' border with a titled bar
  instead of the plain thick border.
- Drop the multilingual capability row.
- Recall lock shows the local user (user_label) and project=demo, never the
  alice default or session id; remove the 'similarity' caption line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make in-box commands discoverable and give feedback:
- /help lists the available commands; unknown /commands show a hint instead
  of being treated as a memory.
- /replay re-runs the sphere animation; /clear wipes the conversation log.
- /quit and /exit (with or without slash) exit to the terminal.
- Input placeholder now advertises /help and /quit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add /live: shows the 'use your own key' guidance (everos init -> everos
  demo --live) on demand, not just after the round cap.
- Typing '/' now surfaces the available commands live in the prompt (a
  slash-command menu) and restores the phase prompt on real text.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
evermind.ai publishes no token-saving percentage, so the strengths box now
leads with the site's real SOTA Performance numbers (LoCoMo 93.05%,
LongMemEval 83.00%, HaluMem 93.04%) plus core retrieval strengths -- no
fabricated figures.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a 'saved ~XX% tokens (est)' line under the recall score. It is a clearly
labelled client-side estimate (carrying the whole conversation as context vs.
EverOS returning only the compact recalled answer), since no measured
token-saving figure is published and the server does not return token usage.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per the evermind.ai homepage:
- Lead with the real token-efficiency claim (1/10 of full context).
- Keep a single headline benchmark (LoCoMo 93.05%) instead of three.
- Fill the box with real capability highlights (unlimited context, hybrid
  retrieval, agentic rerank, multimodal, self-evolving).
- Drop local-first here (already shown in the field-header scope).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update the Play With The Demo / 体验 Demo section to match the interactive
TUI: typing / surfaces the commands (/replay, /live, /quit) and ctrl+c exits,
replacing the stale 'press q to quit' line. Image left in place for later
replacement. English and Chinese kept in sync.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant