soul.demarkus.io:6309

Map: soul.demarkus.io:6309

77 connected · 3 unlinkedrelateddepends-onrelatedrelatedrelatedrelatedrelatedrelatedrelatedrelateddepends-onrelatedimplementsrelatedrelatedrelatedrelatedimplementsrelatedrelatedrelatedrelatedrelatedrelatedrelatedrelatedrelateddemarkus-souldemarkus-soul — /index.mdArchitectureArchitecture — /architecture.mdRoadmapRoadmap — /roadmap.mdDebuggingDebugging — /debugging.mdCoding GuidelinesCoding Guidelines — /guidelines.mdConventions and W…Conventions and Working Agreements — /conventions.mdPatterns & Conven…Patterns & Conventions — /patterns.mdDemarkus / Knowle…Demarkus / Knowledge System FAQ — /rfc-review-faq.mdThe Universe Patt…The Universe Pattern — /universe.mdCompleted PlansCompleted Plans — /completed-plans.mdDocument GraphDocument Graph — /graph.mdGuide: Setting Up…Guide: Setting Up demarkus-soul — /guide.mdThe Reading Room …The Reading Room authoring contract — /.well-known/library/authoring.mdTrail URLs — the …Trail URLs — the shared reading-context format — /.well-known/library/trails.mddemarkus-souldemarkus-soul — /.well-known/agent-manifest.mdADR 0008: GCS wor…ADR 0008: GCS world state commits through one root CAS — /adr/0008-gcs-root-cas-storage.mdADR 0007: SNI sel…ADR 0007: SNI selects a virtual Mark server — /adr/0007-sni-virtual-world-routing.mdADR 0005 — Node i…ADR 0005 — Node identity omits the default port — /adr/0005-node-identity-default-port.mdADR 0004 — Edge s…ADR 0004 — Edge semantics: provenance on every edge, typed relations via rel- metadata — /adr/0004-edge-semantics-rel-convention.mdADR 0006: The Pos…ADR 0006: The Postgres backend is an optional build, not a dependency — /adr/0006-postgres-backend-is-an-optional-build.mdADR 0003 — Defaul…ADR 0003 — Default OKF type on publish — /adr/0003-okf-type-default-on-publish.mdADR 0002 — Align …ADR 0002 — Align store frontmatter with the Open Knowledge Format — /adr/0002-okf-metadata-alignment.mdADR 0001 — Broker…ADR 0001 — Broker confidential web-client registry — /adr/0001-broker-confidential-web-clients.mddemarkus-knowledg…demarkus-knowledge-system-deploy: project hub — /demarkus-knowledge-system-deploy/index.mdJournal 2026-08-23Journal 2026-08-23 — /demarkus-knowledge-system-deploy/journal/2026-08-23.mdJournal 2026-08-21Journal 2026-08-21 — /demarkus-knowledge-system-deploy/journal/2026-08-21.md2026-06-12 — dema…2026-06-12 — demarkus-library in-cluster deploy — /demarkus-knowledge-system-deploy/journal/2026-06-12.md2026-07-15: libra…2026-07-15: library 0.21.2 deployed (enriched /graph.md parsing) — /demarkus-knowledge-system-deploy/journal/2026-07-15.md2026-07-14: broke…2026-07-14: broker 0.12.2 + agent 0.21.1 bump (graph hub seeding) — /demarkus-knowledge-system-deploy/journal/2026-07-14.md2026-07-062026-07-06 — /demarkus-knowledge-system-deploy/journal/2026-07-06.md2026-07-052026-07-05 — /demarkus-knowledge-system-deploy/journal/2026-07-05.mdJournal 2026-08-12Journal 2026-08-12 — /demarkus-knowledge-system-deploy/journal/2026-08-12.mdADR 0005 — The Re…ADR 0005 — The Reading Room: spatial trails over temporal history — /demarkus-library/adr/0005-reading-room-spatial-trail.mdADR 0006 — Readin…ADR 0006 — Reading Room interaction model: dock, palette, and on-demand overlays — /demarkus-library/adr/0006-reading-room-interaction-overlays.mdADR 0002 — Hexago…ADR 0002 — Hexagonal (ports & adapters) architecture — /demarkus-library/adr/0002-hexagonal-architecture.mdThe Reading Room …The Reading Room — design notes (draft) — /demarkus-library/plans/reading-room.mdPhase 5 — Public …Phase 5 — Public Face: the anonymous-read decision (plan) — /demarkus-library/plans/phase-5-public-face.mdPhase 3 — Catalog…Phase 3 — Cataloging Desk (plan) — /demarkus-library/plans/phase-3-cataloging-desk.mdPhase 1b — Web SS…Phase 1b — Web SSO over the Broker (two-repo plan) — /demarkus-library/plans/phase-1b-web-sso.mddemarkus-librarydemarkus-library — /demarkus-library/index.mdADR 0003 — SSR-fi…ADR 0003 — SSR-first, htmx-hard, no JSON — /demarkus-library/adr/0003-htmx-ssr-philosophy.mddemarkus-library …demarkus-library — Roadmap & Resume — /demarkus-library/roadmap.mdADR 0004 — Broker…ADR 0004 — Broker confidential web client + redirect SSO (reject device flow) — /demarkus-library/adr/0004-broker-web-sso.mdADR 0001 — Echo +…ADR 0001 — Echo + bulwarkauth-style layout for the front-end — /demarkus-library/adr/0001-echo-bulwarkauth-layout.mdJournal 2026-08-18Journal 2026-08-18 — /journal/2026-08-18.mdJournal 2026-08-17Journal 2026-08-17 — /journal/2026-08-17.md2026-06-21 — Leid…2026-06-21 — Leiden clustering: built, measured, shelved as a grouping feature — /journal/2026-06-21.md2026-06-022026-06-02 — /journal/2026-06-02.md2026-07-22: migra…2026-07-22: migrating soul.demarkus.io off the Orange Pi to a droplet — /journal/2026-07-22.mdJournal: 2026-08-…Journal: 2026-08-22 — /journal/2026-08-22.md2026-06-08 — Brok…2026-06-08 — Broker-global OIDC AllowDomains gate — /journal/2026-06-08.md2026-07-25: Hoste…2026-07-25: Hosted tenant density ADR (0005) — /journal/2026-07-25.md2026-06-25 — pi c…2026-06-25 — pi command fix, plugin lint debt, poison-lock fix — /journal/2026-06-25.mdJournal — 2026-05…Journal — 2026-05-31 — /journal/2026-05-31.mdJournal — 2026-05…Journal — 2026-05-30 — /journal/2026-05-30.mdmemoryleaderboard…memoryleaderboard: Project Hub — /memoryleaderboard/index.mdmemoryleaderboard…memoryleaderboard production deployment — /memoryleaderboard/deployment.mdAgent Memory Lead…Agent Memory Leaderboard — /memoryleaderboard/agent-memory-leaderboard.mdmemoryleaderboard…memoryleaderboard debugging — /memoryleaderboard/debugging.mdJournal 2026-08-17Journal 2026-08-17 — /memoryleaderboard/journal/2026-08-17.mdJournal 2026-08-16Journal 2026-08-16 — /memoryleaderboard/journal/2026-08-16.mdJournal 2026-08-14Journal 2026-08-14 — /memoryleaderboard/journal/2026-08-14.mdJournal 2026-08-13Journal 2026-08-13 — /memoryleaderboard/journal/2026-08-13.mdMulti-world Knowl…Multi-world Knowledge Server — /plans/knowledge-server.mdPlan: Agent Memor…Plan: Agent Memory Leaderboard entry — /plans/agent-memory-leaderboard.mdPlan: demarkus as…Plan: demarkus as a service — /plans/demarkus-as-a-service.mdKnowledge Ingesti…Knowledge Ingestion Pipeline — /plans/knowledge-ingestion.mdPlugin Prompt Sou…Plugin Prompt Source of Truth — /plans/plugin-prompt-source-of-truth.mdPlan: Plugin Know…Plan: Plugin Knowledge-Quality Enforcement — /plans/plugin-knowledge-quality.mdPlan: Absolute pa…Plan: Absolute parity between the file store and the Postgres store — /plans/store-parity.mdCode Quality Swee…Code Quality Sweep 2026-08 — /plans/code-quality-sweep-2026-08.mdKnowledge graph c…Knowledge graph completeness analysis (2026-07-15) — /plans/graph-completeness.mdPlan: the five-mi…Plan: the five-minute appliance — /plans/five-minute-appliance.mdPlan — /soul-join…Plan — /soul-join: managed remote souls + catalog + project binding — /plans/soul-join.mdPlan: APPEND meta…Plan: APPEND metadata loss — /plans/append-metadata-loss.mdObsidian Plugin P…Obsidian Plugin Plan — /plugins/obsidian/plan.mdObsidian Plugin —…Obsidian Plugin — obsidian-demarkus — /plugins/obsidian/index.mdunlinkedJournal 2…Journal 2026-08-23 — /demarkus/journal/2026-08-23.md2026-08-2…2026-08-21 PostgreSQL request snapshots — /journal/2026-08-21.mdAgent Mem…Agent Memory Leaderboard application readiness — /memoryleaderboard/application-readiness.md
soul.demarkus.io:6309/demarkus-library/index.md draft reader meta

demarkus-library

Sub-project hub for demarkus-library — the web front-end ("Universe Library") for a demarkus universe: a server-rendered Go + htmx reading room over a broker-fronted knowledge system. Standalone repo latebit-io/demarkus-library, own release cadence (mirrors obsidian-demarkus).

All durable knowledge about this project lives under /demarkus-library/. This hub is the discovery backstop — keep it current.

Resuming? Start with Roadmap & Resume — how to run today, the file map, and the Phase 1b task breakdown (Fable 5 vs Opus).

Source of truth

  • Plan — Universe Library — the authoritative plan (architecture, identity model, phases 0–5, build-model strategy, resolved decisions, open questions). Fetch this first in any new session.

Sections

Status

  • Phase 0 — Foundation spike: DONE, merged to main. A real demarkus doc renders server-side in a browser over the QUIC fetch client.
  • Phase 1a — Reading room (features-first): DONE, merged to main (PR #2). Built over the current direct-QUIC world. Routes: / (default doc), /d/<path> (document, or the stacks listing when path ends in /), /search?q= (card catalog, LOOKUP, debounced htmx, click-through, real <form> so it works without JS), /versions/<path> (editions), /health. Link rewriting maps internal doc/dir/version links to in-app /d/<path>. htmx fragment-vs-page: targeted swaps return the content partial, boosted nav + no-JS return the full page. x/net on v0.56.0 (CVE-patched), govulncheck clean.
  • Phase 1b — Library card (the turnstile): NEXT. Broker MCP-gateway outbound adapter implementing port.WorldGateway (+ org-scoped OAuth login, cookie session, tokens server-side) — swapped in at the composition root, core/web untouched. Task breakdown + Fable-5 tagging in the roadmap. This is where the open anonymous-reads question gets resolved.
  • Deferred: backlinks / "cited by" (no server verb — needs a graph crawl; plan defers the viz); world directory / floor (multi-world from the root hub).

Architecture — hexagonal (ports & adapters)

Dependencies point inward (adapters → ports → core); the core knows nothing of Echo, QUIC, or goldmark. See ADR 0002. Echo v5 + bulwarkauth idioms retained (ADR 0001).

cmd/demarkus-library/        composition root — wires adapters into the core
internal/core/
  domain/    document.go     entities + sentinel errors (no external deps)
  port/      port.go         inbound + outbound port interfaces (ReadingService; WorldGateway, Renderer)
  service/   reading.go      application core — Read/Browse/History/Search
internal/adapter/
  inbound/web/               Echo handlers/routes/view + link rewriting  (driving adapter)
  outbound/world/            demarkus QUIC fetch (Fetch/List/Versions/Lookup) → port.WorldGateway
  outbound/markdown/         goldmark + bluemonday → port.Renderer

replace directives point demarkus client/protocol at local ../demarkus. .coderabbit.yaml encodes the dependency rule as per-path review instructions.

Front-end philosophy

SSR-first, htmx-hard, no JSON — see ADR 0003. The server renders all HTML; htmx is the only interaction layer; no JSON API, no client-side state. Realized in 1a: link rewriting + linkifyCatalogPaths keep navigation server-driven; the page/content template split gives htmx fragments without a duplicate render path; the search box is a real <form> (degrades without JS). htmx is vendored (web/static/htmx.min.js, pinned to the latest release — currently 2.0.10) and served from the binary — no CDN. JS islands are a last resort, each tracked as a concession in ADR 0003.

Open questions

  • Does the broker expose any anonymous-readable surface? Decides whether Phase 1b hits the broker directly vs a dev world for unauthenticated reads. Resolve in 1b by checking mcp_auth.go/mcp_gateway.go in the broker source.

Stack (decided)

Server-rendered Go (Echo v5 + html/template + htmx), goldmark + bluemonday for markdown→sanitized HTML, MCP client over the broker MCP gateway (Phase 1b+), org-scoped OIDC (auth-code/PKCE/DCR), tokens server-side only. Single Go binary, no Node build. Go 1.26.4. Build on Opus 4.8 by default; Fable 5 as the escalation valve.

Phase 1b plan (2026-06-11)

Open question (anonymous reads) is RESOLVED: /mcp is always bearer-gated — login is a hard turnstile.

Multi-world floor + federation (2026-06-11)

The deferred "world directory / floor" backlog item is BUILT (branch feature/world-floor): documents addressed as (world, path), routes /w/<world>/..., mark:// links traverse worlds — knowledge-system names via the broker, host[:port] via direct QUIC (DEMARKUS_FEDERATION, default on). Read token never leaves the home host. The root hub is the floor: its world links are clickable entrances. Details in journal 2026-06-11.


Currency note (2026-07-04): the Status/phases sections above are frozen history (Phase 1b era). The living status is the tail of Roadmap & Resume. ADRs now run through 0005 (spatial trail) · 0006 (interaction overlays) · 0007 (pane-scroll room — the default).

trail
  1. soul.demarkus.io:6309 soul.demarkus.io:6309 — map
  2. index