Changelog
All notable changes to Auwai are documented here. The format follows Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Changed
- Renamed the project to Auwai. The CLI is
auwai, the distribution isauwai-kernel, the import package isauwai_kernel, the skill isskills/auwai, the data directory is.auwai, and environment variables use theAUWAI_prefix. - The four harness plugins, MCP tools, commands, agent, and capability manifest
use the Auwai name. The OpenCode guard is
auwai-guard.jsand the shared hook isauwai_hook.py.
Added
- Stage 9 validation: an eight-question Auwai arm at 30/32, a vanilla control arm at 28/32, and a full-window 64K segment with resolved citations.
- Stage 10 native watcher backends: inotify on Linux, FSEvents on macOS, and a
polling fallback selected automatically or with
--backend. - Stage 10 workspace full read:
workspace fullread plan,next,read,done,status, andverify, with qualified chunk ids and a workspace coverage ledger. - A design review for stage 10 in
docs/50-development/stage-10-design.md.
Changed
- The watcher refreshes from one event batch and uses the full scan path for overflows, directory events, and missing state.
- The workspace survey now shares its plan builder with the full-read runner.
[1.0.0] - 2026-11-08
Added
- A release version source (
VERSION), aauwai --versioncommand, a versioned knowledge health response, and generated plugin versions. - An installable
auwai-kernelwheel and sdist with aauwaiconsole script, zero core dependencies, and optional PostgreSQL, MySQL, and queue extras. - Security hardening: scoped and constant-time token checks, a 10 MiB request body limit, bounded events and text, loopback-only anonymous binding, metadata NUL rejection, and a deployment checklist.
- A schema migration ledger with checksums, idempotent upgrade steps,
PostgreSQL advisory locks, MySQL/MariaDB named locks, SQLite immediate
transactions,
--check, and--migrate. - Pre-v8 upgrade tests for SQLite, PostgreSQL, MySQL, and MariaDB, plus local ledger upgrade and repository-identity tests.
- One generated plugin architecture for Claude Code, Codex, Hermes, and OpenCode: shared skill, commands, agent, 17 MCP tools, capability manifest, session nudge, raw-read guard, stop sync, and knowledge-service default.
- A unified plugin installer with
--scope,--check,--remove, and--dry-run. - A plugin parity suite that compares skill hashes, command text, agent text, MCP contracts, hook decisions, version metadata, and installed layouts.
- Local-only benchmark replication: explicit endpoints, wrappers that refuse a public default, a deterministic mock protocol server, and a docs check for public benchmark hostnames.
- A TLS reverse-proxy smoke test, a security sign-off page, and release workflows for clean-runner tests, storage services, plugins, packaging, docs, and tags.
Changed
- Benchmark runners require
AUWAI_BENCH_URLor--endpoint; no public model or benchmark host is a default. - The Codex bundle ships
hooks/hooks.json, which Codex 0.166 discovers for enabled plugins. The hook still requires the host trust review. - The OpenCode plugin now covers prompt nudge and stop sync in addition to the raw-read guard, and the bundle includes the skill, commands, agent, and MCP installer.
- The knowledge service no longer describes PostgreSQL as untested; all four storage adapters are live-tested.
- Documentation now describes the current release, migrations, plugin matrix, local benchmarks, and security posture.
Migration
- Run
auwai serve --database "$AUWAI_DATABASE" --checkbefore upgrading.--migrateapplies schema 1 through 3. Startup refuses a newer schema. - Older local ledgers gain
fact_key, revision, timestamps, read completion, and plan/segment columns in place. Facts, findings, reads, plans, and segments are preserved. - The core package remains standard-library only. Install extras only when a database or queue adapter is needed.
Removed
- Public benchmark endpoint defaults from the release scripts and docs.
- Hand-copied plugin skill and command files from the generated bundles.
Added (earlier development)
- A knowledge service with SQLite, PostgreSQL, MySQL 8.4, and MariaDB 11.4 storage adapters, bearer auth, per-repository allowlists, token scopes, secret redaction, shared plans, job leases, and read/semantic coverage.
- A storage adapter boundary in
knowledge/storage.pywith SQLite, PostgreSQL, MySQL, and MariaDB implementations. The legacyknowledge_service.Storename remains a factory over the adapters. sync --pullto cache shared facts locally.- Service-backed full-read jobs:
fullread plan --share --jobsandfullread claim/read/done --remote. - Redis Streams, RabbitMQ, and Kafka job-queue adapters behind a common
JobQueueinterface. The database queue remains the default. - Stable, content-derived full-read plan ids.
- Coverage sync for read events, including complete, read, and semantic coverage. Semantic coverage joins facts and reads by content-addressed chunk id across repository snapshots.
- An offline answer-parser that accepts fenced arrays, surrounding prose, trailing commas, unescaped quotes, and invalid backslash escapes.
- Negative rubric patterns are evaluated per sentence, so a correct "No production module imports connectors" statement is not rejected because a later sentence mentions the router.
- The Hermes shell-hook installer now prints the exact PyYAML install command
when it is missing and accepts
--install-pyyamlto install it on request. - Native Claude Code and Codex plugin bundles with the Auwai skill, MCP server, commands, an agent, guard/nudge/stop hooks, and a knowledge-service default.
make pluginsregenerates the Claude Code and Codex bundles from the shared skill and hook sources.- Deterministic full-read worker concurrency tests for 1, 2, 4, and 8 workers.
- Findings recorded by
auwai read --findingare now queued to the knowledge service with a deterministic event id and author, andGET /v1/findingsqueries them. - Verification claims sync to the knowledge service; the
claimstable andGET /v1/claimsare available on SQLite, PostgreSQL, MySQL, and MariaDB. - Facts carry a stable
fact_key, revision, and per-chunk replacement semantics, so a reindex updates facts in place instead of growing the table. - Named reading sessions (
--session,AUWAI_SESSION_ID) with per-session locks and atomic saves;AUWAI_AGENT_IDlabels reads, findings, and claims. knowledge_service --backlogandAUWAI_BENCH_URLmake HTTP queueing and endpoint selection explicit.- PostgreSQL storage now quotes the reserved
endcolumn and qualifiescoverage_readsupsert targets; a live round-trip test is included.
Changed
- The knowledge service hides database passwords when it prints its startup URL.
- Team mode syncs coverage after reads and can pull shared facts before planning.
- MySQL/MariaDB use bounded
VARCHARkeys,utf8mb4, hashed coverage keys, and dialect-specific upserts to stay within InnoDB index limits. - RabbitMQ and Kafka use the service database as the canonical lease/state store, with the broker as the dispatch channel. Redis owns its stream state.
[1.14.0] - 2026-11-03
Added
- A coverage architecture: first-party scope, a partition tree, a
usable-context segment planner, and a read-only
surveycommand. - A SQLite coverage ledger with files, chunks, partitions, coverage, findings, reads, plans, segments, events, and an FTS label index.
- A full-read orchestrator:
fullread plan,next,read,done,status, andverify, with persisted segments and synthesis turns. - Deterministic chunk labels, coverage-aware
query, andcoverage. - A polling
watchcommand and anauditcommand with--repair. - A raw-read policy and a Hermes
pre_tool_callhook with an explicit[guard] allow_raw_readoverride. - A workspace
surveythat treats the workspace as a virtual repository. - A fixed answer-quality rubric, an offline scorer, and scored local runs on Auwai itself.
- The documentation tree and its index.
Changed
- The skill is 1.14.0; the Hermes plugin is 0.11.0. The MCP server is 0.8.0.
- Runtime settings live in
config.toml.AUWAI_SKILL_DIRandAUWAI_CLIremain as bootstrap paths. auwai initchecks prerequisites, writesconfig.toml, and creates the ledger. Hermes exposes it as/auwai-init.[database]sets the ledger path, journal mode, and busy timeout.- A changed-file sync updates only the affected chunks, coverage, file, and FTS rows; the partition cache is marked dirty instead of rebuilt.
- Log fixtures are excluded from the index.