master · 144 commits · no remote
Every commit
Newest first. The sentences are the commit subjects, unedited.
4aa653e Add Aegis keyboards for the laptop and the Tank.
de2ada4 Follow the Tank gateway that is the default route.
661fb3f mobile: 0.1.19
93f88a2 curiosity engine: hands-free discovery, direct ingestion and checked questions
b07ba2a mobile: 0.1.18
bd00425 docs: BUGS entries for the 2 Oct health audit fixes; HANDOFF hardware line, APK path, session notes
0987d3c mobile: saves made while Shield of Zeus is handing back are held until the data is the app's; stores write their .tmp inside their lock; sports files in the hand-back check; tests left out of the APK
340234d laptop: the backend answers only its own pages (CORS limited to its origins, foreign browser requests refused, terminal socket checks Origin)
5cdd9e7 laptop: every Ollama model load checks the Local AI setting and free RAM first (boot warm-up, query expansion, /teach, tutorials, trainer, verifier, benchmark)
a38d3d5 mobile: Go deeper keeps the tutorial's sense (build context and article qualifier); a rebuild on another article drops the old levels
c49a605 mobile: tutorial accuracy (how-to object, subject context, on-topic Stack Exchange, no game sites) and Tank log fixes (per-process .tmp saves, harvest context, how much / distance between)
e0d8b8c mobile: web requests keep their deadline (one connect budget across all of a host's addresses, reads bounded too)
bb160e1 local first: the phone checks its offline library before the web (except fast-changing intents); the laptop skips web expansion for short questions its hits answer
075f7d2 phrases: one catalogue of carrier wordings for the phone and the laptop; phone finds records narrowed by a clause (the first satellite put in orbit)
1d46909 mobile: style change reopens the app (restart notice instead of a blocked alarm), service class looked up on the main thread
558ed50 mobile: tutorial trainer and facts, expandable tutorials, voice pause/resume/stop, storage usage, background Shield of Zeus service, selectable styles with restart-to-apply and real boot progress (0.1.17)
7541015 mobile/design/themes: HTML mockups for the six selectable styles (reference only, not packaged)
88e0d2c laptop: AI keep-alive setting, corrections and synthesis updates, extractive year fix with tests, handoff.sh state report
503071e mobile: accurate web ingestion, answer-source notice, Artemis voice, companies/sports, auto-train (0.1.12)
1aa11e5 docs: HANDOFF section 16 (transfer folder), entry points, endpoints, session notes; BUGS entry
9174693 aegis-update/rollback.sh: stop only the backend running from the target install
ea32f3f aegis-update (sync an old install from the bundle, backup + rollback), aegis-transfer (hand-carried update folder), transfer/START-HERE.md; ignore .env
9da2fe3 aegis-share --out DIR --no-serve (unpacked export, text-column secret scan); aegis-import reads a local folder; secret_scan.py
7f7f214 aegis-share / aegis-import: LAN knowledge transfer. Parquet+manifest export (read-only DB or the backend's shared cursor via POST /system/knowledge/export), token-protected one-shot LAN server; importer verifies sha256, builds a fresh DuckDB, applies schema, rebuilds FTS via local_search, checks row counts, backs up data/ and prints rollback
ffd5562 aegis-check: stdlib requirements detector with install commands, --fix/--json; quick check in ./aegis; GET /system/requirements and Requirements card on Handshake System tab; system/ copies of the Kokoro unit and speak; requirements-kokoro.txt pins
4ee018f Aegis Mobile: make-spec-html.py, a self-contained build page for building the APK on another machine
9269883 Aegis Mobile: standalone offline Android app for the Tank 3 Pro
802251d handshake: page with AI handoff bundle, live query/trainer tests, storage inventory, settings and mic permissions; launcher button; AI memory gate 1600 MB
f4fa363 handoff: full HANDOFF.md, AI_PROMPT.md, read-only redacted ./aegis-handoff bundle
7a1adb6 baseline: voice, Artemis, desktop, natural answers (state as of 2026-09-25)
35002e1 archive: move one-off diagnostic scripts out of active tree
6e21db5 HANDOFF: session close, next-session starting point
2f64532 BUGS.md: log extract-table gap and hedge-word scoring gap
eaa2b14 BUGS.md: mark table misalignment bug as fixed (2b19936)
2b19936 extractive_qa: structured table extraction for fact queries
cfc3de5 BUGS.md: mark symbol false-positive as fixed (97863b4)
d19cf87 train_batch: dedupe generated prompts
bf83694 BUGS.md: picker-alignment fix failed; needs table extraction
7cb369b BUGS.md: root-cause picker bug to number bonus in _score_sentence
340dc24 patches: proposed attribute-alignment filter for fact queries
97863b4 trainer: guard symbol fallback against multi-word subjects
aaec1b8 terminal + batch harness
425c7fe docs: log two open bugs from tonight's session
578c0d9 web_ingest: reject placeholder templates and title-entity mismatches
d899606 canonical: remove predicted values for Z>=100 and borderline
c09c82f main: invalidate response cache on commit; TTL 300s -> 60s
805330f trainer: skip LLM when reference lacks the queried property
d5074db fts: stop rebuilding on transient errors + transactional rebuild
b2688d2 trainer: remove debug print from _check_numbers
d4ccad0 trainer: reject LLM refusals as hallucinated
7e4dab4 audit: dynamic open-issues list (only show present artifacts)
e3a6946 audit: point canonical-table check at canonical/
8a0a0ce drainer: rewrite for all attrs; canonical_lookup discoverer
bba514d drainer: rewrite for all attrs; canonical moved to canonical/
bd29af3 drainer: rewrite to handle discoverer + all attrs
c245841 canonical: discoverer for all 118 elements
916e8a0 canonical: override gas densities with STP values
f6961da canonical: fill gas densities; drainer sends answer field
ded2e70 canonical: move table to canonical/ (tracked in git)
0fb1522 canonical: add density for 92 elements, extend query path
8f0bb13 trainer: narrow novel_content_words to specific-claim tokens
7051ba5 trainer: fix number validation for density/units
77801ea chore: add aegis_audit.sh — read-only system audit
f70a527 db: route all read-write connects through config.get_cursor()
e378db5 trainer: validator + fuzzy numbers + norm-index fixes
7b0b5ca main: canonical preflight before fact/correction/cache
08175f3 trainer: public canonical_lookup() for query-time use
2d9af70 trainer: canonical aliases (US/UK) + chemical symbol fallback
c8bcb89 queue: advance on blank LLM draft (the carbon case)
6cde202 canon: carbon+arsenic sublimation; accuracy test label; queue watcher
7379441 queue: auto-advance past unanswerable cards (block + skip)
dd63961 trainer: fast-lane preflight -- skip web+LLM for known facts
dc5f9aa query: refusal paths log instead of queuing unanswerable cards
5a79584 trainer: wire accuracy.py preflight into conflict detection
f6c343e accuracy: use median instead of mean for cluster consensus
c2a375b accuracy: deterministic conflict-reasoning module + tests
0ef2fc3 canon: canonical element table + UI audit + launcher fix
d2aa36f docs: record lookup-cache attempt as tried-and-reverted
6146060 trainer: write unit column on manual fact commit (was computed, discarded)
8a3723b query: nonsense gate floor 3 -> 2 tokens (build-a-house bypass)
310ab7c extract: reject narrative fragments in author matcher
fb83f97 docs: note audit tooling in handoff
a44b24d dev: filesystem + DB audit scripts (read-only)
fb9635a trainer: manual fact commits extract value from prose; skip-if-known enqueue
2556e92 dev: session tooling (ultimate test, tui, pdf ingest, scripts)
d70e9a6 soz: app theme, trainer auto-run, mind bar, queue ETA
436ec4f mind: wire trainer queue into narration; phrase override
d0557b3 extract: 10 new attributes (dates, country, author, HQ, isbn)
92e27f8 extract v2: sentence-level entities + element whitelist
42956c3 query: lookup confirmed facts before extraction
9ec71ea ingest: extract structured facts on document ingest
f464cf7 extract: regex fact extraction for the knowledge base
4e0372b facts: structured fact storage for the knowledge base
000e3a1 query: drop off-subject sentences from extraction
7d74e65 soz: queue mode — auto-advance through pending reports
2d481a5 trainer: reject candidates with novel content words
43985ef trainer: extract subject after 'for' as well as 'of'
58fa4e9 soz: style the reference conflict panel
32878e2 soz: surface reference conflicts in the trainer UI
2fa19f3 trainer: surface reference conflicts, don't auto-resolve
de3bbeb verify: reject opposite-property sources, drop tie-to-confirm
f7752ee trainer: web fallback when Wikidata's value is contradicted
b884c93 hand: fire bolt once per draft, delay hammer to 4s
5874ee1 dev: no-cache middleware for static assets
c852e7b soz: compact Mind of God bar, drop the scrolling log
463cac5 trainer: settle Mind of God to idle after draft finishes
9439135 mind: add history log + hero upgrade for Mind of God
4d7a0dd soz: defer mind-bar init until DOM ready
35e1764 soz: swap to high-quality SOZ_UI.png
743a36d soz: warm bronze palette to match SOZ_UI.jpeg background
5b535f7 local_search: serialize ingest_document() writes
12f4c6c trainer: cross-verify Wikidata facts against web search
f08af70 trainer: bolt is a flash, not a sustained state
4e82383 soz: The Mind of God — fixed bottom bar narrating backend state
d0ef0ca trainer: keyboard navigation in the training session
693aa4f ui: category chips CSS + launcher pending-report badge
6788090 trainer: never persist or display empty drafts
59cd29e reports: category column + /trainer/enqueue + Run Task wiring
7a42cf7 corrections: two-tier matching — exact + keyword overlap
5de7875 trainer: server-side draft storage
21ba776 config: default model -> qwen2.5:1.5b
bc44e82 trainer: parser truncation + relaxed overlap threshold
77f3652 query: refuse 'flurble wumpus zork' and similar
fb770a5 trainer: Wikidata integration for numeric facts
ae68c01 trainer: fixed KV cache leak, key-term check, big timer
067d7e6 trainer: Neither regenerates; add Write my own button
6786784 reports: junk never queues; dedup covers pending+in_progress
9513f61 reports: hook all remaining refusal paths
04c3ada gitignore: exclude local aegis-*.sh dev helpers
fc4fcb0 desktop: open on /launcher; archive Forge sketch
ccabb10 Shield of Zeus — Aegis Trainer UI
dc7c8f8 query: gate web+LLM fallback, add definition relevance guard
04e9395 query: gate web and LLM fallback behind config flags
4f57a77 Forge: Trainer Studio theme
c36b8d1 synthesis: keep Ollama model warm between queries
2d832c0 HANDOFF.md: ingest fix, verification harness, and follow-ups
a89b4cb Fix ingest_document() missing content_hash; add verification pass
579339c Round 5: junk-refuse at handler top, greetings blocklist, live-data exclusion in classify()
8fb38fc Query system hardening + ingest quality gate + DB cleanup tooling
ed7e696 Query system: word-problem math, LLM/ingest caps, chrome penalty, early nonsense gate
1130d89 Fix .env.example key names; ignore .gitignore.pre-handoff
76a0946 Fix .env.example key names; ignore .gitignore.pre-handoff
ce772fe Handoff prep: README, .env.example, HANDOFF.md, .gitignore, backup cleanup
6da3335 Initial commit: streaming, tutorials, branding