Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions .kanon-ci.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@
# Forge CI pipeline for forkwright/akroasis.
#
# Mirrors the hardcoded default Rust gate (fmt → check → clippy → nextest
# → lint) but pins per-stage build + test concurrency to 8. Without this
# cap, cargo defaults to num_cpus (64 on this Threadripper) and parallel
# rustc + nextest processes peak well over 100GB of RSS — enough to OOM
# menos when any other fleet work is running. 8 is the budget that keeps
# a single CI run under ~25GB peak, low enough that serial drains don't
# OOM even with aletheia.service and the dispatch fleet resident.
# → lint) but pins per-stage build + test concurrency to 8. The 8 is a memory
# bar, not a speed setting: this workspace's rustc and nextest processes are
# RSS-heavy, so peak memory tracks the job count. Unpinned, that count follows
# cargo's num_cpus default — a property of whichever machine runs CI rather
# than of this build — and the peak rises with it. At 8 a single run holds
# under ~25GB, and that margin is what lets CI run without starving whatever
# else the build host is already serving, including the next queued run when
# several drain back to back. Raise the number and the peak leaves that
# envelope; delete the line and there is no envelope at all.
#
# Keep in sync with `crates/archeion/src/ci_config.rs::default_rust_gate`
# when the upstream default changes — only the `--jobs` / `--test-threads`
Expand Down
10 changes: 5 additions & 5 deletions .kanon-lint-ignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# WHY: Feature branches for #118/#122 were developed directly in the main worktree
# from metis while menos (the canonical compute host with dispatch-wt infrastructure)
# is offline for firmware recovery. The sub-worktree convention is the normal path;
# this exception acknowledges the recovery-window deviation. Tracked to remove once
# menos returns and dispatch-wt is restored.
# NOTE: All subsequent PR work should go through ~/dev/worktrees/akroasis/<branch>.
# during a window when the usual sub-worktree tooling was unavailable. The
# sub-worktree convention is the normal path; this exception acknowledges the
# deviation. Tracked to remove once the sub-worktree path is restored.
# NOTE: All subsequent PR work should go through a per-branch worktree rather
# than the main checkout.
ORCHESTRATION/main-worktree-commit-prohibited:Cargo.toml
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ Communications sovereignty and RF intelligence platform. Rust workspace, single

## Where to add things

- New crate: `crates/<greek-name>/`, register in root `Cargo.toml` members, follow `~/dev/kanon/crates/basanos/standards/GNOMON.md` for naming, add entry to `docs/lexicon.md`
- New crate: `crates/<greek-name>/`, register in root `Cargo.toml` members, follow `crates/basanos/standards/GNOMON.md` in `forkwright/kanon` for naming, add entry to `docs/lexicon.md`
- New signal type: extend `GeoSignal` enum in `stoicheion`; downstream crates match exhaustively
- New standard or convention: propose it in `~/dev/kanon/crates/basanos/standards/`; cross-link from this repo's `standards/README.md`
- New standard or convention: propose it in `crates/basanos/standards/` in `forkwright/kanon`; cross-link from this repo's `standards/README.md`

## Boundaries

Expand All @@ -50,7 +50,7 @@ Communications sovereignty and RF intelligence platform. Rust workspace, single
<!--
scope: akroasis repo cross-tool agent guide (Claude Code, Kimi, Codex, Cursor, Windsurf, Copilot)
generated_by: kanon docs sync
defers_to: CLAUDE.md for Claude Code-specific behavior; ~/menos-ops/CLAUDE.md for machine + service topology
defers_to: CLAUDE.md for Claude Code-specific behavior; host and service topology lives outside this repository
tightens: workflow/AGENTS-mcp-tools.md catalog routing; crates/basanos/standards/AGENT-DOCS.md authoring rules
-->

Expand Down
14 changes: 8 additions & 6 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!--
scope: akroasis repo conventions (SIGINT/comms crates: stoicheion, tekmerion, kryphos)
defers_to: ~/menos-ops/CLAUDE.md for machine topology; ~/.claude/CLAUDE.md for operator principles
defers_to: ~/.claude/CLAUDE.md for operator principles
tightens: per-crate CLAUDE.md files may narrow within their layer
-->

Expand All @@ -10,10 +10,12 @@ Project conventions for AI coding agents working on this codebase.

## Standards

Universal: `~/dev/kanon/crates/basanos/standards/STANDARDS.md`
Rust: `~/dev/kanon/crates/basanos/standards/RUST.md`
Shell: `~/dev/kanon/crates/basanos/standards/SHELL.md`
Writing: `~/dev/kanon/crates/basanos/standards/WRITING.md`
Fleet standards live in `crates/basanos/standards/` in `forkwright/kanon`:

Universal: `STANDARDS.md`
Rust: `RUST.md`
Shell: `SHELL.md`
Writing: `WRITING.md`

## Structure

Expand All @@ -36,7 +38,7 @@ cargo clippy --workspace # Lint (zero warnings)
- **Async:** Tokio
- **Lints:** `#[expect(lint, reason = "...")]` over `#[allow]`
- **Visibility:** `pub(crate)` by default
- **Naming:** Greek names per `~/dev/kanon/crates/basanos/standards/GNOMON.md`, registry at [docs/lexicon.md](docs/lexicon.md)
- **Naming:** Greek names per `crates/basanos/standards/GNOMON.md` in `forkwright/kanon`, registry at [docs/lexicon.md](docs/lexicon.md)

## Before submitting

Expand Down
21 changes: 10 additions & 11 deletions docs/reference-store.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,11 @@ a second local Pinax identity. The application layer remains deliberately
unnamed until it passes the fleet naming gate.

The repository does not ship an `instance/` tree today. This document defines
the target layout and migration policy so the existing `theke/_reference`
staging area can move only after the source inventory is visible and
checksummed. A transactional Pinax integration waits for the standalone
engine's multi-record transaction and typed-schema contracts; the final
async-native shape also waits for its async API rather than shipping a
temporary blocking adapter.
the target layout and migration policy so the existing staging area can move
only after the source inventory is visible and checksummed. A transactional
Pinax integration waits for the standalone engine's multi-record transaction
and typed-schema contracts; the final async-native shape also waits for its
async API rather than shipping a temporary blocking adapter.

The encryption authorities are distinct. Pinax owns encryption of its database
pages at rest. Akroasis owns the domain-envelope policy for reference content,
Expand Down Expand Up @@ -74,8 +73,8 @@ Initial supported content classes:

Per-crate docs stay in the crate or `docs/`. Operational reference payloads,
large manuals, docsets, and preserved external corpora live in the instance
reference store. Theke may link to this store, but it should not own akroasis
reference data after migration.
reference store. The staging library may link to this store, but it should not
own akroasis reference data after migration.

## Manifests

Expand Down Expand Up @@ -119,7 +118,7 @@ symlink at `~/akroasis/instance/reference` and keep all internal paths relative
to that canonical root.

Do not scatter per-content symlinks across `/`, `/data`, `/storage`, and
removable menos drives. Mount or link the store root once, then let manifests
removable drives. Mount or link the store root once, then let manifests
describe the content inside it.

## Migration gates
Expand All @@ -141,6 +140,6 @@ Before moving content out of the current staging area:

As of this design note, akroasis only documents the planned reference-library
application. There is no checked-in `instance/` directory, no local
persistence crate, and no verified copy of the source `theke/_reference` tree
in this worktree. Akroasis issue #395 owns the producer-readiness and Sphragis
persistence crate, and no verified copy of the source staging tree in this
worktree. Akroasis issue #395 owns the producer-readiness and Sphragis
handoff gates for the first durable implementation.