13.1 KB · updated 2026-05-19 · md

feature-map.md

docs/feature-map.md

Feature Map

<!-- translations:start -->

한국어 · 中文 · 日本語 · Русский · Español · Français · Deutsch

<!-- translations:end --> This document summarizes the features currently implemented in Tesserae, with status, source files, and where they're documented.

Status legend: ✅ shipped · ⚠ in-progress / partial.

Frontend redesign — April 2026

Document-first, hierarchical wiki replaces the old graph dump. See MD0 for the route-by-route tour and MD1 for the three-layer model.

Wiki layer (L2 markdown)

FeatureStatusSourceDoc anchor
WikiPageStore (idempotent body-hash writes, frontmatter parser)MD0architecture.md § Module map
WikiLayerProjector — one md page per wiki-layer nodeMD0architecture.md § Pipeline
sources/ pageswiki_projector.pyfrontend-redesign.md § Sources
concepts/ pageswiki_projector.pyfrontend-redesign.md § Concepts
entities/ pageswiki_projector.pyfrontend-redesign.md § Entities
papers/ pageswiki_projector.pyfrontend-redesign.md § Papers
repos/ pageswiki_projector.pyfrontend-redesign.md § Repos
topics/ pageswiki_projector.pyfrontend-redesign.md § Topics
questions/ pages (Open questions)wiki_projector.pyfrontend-redesign.md § Questions
syntheses/ pagesMD0frontend-redesign.md § Syntheses

Synthesis kinds (L2 → derived)

SynthesisProjector produces seven deterministic templates and adds Synthesis nodes + synthesizes / summarizes edges back into the graph.

KindStatusSourceNotes
pulse (one global, drives /)synthesis.pyRebuilt every compile.
daily_digestsynthesis.pyOne per data/research/daily/<date>/.
weeklysynthesis.pyOne per data/research/weekly/<iso-week>/.
topicsynthesis.pyOne per ResearchTopic / ApproachFamily cluster ≥ 3 papers.
comparisonsynthesis.pyOne per pair of ApproachFamily competing on the same task.
field_overviewsynthesis.pyOne per ResearchField.
LLM-upgraded summaries (env-flagged)hook onlyHeuristic baseline ships; TESSERAE_SYNTHESIS_LLM=1 hook left as a stub.

Static site routes

RouteStatusSourceNotes
/ (home, hero pulse)MD0 render_homeStat row + curated entry points + recent activity.
/sources/, /sources/<slug>.htmlpages.py::render_sources_index, render_source_detail
/concepts/, /concepts/<slug>.htmlpages.py::render_concepts_index, render_concept_detail
/entities/, /entities/<slug>.htmlpages.py::render_entities_index, render_entity_detail
/papers/, /papers/<slug>.htmlpages.py::render_papers_index, render_paper_detail
/repos/, /repos/<slug>.htmlpages.py::render_repos_index, render_repo_detail
/topics/, /topics/<slug>.htmlpages.py::render_topics_index, render_topic_detail
/syntheses/, /syntheses/<slug>.htmlpages.py::render_syntheses_index, render_synthesis_detail
/questions/, /questions/<slug>.htmlpages.py::render_questions_index, render_question_detail
/timeline/pages.py::render_timelineHeatmap + day list + synthesis rail.
/timeline/<YYYY-MM-DD>.html (per-day detail)n/a yetHeatmap cells link to the day's digest.md source page as an interim. Subagent P is wiring the per-day detail pages through StaticSiteBuilder.
/graph/ (interactive 2D + 3D)pages.py::render_graph_view + js.py3d-force-graph + Three.js, hover tooltips, edge labels, cursor-anchored zoom.
/about.htmlpages.py::render_aboutSchema, build info.

AI-friendly exports

ArtifactStatusSourcePurpose
Per-page <page>.txt siblingMD0 write_siblingsPlain-text view of one page (no nav, no styling).
Per-page <page>.json siblingexports.py::write_siblings{title, kind, body, body_text, links, source_path, frontmatter}.
llms.txtexports.py::render_llms_txtllmstxt.org short index.
llms-full.txtexports.py::render_llms_full_txtEvery page body, capped at 5 MB.
graph.jsonldexports.py::render_graph_jsonldschema.org Dataset, wiki-layer nodes only.
graph.json__init__.py::write_siteFull graph payload (incl. code nodes for tooling).
search-index.jsonMD0Palette + page search; wiki-layer kinds only.
sitemap.xmlexports.py::render_sitemap_xmlEvery emitted route, lastmod from frontmatter.
rss.xmlexports.py::render_rss_xmlLast 30 syntheses.
robots.txtexports.py::render_robots_txtPermissive — crawl + index.
ai-readme.mdexports.py::render_ai_readmeMachine-readable site map.
manifest.json__init__.py::_manifestsha256 + size for every emitted file (idempotence harness).

Visual design + UX

FeatureStatusSourceNotes
Design tokens (light + dark themes, terracotta accent)MD0One CSS bundle in assets/style.css.
Theme toggle (persisted, no flash)MD0data-theme="dark" in localStorage, applied pre-paint.
Search palette (cmd+k / ctrl+k / /)js.pyFuzzy match over search-index.json; recent-page list.
Sticky right TOCpages.py + tokens.pyDesktop only; mobile drawer via <details>.
Activity heatmap with month + weekday labelscomponents.py::heatmap_svg26-week SVG, cells link to the day's digest.md.
Sparkline (per concept/entity)components.py::sparkline_svgWeekly mention counts, last 12 weeks.
Mobile shell (drawer rail, bottom nav, fluid type)tokens.py + pages.pyTouch hit targets ≥ 44 px.
Page transitions (120 ms opacity, prefers-reduced-motion)tokens.py
3D + 2D graph view (hover, edge labels, cursor-anchored zoom)pages.py::render_graph_view + js.py3d-force-graph + Three.js, vendored as a CDN snapshot.
Per-page AI siblings footercomponents.py::ai_siblings_footerInline links to the .txt and .json for the current page.
Harness session history pagesMD0 + MD1Explicit Claude Code/Codex import; /sessions/ index and detail pages with markdown turns, left turn rail, collapsed tool use, and search entries.

Pipeline + CLI

FeatureStatusSourceNotes
project compile calls synthesis + wiki + site in orderMD0Phase 3 of the redesign plan.
project build-site standaloneproject.py + MD1Reads wiki/ + graph.json, writes site/.
project serve local HTTPcli.pyPlain stdlib server.
project deploy → GitHub PagesMD0Worktree push to gh-pages; optional --enable-pages via gh CLI. --build, --dry-run, --branch, --remote, --force.
project sessions discover/import/listMD0 + cli.pyInbound session history for Claude Code/Codex; discovery is explicit and scoped to the project working directory.
project watch rebuild-on-changeMD0Subagent R is finishing the polling watcher — --interval, --debounce, --once, --paths, --quiet arg surface is in place; the rebuild loop body is being landed in this round.

Pre-existing features (carried forward unchanged)

CLI and installation

  • ✅ Installable Python package via pyproject.toml.
  • ✅ Console commands: tesserae, tesserae, tesserae_mcp.
  • scripts/install.sh for curl | bash installation.
  • ✅ Editable installs by default for fast local development.

Extraction

  • ✅ Deterministic research-note extractor with controlled node/edge vocabularies.
  • ✅ Claude CLI/OAuth extractor for higher-quality structured extraction without API keys.
  • ✅ Selective Claude routing by glob and budget limit.
  • ✅ Deterministic development-code extractor for Python projects.
  • ✅ Batch ingest with content hashing and --changed-only support.
  • ✅ Malformed UTF-8 tolerant source reading.

Graph governance

  • ✅ Controlled ResearchNodeType list — now includes SYNTHESIS.
  • ✅ Controlled edge type whitelist — now includes synthesizes, summarizes.
  • ✅ Validation to reject schema drift.
  • ✅ Alias canonicalization.
  • ✅ Review queue for ambiguous near-duplicate nodes.
  • ✅ Review decisions template and merge/keep-separate workflow.
  • ✅ Corpus trend summarization from per-file graphs.

Persistence and reports

  • ✅ Graph JSON export.
  • ✅ SQLite graph store.
  • ✅ Optional Kuzu graph store.
  • ✅ Graph report with counts, evidence coverage, orphan nodes, date buckets, alias-heavy nodes.
  • ✅ Competitive report describing absorbed ideas from MegaMem, Graphiti/Zep, MCP graph servers, agentic RAG.

Project-local workflow

  • tesserae project init
  • tesserae project ingest
  • tesserae project compile
  • tesserae project mcp-config
  • tesserae project build-site
  • tesserae project serve
  • tesserae project deploy (new — GitHub Pages)
  • tesserae project sessions discover/import/list (explicit local agent-history import)
  • tesserae project watch (in-progress)
  • tesserae project export-agent-harness
  • tesserae project export-obsidian
  • tesserae project export-graphiti
  • tesserae project sync-graphiti

Obsidian

  • ✅ Ready-to-open vault export.
  • .obsidian/app.json and graph settings.
  • ✅ Markdown projection.
  • raw/assets/ structure.
  • _meta/dashboard.md with Dataview query.

Agent harnesses

Generated target files for:

  • ✅ Claude Code: CLAUDE.md, .claude/settings.json
  • ✅ Codex: AGENTS.md, mcp.toml
  • ✅ Gemini: GEMINI.md, .gemini/settings.json
  • ✅ Kiro: steering and MCP settings
  • ✅ Cursor: project rules and MCP config
  • ✅ OpenCode: AGENTS.md, opencode.json

Graphiti / temporal facts

  • ✅ Temporal fact projection with provenance, currentness, confidence, and invalidation fields.
  • ✅ Dependency-free Graphiti episode JSONL export.
  • sync-graphiti --dry-run smoke without Graphiti installed.
  • ✅ Optional live sync with graphiti_core and Neo4j.

Cognee

  • ✅ Cognee JSONL bundle (nodes.jsonl, edges.jsonl, manifest.json).
  • ✅ Optional add-only direct import.
  • ✅ Optional Codex CLI/OAuth-backed Cognee cognify adapter.
  • ✅ Deterministic and Ollama embedding adapter paths for no-API-key smoke/quality workflows.

MCP server

  • tesserae_mcp / python3 -m tesserae.mcp_server over stdio JSON-RPC.
  • ✅ Tools: schema, graph_summary, search_nodes, node_context, search_facts, timeline.
  • ✅ Multi-project registry.

Tests

The current suite covers:

  • ✅ ontology guardrails (incl. new Synthesis node + synthesizes / summarizes edges);
  • ✅ deterministic extraction;
  • ✅ Claude CLI wrapper parsing/validation;
  • ✅ selective Claude routing;
  • ✅ canonicalization/review workflow;
  • ✅ batch ingest;
  • ✅ reports;
  • ✅ SQLite/Kuzu persistence;
  • ✅ Cognee bundles/import patches;
  • ✅ Graphiti export/sync dry-run;
  • ✅ project CLI workflow;
  • ✅ agent harness export;
  • ✅ Obsidian export;
  • ✅ frontend generation + link integrity (no nodes/codeclass-*.html);
  • ✅ wiki store idempotence;
  • ✅ synthesis projector golden + idempotence;
  • ✅ site components, pages, exports, relevance;
  • ✅ AI-sibling shape (.txt + .json per page);
  • ✅ end-to-end compile-twice idempotence;
  • ✅ package install and installer contract.