feat/wiki-astro #214

Merged
clawdie merged 19 commits from feat/wiki-astro into main 2026-06-26 14:16:50 +02:00
Owner
No description provided.
clawdie added 20 commits 2026-06-26 14:12:48 +02:00
- mother-hive (matični hive): forced-command SSH, single home,
  peer auth, key-on-seed, daemon user
- task-board (tabla opravil): capability scoring, cron/interval/once,
  intake drain, SQLite backing
- operator-attention (operaterska pozornost): attention bar,
  jump/filter keys, edge-triggered alerts, NO_COLOR pitfall
- contracts (JSON pogodbe): stable schemas, golden tests,
  evolution rules
- cost-model (model stroškov): cache-hit metering, fast/smart/max,
  T14 compaction, DeepSeek probe
- layered-soul (plastovita duša): import path, deferred stores,
  one-way direction
- index (wiki kazalo): conventions, lint workflow, full page table

Commands/JSON/code paths kept in English; prose + frontmatter
translated.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs(sl): translate wiki group 3 — runtime-inventory, jail-confinement, skills-catalog, vault-provision, agent-events-reference, external-mcp
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
4a3f3ee2cd
Completes Slovenian wiki translation: all 23 pages now have sl/ mirrors.
Match the lean SL style: one terse sentence, no legacy narration.
"clawdie provisions the host service. Jail, DB, CMS, and Git
provisioning are not yet in the installer."
docs(sl): add 23 Slovenian terminology mappings to glossary
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
4edf01de25
New Izrazoslovje section — English concept → Slovenian name mapping:
  jail/ječa, warden/paznik, confinement/zaprtost, prisoner/zapornik,
  cell/celica, hive/panj, mother/matično vozlišče, node/vozlišče,
  glasspane/steklena plošča, spawn/(samodejni) zagon, seed/seme,
  vault/trezor, tenant/najemnik, skill/veščina, snapshot/posnetek,
  rollback/povratek, harvest/žetev, bridge/most, daemon/ozadnji proces,
  board/tabla nalog, scheduler/razporejevalnik, Bastille (trdnjava),
  jailed/zaprt v ječi.

Cross-links added from existing ZFS, PF, and UI entries.
Total anchors: 38 (15 abbreviations + 23 terminology).
Plain Astro — no Starlight. Five files:
  - package.json (astro only, v0.12.0)
  - astro.config.mjs (wiki.clawdie.si, static output)
  - src/pages/index.astro (flat list of all decision pages)
  - src/pages/[...slug].astro (dynamic route: reads docs/wiki/*.md)
  - build-wiki.sh (npm ci + astro build)

Design decisions:
  - No Starlight — 23 pages, rarely changing, primary audience is LLMs
  - Dynamic routes — add a .md to docs/wiki/, it automatically gets a page
  - Markdown rendered at build time (frontmatter, tables, code blocks, links)
  - Wiki links [label](./page.md) auto-resolve to [/page/]
  - Dark mode via prefers-color-scheme, no JS

Guide keeps Starlight (structured sidebar, human operators).
Wiki gets plain Astro (flat list, agent audience).

See: docs/PLAN-WIKI-CLAWDIE-SI.md
- Remove 'sl' from EXCLUDE — Slovenian wiki pages now served
- Locale-aware link resolver: ./page.md → /sl/page/ in sl/ context
- Language switcher in nav bar (English ↔ Slovenščina)
- Slovenian index at /sl/ with translated prose
- lang attribute dynamic per locale
- Matches docs.clawdie.si Starlight pattern: /<lang>/<page>/
"Vrata" is a correct translation for TCP/network ports, but wrong for
software quality gates. Changes:

quality-gates.md — rewritten: "kakovostno preverjanje" not "kakovostna vrata"
  vrata → preverjanje (gate → verification)
  krajevna → lokalno (local)
  kljuka → kavelj (door handle → git hook)
  padejo → spodleti (falls → fails)

Scattered fixes in 5 other files:
  cost-model.md, index.md, mother-hive.md, naming-decisions.md,
  store-schema.md — vrata → preverjanje/dovoljenja
  external-mcp.md — vrata → dovoljenja (permissions)

Kept: "vrata" for TCP ports (correct), "vhodna vrata" for front-door
metaphor (works in Slovenian), "vrata za poslušanje" for listening port.

Also fixed: frontmatter quoting for YAML (nested quotes, colons).
Three hiccups from the wiki.clawdie.si deployment (26.jun.2026):

1. Placeholder cert — nginx refuses to start when ssl_certificate files
   dont exist yet. Create a temporary self-signed cert first, then
   acme.sh --issue overwrites it with the real cert.

2. ACME challenge location ordering — nginx matches location blocks in
   order. .well-known/acme-challenge/ MUST come before the
   location / { return 301 https://... } redirect, otherwise ACME
   validation returns 301 instead of the challenge file.

3. acme.sh --key-file + --fullchain-file — these flags write directly
   to the nginx SSL paths, replacing the placeholder. The cert paths
   must match between nginx config and acme.sh invocation.

New "Adding a new public static HTTPS site — full flow" section covers
the complete pattern: DNS first → placeholder cert → vhost with ordered
locations → real cert → content deploy → renewal.

Two new troubleshooting entries: BIO_new_file() failed (missing cert),
ACME challenge 404/301 (location ordering or missing directory).
Skills were copied flat (.agent/*/SKILL.md) instead of nested
(.agent/skills/*/SKILL.md). The ISO import script
(import-colibri-skills.sh) expects the nested structure.

Now matches clawdie-ai canonical layout. 52 SKILL.md files verify.
- agent-harness.md: "oprema" → "vprega" (harness, as in ox harness)
  Title: "Agentska vprega: zot + Colibri"
  Content: "Privzeta vprega OOTB je zot"
- index.md: updated table description
- sl/[...slug].astro + sl/index.astro: new dynamic routes for SL wiki pages
- Deployed: 68 pages live (23 EN + 23 SL + 2 indexes)
The agent harness page describes THREE agents: pi (fallback), zot (default),
and Colibri (supervisor). Title updated in both EN and SL.

Also: H1 extraction fallback for pages without YAML frontmatter —
content.match(/^#\s+(.+)$/m)?.[1] so pages with only markdown H1 still
get a proper <title> tag instead of the slug.
Captures the wiki.clawdie.si deployment experience (26.jun.2026):

Pitfalls documented:
1. const declarations outside function scope fail in Astro SSR
2. YAML frontmatter with unquoted colons breaks content parsing
3. SL content auto-generates stale routes (explicit sl/ routes needed)
4. Stale dist cache preserves old route generation (rm -rf dist)
5. import.meta.url path resolution fails in Astro SSR
6. H1 fallback for pages without YAML frontmatter
7. Nginx SSL cert placeholder (referenced, in nginx skill)

Full deploy flow: stage → jail → build → deploy → verify.
First-time setup instructions for CMS jail.
Positive framing — each former "pitfall" is now a prescriptive step:

  1. Quote all YAML frontmatter values
  2. Declare content-path constants inside getStaticPaths()
  3. Create explicit routes for SL content
  4. Clean the dist cache before every build
  5. Resolve content paths with path.resolve("src/content")
  6. Extract markdown H1 as a title fallback
  7. Placeholder TLS cert for first deploy (reference)

Every step follows Why → What → Result. No "broken/failed/symptom/cause"
language. An agent reading this gets a recipe, not a post-mortem.
nginx:   broken config→valid config, fails→reports error, won't start→status check,
         BIO_new_file() failed→certificate file missing, common causes→things to check
setup:   broken/missing→needs repair, failed to load→need build tools,
         fix each→resolve each, Common causes→What to check
update:  broken state→consistent state, tests fail→tests don't pass,
         unfixable→not immediately resolvable, won't start→needs attention
astro:   fails because→requires
docs-deployment: broken→needs rollback, Check for broken symlinks→Verify symlinks
Glossary alignment — demon (devil) replaced with the established ozadnji
proces (background process) per okrajsave.md glossary. Full sweep across
all sl/ wiki and guide files (61 replacements in 18 files).

  demon→ozadnji proces (nominative, 15 instances)
  demona→ozadnjega procesa (genitive, 42 instances)
  demonom→ozadnjim procesom (instrumental, 1 instance)
  demonov→ozadnjih procesov, demonovem/demonovim rephrased (3 instances)
  krajevni→lokalni (7 instances across 4 files)
  oprema→vprega (agent harness context, 3 instances)
  vrata→preverjanje (quality gate context, 1 instance)
refactor: positive framing — kill → stop across CLI, client, daemon, TUI, docs
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
887696e1c6
Rename kill→stop at every layer for consistent positive-framing language:
- CLI: colibri stop AGENT_ID (was kill), stop|stop-agent subcommand
- Client: stop_agent() method, StopAgent enum (was KillAgent)
- Daemon: cmd_stop_agent handler, #[serde(alias = kill-agent)] for wire compat
- TUI: stop_selected() function + key binding (x), status messages
- Docs: operator-cli wiki, control-plane-bridge (EN+SL), MULTI-AGENT-HOST-PLAN,
  CLAWDIE-STUDIO-PROPOSAL

Wire protocol retains backward compat via serde alias — old clients sending
kill-agent still deserialize to StopAgent. New clients send stop-agent.

Sam & Hermes
codex-osa force-pushed feat/wiki-astro from 887696e1c6 to d002e480c3 2026-06-26 14:16:04 +02:00 Compare
clawdie merged commit 464d075f5c into main 2026-06-26 14:16:50 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: clawdie/colibri#214
No description provided.