Skip to content

User-facing wiki

The user-facing wiki is a read-only dashboard surface over docs/system-wiki. It makes the source-grounded Steelmoth wiki visible to dashboard admins without exposing edit, commit, or filesystem write controls.

routes_wiki.py exposes:

Endpoint Purpose
GET /v1/wiki/pages List visible wiki pages from the manifest.
GET /v1/wiki/pages/{page_id} Return one page as Markdown with front matter stripped.

The route requires require_admin; the route auth matrix classifies both wiki endpoints as admin-only. _wiki_io.py reads docs/system-wiki/manifest.yaml, validates page ids and wiki-relative paths, hides internal maintenance pages such as log and page-template, and keeps all reads inside the wiki root. It resolves the repo root from MOTH_HYBRID_WIKI_REPO_ROOT, then MOTH_HYBRID_STANDARDS_REPO_ROOT, then /app/repo; the private compose file mounts the repo at /app/repo. Both responses set Cache-Control: no-store.

The same compose file also mounts the host repo read-only at /workspace/steelmoth-host for steelmoth-morpheus-init clone fallback; that path does not change wiki reads, which still resolve through /app/repo.

The dashboard route is /docs/wiki. A detail page is available at /docs/wiki/[pageId]. WikiBrowser.tsx renders a page list and sanitized Markdown through the same MarkdownContent component used for chat and standards rendering. On docs.steelmoth.com, the same component switches to short-link mode (/ and /<pageId>/) while keeping /v1/wiki/* as the data source.

The admin/operator sidebar exposes the surface as the Docs entry under Advanced, linking to /docs/wiki. The Advanced section is hidden in user/Owlet mode, and /docs/wiki is not in the tester route allowlist. The API remains the enforcement point for admin-only access. On docs.steelmoth.com, middleware adds an explicit dashboard-admins group requirement for non-public paths and returns 403 for authenticated non-admin sessions.

  • Update this page when the wiki API, hidden-page policy, dashboard route, or sidebar entry changes.
  • Keep the surface read-only unless a separate product decision adds a user-facing editing workflow with authz, audit, and tests.
  • docs.steelmoth.com is a separate nginx/dashboard proxy path documented in docs-site.md.
  • The dashboard surface does not currently rewrite intra-wiki Markdown links into /docs/wiki/* routes.