docs(web,core-app): status truth pass — milestone reality on every public surface - #839
Merged
Conversation
…blic surface README, docs/index.md, docs/user/installation.md, docs/services/index.md, and docs/services/web.md still told the retired "Phases 0-3, chat bridges next" story. Reconcile every public status surface to the milestone model: working toward 1.0.0 (Foundation complete & stable), messaging shipped (loopback, Discord, Telegram), Slack/WhatsApp at 2.0.0, v0.2.0 latest tagged. - Rebuild installation.md's port table from the ports.md source of truth (11 module ports, data plane, opt-in observability profile) and document what the ADR-0118 first-boot model bootstrap actually does. - Add the missing notes/websearch modules to docs/index.md's at-a-glance tree. - Drop the stale mail "(v0.1)" version tag in docs/services/index.md. - Restructure web.md's ~9,690-character Chat table cell into a one-line summary plus a full prose subsection (word-for-word verified, no information loss); drop the dead "two board pages" example (tasks' board + Can, folded into one page by #820) with no live replacement instance. Correct core-app.md and scheduled_turns.py calling listeners/alerts "a later milestone" - that shipped inside 1.0 via #662-#672. core-app 0.114.0->0.114.1 (PATCH).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #830
What
Every public status surface still told the retired "Phases 0–3 complete… chat
bridges (Phase 4) next" story. Reconciled each one to the current milestone
model (
.workspace/docs/ROADMAP.md): working toward 1.0.0 — Foundationcomplete & stable (a quality gate, not a feature checklist); the
messaging module (loopback, Discord, Telegram) already shipped;
Slack/WhatsApp land at 2.0.0; latest tagged release stays v0.2.0.
Every claim below was re-verified against the live tree (code, not
assumption) before writing.
README.md:11-14— replaced the phase story with the milestone gate,the shipped module list, and the messaging/Slack-WhatsApp split.
docs/index.md— same status fix; the at-a-glance module tree wasmissing
notesandwebsearch(both exist as running services) — added.docs/user/installation.md— the port table listed 3 of the 11 moduleports. Rebuilt from the source of truth
docs/reference/ports.md: the fullmodule band (11 entries), the data plane, and the observability ports
correctly marked opt-in (
--profile observability), which the oldtable didn't disclose either. Added a new First-run models section
documenting what the ADR-0118 bootstrap (core: first boot leaves Ollama empty — bootstrap the default models on startup #773) actually does — read from
docs/services/core-app.mdandservices/core-app/src/epicurus_core_app/settings.py(the real
LLM_BOOTSTRAP_MODELS/LLM_DEFAULT_MODEL/MEMORY_EMBED_MODELdefaults), not assumed.
docs/services/index.md:17— mail's stale "(v0.1)" tag replaced;verified via
services/mail/srcthat Gmail is still the only implementedprovider (
gmail.py, withprovider.pyas the interface) — IMAP/Microsoftremain future work, now said plainly instead of via a misleading version
number (module is actually at 0.19.0).
docs/services/web.md:21— the Chat row's table cell was one~9,690-character line. Shrunk to a one-line summary linking to a new
prose
### Chatsubsection carrying the exact same content — split into17 paragraphs and verified word-for-word identical to the original
(script-checked, not hand-transcribed; no information lost). Also
web.md:568— the "two board pages from one module" example (tasks'board + Can, Tasks: the Can — an undated backlog page; board and calendar show only scheduled tasks #766) has had no live instance since Tasks: fold the Can into the Tasks page — a Backlog choice on Show, not a separate nav entry #820 folded Can into
the Tasks page (confirmed:
archetype="board"appears exactly once inthe whole codebase, in
services/tasks); dropped the dead example andkept the underlying
BoardView-keying design fact, stated genericallyrather than tied to a case that no longer exists.
docs/services/core-app.md:1058andservices/core-app/src/epicurus_core_app/scheduled_turns.py:5— bothcalled event-driven listeners/alerts "a later milestone." Confirmed
Events: module event spine — envelope, emit helper, durable log, raw feed #662–Chat: automation chat sink — rolling or per-run chats with icons; notes/KB sinks #672 are all closed and the module event spine / automations engine /
push notifications / event alerts (ADR-0114) are fully documented as
shipped later in the same file — corrected both to point at the
automations engine instead.
Out of scope (per issue)
docs/infrastructure/**— the PowerShell-era startup doc is known-stale;deferred, not touched here (also noted in the issue-closing comment).
.workspace/**— inaccessible by design.Version
One docstring touch (
scheduled_turns.py) ⇒core-app0.114.0 → 0.114.1(PATCH).
uv.lockregenerated to match. (Two sibling wave-15 lanes landcore-app0.114.2 / 0.115.0 separately — this PR only claims .114.1 on thepre-assigned ladder.)
Testing
ruff check .— passuv run mypy— pass (230 source files, no issues)uv run pytest services/core-app/tests— 2002 passed, 69.13s (thebenign
RuntimeError: Event loop is closedteardown warnings are thepre-existing testcontainer/StaticPool noise documented in AGENTS.md, not a
regression — exit code 0, no test failures)
gitleaks detect— no leaks foundtask smoke— docs/docstring only, no behavior change, per the issuebrief.