Milestones
List view
RAG becomes Illiana's general knowledge base, reachable from every surface. Today it is a set of Chroma collections the CLI fills and searches well, but nothing records what the index holds (the knowledge_base tables are never written), Illiana has no way to search it (no tool, no knowledge bases granted, the prompt-injection path never switches on), the API takes any server path with no auth, and Overseer can search but not index. The service layer owns all of it; the API, Overseer, MCP and agents read the same calls. Later: which code to index is chosen from the twin's graph, not by globbing a folder.
No due date•0/8 issues closedWhat an agent runs on, in one place. Today three app-wide settings decide it and nothing ties them together: the active model (composer chip, `llm use`, the API), the active voice profile (speech and the live engine, set from both the Voice modal and the Models modal's "Live calls" group), and the default agent. `agent.model_id` exists but every agent leaves it empty and the chip never shows it. Meetings runs on all three without saying which. The agent becomes the hub: it owns its model and its voice, each either its own or "app default", and every place she runs shows one chip linking to the agent where both are set.
No due date•0/5 issues closedThe new Rose of Eternity site, built on the data milestone 88 recovered: the journal and the dev log imported into the blog service, the guide given a home, a public shell to serve them. Decisions are taken with real content in front of us, so the journal import comes first.
No due date•1/1 issues closedA person pulls their own medical records into their own stack: FHIR resources from files and from patient portals (SMART on FHIR), on one timeline. A health service whose data is declared phi (Data Protection). Not a HIPAA covered entity when the patient chooses the app; the FTC Health Breach Notification Rule applies.
No due date•0/8 issues closedOne tenant model for every service (#1242): the auth Organization, NOT NULL organization_id on every tenant-owned table, enforced once on the session (with_loader_criteria + before_flush + composite FKs) instead of per query. Finance first, then documents, insights, ai.
No due date•0/6 issues closedPull every page and asset of roseofeternity.com (live Dotster static HTML, about 950 URLs, Wayback for what 404s) and theroseofeternity.com (Wayback only, WordPress 2017-2019, about 380 URLs) through the crawl4ai plugin into a store with raw HTML, markdown and images, then export it to plain files that outlive the stack. Data only: rebuilding the site and importing posts into the blog service are later decisions.
No due date•7/10 issues closedA zero-knowledge vault you run yourself (aegis add vault): what only you read (ENCRYPTION_KEY, backup passwords, a project's .env.deploy, recovery codes, logins), encrypted in the browser under a key from your master password; the server keeps ciphertext it cannot read. On your Raspberry Pi and in the cloud. The app's own unattended secrets stay in the secrets component.
No due date•0/6 issues closedFastAPI 0.142+ emits OpenTelemetry traces, metrics and logs natively. Upgrade, read its request metrics in-process into Redis, and build Server > Performance on them: requests by status over time, p50/p95 latency, routes with error rate, kept a day by the minute and a week by five minutes.
No due date•0/5 issues closedOne way to reach Redis, a cache that is only a cache, locks of their own, keys built through their declared family, typed stored values, and a series store with backends (lists now; Redis 8 TimeSeries and a Timescale handoff later).
No due date•0/9 issues closedBrowse a table's rows, run read-only queries, and follow each table's relationships, from Overseer's Database page: gated like Overseer > Code, secrets masked, writes impossible.
No due date•14/14 issues closedA twin of an Aegis app, built from its code and kept in step with it as it runs: what exists (the ontology, its model layer), what could happen (dry paths), what is (live state), what does (observed calls) and what did (recorded requests). Overseer, Illiana, Maintenance, MCP and docs all read it. Generated, never hand-kept.
No due date•33/37 issues closedA bot that joins your meetings as a visible participant, says who it is, transcribes each speaker, and gives you back the decisions and your action items, each linked to where it was said. Later it answers out loud when someone says "hey Illiana". A new browser component (remote-driven Chrome, an off-the-shelf image) carries the meeting bot; the meetings service owns everything about meetings.
No due date•24/31 issues closedA maintenance service for the running app: deterministic checks write findings on a schedule, fixes go through the approval queue, and a short allow-list of safe, reversible fixes runs on its own with an undo record. Runtime maintenance only: codebase drift (templates, Patterns, dependencies) is the aegis tool's job, not the deployed app's.
No due date•1/9 issues closedContainer errors and exceptions retained in Redis, grouped by cause, and inspectable in HTMX Overseer with occurrence history, full available stack traces and live updates. Collection continues without a browser. Bounded retention, replay deduplication and collector failover are required. Execution order: 1. #1471 — Extract shared log assembly and define error grouping 2. #1472 — Add bounded Redis occurrence and issue storage 3. #1473 — Collect container errors continuously with replay and failover 4. #1474 — Build the HTMX Errors list and occurrence detail 5. #1475 — Push grouped error updates through existing SSE patterns 6. #1476 — Verify failure recovery, stack compatibility and document operation Each issue includes file paths, implementation contracts, dependencies, acceptance criteria, test gates and exclusions. Start with #1471. Finish with the real Docker/Redis and generated-stack validation in #1476. Default scope: recent operational history (7 days / 10,000 occurrences per stack, configurable), retained occurrence counts, HTMX UI. Excludes direct logging instrumentation, alerts, resolve/ignore/assignment workflows, Flet Errors UI, release/deployment and permanent audit retention.
No due date•6/6 issues closedThe research service: outside posts and threads (any source) collected by saved searches into one searchable store, read by agents, MCP clients, the API, the CLI and the Overseer. Sources are plugins; Hacker News is the first. Framework hooks first, each found by file convention: scheduled jobs (#1419, done), tools (#1420, done), an Overseer page (#1421).
No due date•3/7 issues closedSteward's voice work, brought back as the template's: priced and metered voice, voice profiles, chat cards, and live calls on one path (Pydantic AI realtime over one relay). Steward then takes it with aegis update.
No due date•5/6 issues closed`aegis add data-protection`, an optional component: services declare which of their columns and tools hold sensitive data (pii, phi, financial), and the component keeps it out of logs, traces, model providers and MCP, encrypts and masks it, and keeps it only as long as a rule says. Inert without the component. The technical safeguards behind HIPAA-ready apps (software supplies safeguards; compliance is the organization's).
No due date•0/11 issues closed`aegis add governance`: one policy engine (rule types contributed by other services; off / monitor / enforce modes; scopes) and a real audit log. AI is the first place it enforces, not the only one.
No due date•0/4 issues closed`aegis add ai-gateway`: spend caps, model access, rate limits, fallback, caching and (later) virtual keys, enforced at one hook in the AI service. Built on what the stack already has: the catalog, usage and cost tracking, Pydantic AI, the secrets store.
No due date•0/10 issues closedThe Overseer sees where the app runs: per-service containers, resources and logs, and the deployments that put them there. Docker Compose on a VPS first, ECS later, behind one runtime interface.
No due date•18/20 issues closedOne interface for credentials: .env by default (read-only, restart to change), an optional encrypted database backend that makes keys writable and live, and an Overseer page to connect providers. Secrets are write-only: once saved, nothing shows the value again.
No due date•8/9 issues closedWritten as one design in June: know the real client behind the proxy, then rate-limit and budget across replicas, then notice the traffic that is scanning rather than using. Each piece is only meaningful once the one before it lands.
No due date•0/4 issues closedThe dashboard and the Flet surface underneath it: an architecture view per component, the usage ledger, chat affordances, and the Flet upgrade the whole frontend eventually needs.
No due date•3/7 issues closedThe documentation a generated project actually ships with. Today the README describes a project that was not generated: missing components, wrong database setup, a stale structure tree. Compose it from the plugin registry so it cannot drift again.
No due date•0/6 issues closedMaking the catalog the single source of truth for what a model can do, and making provider setup one coherent path instead of several. Capabilities out of hardcoded dicts and into the database, catalog queries that do not N+1, per-user model selection, and the gaps the catalog currently misses.
No due date•0/7 issues closedThe database host and the identity behind it as choosable axes: UUID user ids for new projects and a migration path for existing ones, Supabase as a native Postgres provider and as an auth backend, Turso, and switching provider on a project that already exists. Gated on the matrix actually running against a live Postgres.
No due date•0/7 issues closedWhat the app costs to start and to run: import weight per entrypoint, per-component memory, tracing that instruments things it never uses, and container limits that throttle the only interactive process. Sibling of Serving Runtime, which is about how it is served rather than what it weighs.
No due date•4/9 issues closedThe serving layer as composable axes rather than one blessed stack: ASGI engine (uvicorn/granian), event loop (uvloop/rloop/zuvloop), an opt-in free-threaded image, and the tracing needed to tell where request time actually goes.
No due date•5/7 issues closedEvaluate the assistant the way the code is tested: cases from real conversations, scored on the trace (which tools, how many times, with what) plus a judged rubric, recorded in the project's own tables and read in Overseer - Logfire optional. Selectable like rag and voice: ai[evals]. Origin: Leonard, 2026-09-16, after a night of finding regressions by reading logs.
No due date•0/7 issues closed