LINGLU · LIVE TOPIC TREE v0.4

LingLu · Live Topic Tree Minutes

A live topic tree grows during recording; HTML reports export when you stop. On-device first (Ollama recommended), 9 LLM providers, 5 report themes.

Three states, one data model

LingLu splits a recording session into three coordinated states sharing a single LingLuDoc:

🌿

Live · while recording

The "LingLu" output panel grows a live topic tree in the dock area. Closed topics never get rewritten; the current open topic is highlighted with a vermilion left border; the "now speaking" zone shows the active partial.

📜

Wrap-up · after stop

Auto-consolidates summary / key decisions / action items. The scenario field decides whether business-style fields are emitted (personal / gathering scenarios never force-extract action items).

📤

Delivery · pick a theme

Toolbar theme dropdown → 👁 Preview (iframe sandbox) or ⬇ Export (lands in session/<id>/reports/). Five themes: terminal-grade / keynote-stage / editorial / minimal-print / sumi-ink.

9 supported LLM providers

Boundless Flow is an on-device product, so Ollama (local) is the default and recommended path — no API key, zero cost per call, data never leaves your machine. The other 8 are cloud options and all support custom third-party OpenAI-compatible proxy URLs.

🏠 Ollama · local (recommended)

Default base URL http://localhost:11434; no API key required. Also accepts remote Ollama like http://192.168.x.x:11434.

☁️ OpenAI-compatible

DeepSeek / Kimi (Moonshot) / GLM (Zhipu) / Volcengine (Doubao) / MiniMax / OpenAI itself — 6 providers share the same OpenAI-compatible codec.

☁️ Anthropic Claude

Messages API (/v1/messages) with its own codec; x-api-key + anthropic-version: 2023-06-01; max_tokens required.

☁️ Google Gemini

v1beta generateContent / streamGenerateContent?alt=sse; x-goog-api-key auth; systemInstruction + contents body shape.

Eight scenarios · auto detection

LingLu swaps prompt strategy by scenario, producing visibly different output styles:

Code Scenario Default theme Tone
S0 generic · fallback minimal-print Neutral note-taking; never assumes a scenario. auto falls back to this when confidence < 0.5
S1 personal · solo recording ★ sumi-ink Classical Chinese literati voice ("thinking of…", "feeling…"); classical chapter names (录略 / 念想 / 断语)
S2 private_chat · 1-on-1 minimal-print Two-sided positions + commitment phrases ("I will…", "I promise…")
S3 gathering · informal gathering ★ sumi-ink Chinese literati gathering tone; small talk OK; no action items
S4 closed_meeting · closed-door terminal-grade Verb-noun topics; prioritize decision verbs (decide / approve / agree)
S5 public_meeting · public keynote-stage Agenda-style topics; emphasize public commitments
S6 business · KPI/sales terminal-grade KPIs / projects / clients first; preserve numbers / amounts / dates
S7 academic · research talk editorial Claims / evidence / counter-arguments / citations

★ personal & gathering use the sumi-ink theme (Song-dynasty palette: paper-white + vermilion + Songti/Kaiti typefaces). Content stays half-classical half-vernacular; business jargon is forbidden.

💡
auto detection rule: with scenario = auto, after ~90s of transcript, the system runs one cheap LLM call for classification. If confidence < 0.5, the result is forcibly downgraded to generic — this keeps casual / private recordings from being misclassified into "business commitments".

Five report themes

🖥 terminal-grade

Serious execution; deep #0b0d10 ground + warm gold accent. KPI cards + ASCII topic tree + OPEN/CLOSED status. Default for S4 closed / S6 business.

🎤 keynote-stage

Stage style; deep-blue gradient + gold + teal; centered hero + three-pillar conclusions. Default for S5 public.

📰 editorial

Magazine feel; paper white + vermilion; serif headlines + two-column abstract + roman-numeral topics + large chapter numbers. Default for S7 academic.

📄 minimal-print

Quiet, A4-friendly; pure white + gray text + no accent color; @page print styles. Default for S0 generic / S2 private_chat.

🖋 sumi-ink · Chinese aesthetic

Song-dynasty palette: paper #f4ede0 + ink #1b1a17 + vermilion #8a3b2e; Kaiti chapter names (题记 / 录略 / 念想 / 断语 / 待办 / 跋). Default for S1 personal / S3 gathering.

All themes inject Content-Security-Policy meta and forbid <script> / external CSS / external images / iframes; every LLM/transcript field is HTML-escaped; self-contained < 200 KB; mobile-safe at < 640px.

Quick start

1

Onboarding (first install)

Go to Step 4 · API Providers, scroll down to "LingLu API · Live topic tree + reports". Defaults are Ollama + http://localhost:11434; just fill in the model name (e.g. qwen3.6:35b).

2

Main panel · Advanced (anytime)

Settings → Advanced → LingLu API · Live topic tree + reports (open by default). Click "Fill defaults" to auto-fill base URL by provider; click "Test connection" to verify in one shot.

3

Start recording

Press RightAlt or click Start Recording; open AI Meeting View and watch the dock area "Live topic tree" grow. Click ↗ Floating Window to detach to a side screen.

4

Export a themed report

Pick a theme from the dock toolbar (smart default by scenario) → 👁 Preview or ⬇ Export. Reports land in session/<id>/reports/<theme>.html and persist across restarts.

Configuration reference

Field Meaning Example
Provider 9 options; Ollama listed first ollama
Base URL Any OpenAI-compatible proxy works (e.g. oneapi.example.com); Ollama defaults to localhost http://localhost:11434
API Key Leave empty for Ollama; required otherwise sk-xxxxxxxx
Model Model id with tag qwen3.6:35b / deepseek-chat / claude-3-5-haiku-20241022
Scenario auto + 8 scenarios; auto with low confidence falls back to generic auto
Report theme 5 themes; smart default by scenario sumi-ink
Temperature 0.0–1.0; 0.1–0.3 recommended for minutes 0.2
Max tokens ≥ 2048 recommended for reasoning models (chain-of-thought eats budget) 4096
Interval (seconds) Lower bound 10, default 60; shorter = more real-time but more calls 60

Session directory layout

After stop, artifacts land under sessions/<YYYYMMDD_HHMMSS_slug>/:

File Purpose
audio.wav Source recording (existing)
enriched_transcript.json Speaker-tagged transcript (existing)
minutes.json Rule-based minutes (existing) + new LingLu fields: topic_tree_ref / scenario / theme_id / llm_provider / llm_model / linglu_schema
minutes.html Minutes HTML — v0.4 now renders with the scenario-appropriate theme (no more blue-teal gradient)
linglu.json NEW: full LingLuDoc with topics / liveTail / runtime / providerSnapshot
reports/<theme>.html NEW: user-exported themed reports

Security & privacy