Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
257 commits
Select commit Hold shift + click to select a range
448fe4c
Phase 299-302: Munda SA + substrate + archaeology + dashboard deploy
tbitcs May 27, 2026
a94b806
Fix dashboard: anchor coverage shows 605/713 (ICIT denominator)
tbitcs May 27, 2026
b614cdd
UI fixes: progress bar text readability + Logs tab rename
tbitcs May 27, 2026
501ce08
Phase 303-307: anchored Munda SA + allograph + cross-researcher + coh…
tbitcs May 27, 2026
481e44d
Dashboard clarity: 605/713/108 gap + preprint §3.18 Munda SA + §4.4/§…
tbitcs May 27, 2026
5941380
Fix ruff lint: split multi-imports + remove f-string without placehol…
tbitcs May 27, 2026
7568366
Phase 308: Elamite bigram LM baseline + full graph audit
tbitcs May 27, 2026
5a91e5b
Phase 309-311: Kur audit fix, Shaw comparison, M77 replication, phono…
tbitcs May 27, 2026
bc7ad1a
Phase 312: Re-derive 205 reverted sign readings via positional profiling
tbitcs May 27, 2026
aa9698c
Phase 313-316: PD grammar validation (91.8%), formula mining, Nair sc…
tbitcs May 27, 2026
aac6621
Phase 317-320: Permutation null (NOT significant), Parpola 50%, entro…
tbitcs May 27, 2026
c4f85c0
Phase 321: Venkatesan 0% overlap, Kriger 97.7% uniqueness, outreach list
tbitcs May 27, 2026
72a84aa
AUDIT: Revert Phase 312 kol mass-assignment (same bug class as kur)
tbitcs May 27, 2026
c50f890
AUDIT: Complete integrity review with corrections and retractions
tbitcs May 27, 2026
2591169
RELEASE VALIDATION: Cold re-run of 6 experiments on audited anchors
tbitcs May 27, 2026
1735ddd
Fix Parpola comparison: strict alternative matching, no substring tricks
tbitcs May 27, 2026
d9fda2a
Update release validation: 185 Holdat-attested HIGH signs (not 208)
tbitcs May 27, 2026
8b60da1
Update README with audited numbers, DOI badge, ORCID, honest claims
tbitcs May 27, 2026
619388c
Preprint v3 draft: 185 readings, 6 tests, full audit disclosure
tbitcs May 27, 2026
951a978
Generate preprint v3 PDF via pandoc+xelatex
tbitcs May 27, 2026
e920805
Update DOI to v3: 10.5281/zenodo.20414696
tbitcs May 27, 2026
ccbc222
Fix preprint: remove duplicate title, generic AI disclosure, DOI in h…
tbitcs May 27, 2026
6d7a5d4
Move AI disclosure to Declarations section at end of paper
tbitcs May 27, 2026
412619e
Phases 322-335: Mega mine 5000 + 13 decipherment experiments
tbitcs May 27, 2026
a0b982e
Phases 336-339: PDr morpheme LM (z=14.0!), phoneme resolution, Shu-il…
tbitcs May 27, 2026
f7010d7
Phases 340-345: Anti-circularity validated (z=2.8), word boundary STR…
tbitcs May 27, 2026
26d1c0a
Phases 346-348: CONVERGENCE LEVEL 3 REACHED — motif z=17.9, morpheme …
tbitcs May 27, 2026
8b177f2
Phases 349-350: Sangam syllable CE marginal (z=1.1), M77 r=0.639 mode…
tbitcs May 27, 2026
c6995d6
Auto-decipher loop: autonomous research protocol + 5 iterations
tbitcs May 27, 2026
2498d28
Auto-decipher loop: 10 iterations — plateau confirmed at Level 3 (16/18)
tbitcs May 27, 2026
a59dc7a
★ ALL 6 CHANNELS STRONG — 18/18 — Claim Level 3 (max)
tbitcs May 27, 2026
e1ae09c
Phase 351: Advancement mine — 42 papers across 6 categories
tbitcs May 27, 2026
c7974b1
Phases 352-357: Advancement experiments — 56% readable, 84 allograph …
tbitcs May 27, 2026
6438cf8
Phases 358-362: Allograph consolidation (400→363), 66% coherent trans…
tbitcs May 27, 2026
3bb3b55
Auto-decipher loop post-consolidation: 18/18 confirmed in 4 iterations
tbitcs May 27, 2026
2029827
Register phases 322-362 as graph experiment nodes + advancement mine …
tbitcs May 27, 2026
b76030d
Final iteration: all experiments registered, mined, and validated
tbitcs May 27, 2026
391442a
Phases 363-370: Deep experiments — 75% fully decoded, 93% coverage, c…
tbitcs May 27, 2026
2519702
Auto-decipher loop: 5 iterations, 18/18 at iter 4, early-stop
tbitcs May 27, 2026
e0e1252
Phases 371-376: 65 guild titles, 348 one-sign-blocked, all motifs dis…
tbitcs May 27, 2026
3c17d8a
Auto-decipher loop: 18/18 at iter 4, early-stop (stable)
tbitcs May 27, 2026
c088452
Mining discovery loop: 1331 papers, 217 insights across 5 targeted ro…
tbitcs May 27, 2026
f134cbe
Register all 12 graph experiment nodes (322-376) + mining discovery loop
tbitcs May 27, 2026
d7bf9f2
25 iterations: all experiments re-run, mining loop (1268 papers), 18/…
tbitcs May 27, 2026
2256cf0
Full cycle: mine (1282 papers) → experiments → auto-loop 15 iter → 18/18
tbitcs May 27, 2026
ec64fda
Integrated research loop: 15 cycles, 970 papers, 15 unique experiment…
tbitcs May 27, 2026
f7c300c
Integrated research loop: 15 cycles run + feature documentation for G…
tbitcs May 27, 2026
9f04638
Phase 377: Full session insights report (email pending — no transport…
tbitcs May 27, 2026
8f289a4
Phases 378-381 + 30 loop iterations: TB transfer, M77, Shu-ilishu, DE…
tbitcs May 28, 2026
0a9b0a3
Integrated research loop: 30 full cycles completed
tbitcs May 28, 2026
5eff736
Phases 382-390: Nine actionable experiments — 91% Parpola, 1252 trans…
tbitcs May 29, 2026
c924fb6
15 graph nodes registered (322-390), foundation check 38/0/9, all ver…
tbitcs May 29, 2026
4970024
Integrated research loop: 15 cycles + updated documentation
tbitcs May 29, 2026
d60c395
15 integrated loop cycles + implementation plan for native UI + dashb…
tbitcs May 29, 2026
85ad3a2
Implement Research Loop native integration (Phases 1-3)
tbitcs May 29, 2026
39da1ac
Phase 4: ResearchLoopPanel — dashboard UI for integrated research loop
tbitcs May 29, 2026
36b8448
Update implementation plan: Phases 1-4 complete
tbitcs May 29, 2026
6d20f29
feat: Research Loop Phases 5-7 — Experiment Builder node, insight-dri…
tbitcs May 29, 2026
6334b75
test: add 20-test suite for Research Loop Phases 5-7
tbitcs May 29, 2026
aa02323
test: automated Playwright + API tests for Research Loop
tbitcs May 29, 2026
4e25c1a
fix: TypeScript interface + API endpoint URL; rebuild frontend
tbitcs May 29, 2026
99891ce
test: deep integration tests for Research Loop pipeline (15 tests)
tbitcs May 29, 2026
3d7fc86
fix: move DB persistence to async API layer + add Job tracking
tbitcs May 29, 2026
1db85a3
feat: wire _execute() to real graph experiments + post-loop synthesis
tbitcs May 29, 2026
7520600
fix: expand insight keywords 6 -> 102 (was extracting 1/972 papers)
tbitcs May 29, 2026
e1ff366
feat: add activity dot to bottom panel Jobs tab when jobs are running
tbitcs May 29, 2026
8b0f771
fix: create research_loop job as 'running' to prevent engine claiming it
tbitcs May 29, 2026
8072ebe
fix: research loop — remap broken kl_comparison experiments, reset al…
tbitcs May 29, 2026
5320660
feat: run foundation check after each research loop, include result i…
tbitcs May 29, 2026
d23212f
chore: session save — research loop diagnosis, cleanup, foundation ch…
tbitcs May 29, 2026
45bc641
feat: run summary dashboard — persist synthesis to DB, /last-run endp…
tbitcs May 29, 2026
c7a8874
feat: research loop v2 — blitz mine + act + anchor candidate staging
tbitcs May 29, 2026
133d4f4
feat: anchor candidate review queue — approve/reject/delete UI + API
tbitcs May 29, 2026
839169f
feat: actionable buttons on all DeciphermentPanel informational badges
tbitcs May 29, 2026
99046b6
feat: automated dashboard — remove Mine+Reload, auto-fetch, auto-insi…
tbitcs May 29, 2026
b4cf1b5
fix: exp_run engine race + remove refresh_insights proposal + expand_…
tbitcs May 29, 2026
df63a05
fix: M77InscriptionLoader fallback to Holdat CSV + exp_run race fix
tbitcs May 29, 2026
02450ee
feat: proposal action buttons track running/done/error state
tbitcs May 29, 2026
fd853aa
chore: session save — UI automation, SA fixes, proposal button states
tbitcs May 29, 2026
191e15a
fix: prevent duplicate experiment runs — reject if same exp_id alread…
tbitcs May 29, 2026
4c76eaf
fix: startup orphan sweep + reduce stall watchdog to 30 min
tbitcs May 29, 2026
538bedd
fix: job duration display in HH:MM:SS format
tbitcs May 29, 2026
878a785
feat: resource-aware scheduling + duplicate-job guard
tbitcs May 29, 2026
46cfa58
chore: specsmith audit remediation + phase inception → architecture
tbitcs May 29, 2026
3d37bce
chore: full AEE phase advancement Inception→Release + research loop v…
tbitcs May 29, 2026
888014d
chore: session close
tbitcs May 29, 2026
a8212f2
feat(ui): fix arrange overlap + HH:MM:SS elapsed + historical ETA (R2…
tbitcs May 29, 2026
22ea87e
fix(ui): crash fix + GPU concurrency guard + pause/resume polishes
tbitcs May 29, 2026
ba019fe
feat: pause works + auto-queue + queue button (no console required)
tbitcs May 29, 2026
3f7ab53
fix(jobs): BottomPanel queue banner not showing after ExperimentBuild…
tbitcs May 29, 2026
f2283e3
chore: specsmith audit pass — add test coverage for R20/R21 + ledger
tbitcs May 29, 2026
7d276e1
UI Feature Sprint: Pause/Resume, Auto-Queue, Arrange Fix, ETA Fix
tbitcs May 29, 2026
c4ce5a2
feat: abort hard-deletes job record + Clear Cache button
tbitcs May 30, 2026
f857658
refactor: move Clear Cache to Settings > System; clear paused/pending…
tbitcs May 30, 2026
878dba3
fix: heartbeat now bumps updated_at so watchdog never kills long SA n…
tbitcs May 30, 2026
d1694ee
fix: Clear Cache now covers all run-state; rename to Clear Cache
tbitcs May 30, 2026
c149e63
chore: add specsmith Warp/Claude/Codex skills
tbitcs May 30, 2026
fca5be7
feat: mobile-responsive sidebar with hamburger toggle
tbitcs May 30, 2026
0c6f533
fix: mobile layout - bottom gap, top bar clutter, padding, iOS safe area
tbitcs May 30, 2026
94efdd9
fix: touch selection and tap targets
tbitcs May 30, 2026
b03bed7
fix: bottom panel tabs now expand on mobile
tbitcs May 30, 2026
08c0cc6
fix: decouple experiment execution from SSE connection — SA always co…
tbitcs May 30, 2026
0974385
fix: HARD BLOCK all automatic email sends
tbitcs May 30, 2026
d3eb8ec
fix: restore email sends - strictly limited to registered recipients …
tbitcs May 30, 2026
03b2152
perf: fix BigramScorer.score_full - bulk CPU→GPU transfer kills 23h S…
tbitcs May 31, 2026
e25006f
perf: BigramScorer always uses NumPy, never CuPy
tbitcs May 31, 2026
c4343de
fix: remove dead _DIAC maketrans that crashes IndusAnchorSetSyllable
tbitcs May 31, 2026
7a806dc
fix: _sse uses json.dumps(default=str) to handle non-serializable LM …
tbitcs May 31, 2026
ee97972
dashboard: done chip + re-run button + fix run_experiment label
tbitcs May 31, 2026
54f1e0b
dashboard: broaden Plan->Run label fix to all runnable action types
tbitcs May 31, 2026
0d46071
decipherment panel: rename Plan SA run -> Run SA, Plan -> Run
tbitcs May 31, 2026
450da53
decipherment panel: busy state + double-click guard
tbitcs May 31, 2026
4986171
decipherment panel: persist done state to localStorage
tbitcs May 31, 2026
1a1f541
fix: persist pending state + SA keyword matching
tbitcs May 31, 2026
45ae5ad
fix: DeciphermentPanel pending state + dismiss + e2e test suite
tbitcs May 31, 2026
4e39b13
fix: propagate experiment chain failures to ✗ Error state
tbitcs May 31, 2026
acf8590
fix: show '⏳ Running…' immediately on click, not only after reload
tbitcs May 31, 2026
069ead5
fix: stop persisting 'pending' to localStorage — prevents stuck Runni…
tbitcs May 31, 2026
b6d653d
fix: use sessionStorage for pending — persists on Ctrl+R, clears on t…
tbitcs May 31, 2026
5c94fe5
fix: filter stale 'pending' from localStorage in _loadDone
tbitcs May 31, 2026
e39c501
feat: overhaul staging review UX
tbitcs Jun 1, 2026
49a8c80
feat: add Unstage All and Re-stage All bulk buttons to staging review
tbitcs Jun 1, 2026
3d9f136
fix: replace loop.run_until_complete() with asyncio.run() in node fun…
tbitcs Jun 1, 2026
cf25afd
feat: persist Glossa AI chat history across sessions
tbitcs Jun 1, 2026
a737e98
fix(backend): use synchronous sqlite3 in node functions — definitivel…
tbitcs Jun 1, 2026
d8b816e
feat: add Archive Reviewed button to StagingReview
tbitcs Jun 1, 2026
5d0b45d
feat: add dismiss button to Done state on dashboard insight items
tbitcs Jun 1, 2026
3bc1519
feat: Major Research Platform Overhaul (Phases A-E) (#34)
tbitcs Jun 2, 2026
f9b79a5
UI Feature Sprint: Pause/Resume, Auto-Queue, Arrange Fix, ETA Fix
tbitcs Jun 2, 2026
86376d4
chore: remove merge conflict resolution helpers (not part of codebase)
tbitcs Jun 2, 2026
562aecc
feat(loop-ux): phase progress strip, collapsed log, auto-expand staging
tbitcs Jun 2, 2026
20f7b6a
feat(signs): add sign glyph image support
tbitcs Jun 2, 2026
863ee72
feat(experiments): canonical experiment IDs with legacy aliases
tbitcs Jun 2, 2026
994403a
feat(anchor): SA delta, recommended tier, accept-recommended, auto-ar…
tbitcs Jun 2, 2026
0c60ae5
feat(signs): add sign glyph image support (Phase 1)
tbitcs Jun 2, 2026
001eceb
feat(anchor): SA delta, recommended tier, accept-recommended, auto-ar…
tbitcs Jun 2, 2026
dd38281
feat(loop-ux): phase progress strip, collapsed log, auto-expand stagi…
tbitcs Jun 2, 2026
2d50ce7
feat(experiments): canonical experiment IDs with legacy aliases (Phas…
tbitcs Jun 2, 2026
ad7c55b
chore: rebuild frontend dist with all Phase 1-4 changes
tbitcs Jun 2, 2026
f611ce2
fix: resolve 6 post-overhaul issues + experiment builder drag-drop
tbitcs Jun 3, 2026
bca9ead
fix(verify-sa): run SA experiment via asyncio background task not eng…
tbitcs Jun 3, 2026
65b454e
fix(loop-ui): prevent UI crash during long research loop runs
tbitcs Jun 3, 2026
16fc732
fix(loop): decouple post-loop completion from SSE connection lifetime
tbitcs Jun 3, 2026
bf8977c
feat: experiment cleanup (20 kept, 126 archived) + explicit SA valida…
tbitcs Jun 3, 2026
e57eaea
feat: formal experiment naming schema + full cross-codebase audit
tbitcs Jun 3, 2026
62fbada
fix: add standalone dismiss (x) button to DeciphermentPanel action bl…
tbitcs Jun 3, 2026
659dce7
fix: prevent archived experiments from being recreated on every restart
tbitcs Jun 3, 2026
59a58e2
fix: prevent SA sign re-approval by excluding archived/anchored candi…
tbitcs Jun 4, 2026
49858bf
fix: make AI-triggered and UI-triggered experiments produce visible J…
tbitcs Jun 4, 2026
a6f59d5
feat: add CLDF data layer with JAMBU/DEDR integration
tbitcs Jun 4, 2026
87ddc38
merge: SA staging dedup fix (agent-a)
tbitcs Jun 4, 2026
93a5202
merge: experiment pipeline fix (agent-b)
tbitcs Jun 4, 2026
b97e108
merge: CLDF data layer (agent-c)
tbitcs Jun 4, 2026
41a5dee
feat: add ProjectConfig layer and wire into pipeline, signs, AG2, and…
tbitcs Jun 4, 2026
5b4a604
merge: project config layer + wiring (agent-d)
tbitcs Jun 4, 2026
79bc2a1
fix: enable drag-drop without prior save + rename phase32/33 experime…
tbitcs Jun 4, 2026
4353e35
fix: server-side persistent dismissal + loop confirm dialog
tbitcs Jun 4, 2026
6429e79
fix: AG2 chat scroll-to-bottom on load, copy-all, per-message copy
tbitcs Jun 4, 2026
e691bd8
merge: persistent dismissal + loop confirm (agent-e)
tbitcs Jun 4, 2026
8b5a940
merge: AG2 chat UX fixes (agent-f)
tbitcs Jun 4, 2026
eabc3c2
merge: experiment builder drag-drop + palette audit (agent-g)
tbitcs Jun 4, 2026
446c810
fix: correct badge visibility logic + test fixtures for dismissal pip…
tbitcs Jun 4, 2026
df6769f
chore: remove temporary playwright output files
tbitcs Jun 4, 2026
17427ad
fix: 100% test pass - metrics timeout guard, test selector corrections
tbitcs Jun 4, 2026
d6af532
feat: add staging prune endpoint + prune button in ResearchLoopPanel
tbitcs Jun 4, 2026
2c028d0
feat: phase advancement system - PhaseAdvancer, phase API, PhaseAdvan…
tbitcs Jun 4, 2026
f8f2715
feat: add SA Multi-Language Comparison node, template, build-sa endpo…
tbitcs Jun 4, 2026
e6f666b
merge: staging prune feature (agent-a)
tbitcs Jun 4, 2026
07a75e8
merge: SA multi-language comparison (agent-b)
tbitcs Jun 4, 2026
4759dd2
merge: phase advancement system (agent-c)
tbitcs Jun 4, 2026
f8046a9
fix: test fixes and e2e coverage for staging prune, SA multi, phase a…
tbitcs Jun 4, 2026
151fe6f
fix: staging review overhaul - optimistic updates, cleanup endpoint, …
tbitcs Jun 4, 2026
be706c4
feat: insights stale flag + experiment results in prompt
tbitcs Jun 4, 2026
9f4048d
feat: insights stale badge + Phase Advancer UX + Research Loop de-emp…
tbitcs Jun 4, 2026
15b76d9
merge: insights stale flag + experiment results in prompt (agent-e)
tbitcs Jun 4, 2026
e13c007
merge: stale badge + Phase Advancer UX + ResearchLoop de-emphasis (ag…
tbitcs Jun 4, 2026
d00018f
test: add insights_stale + stale badge E2E tests
tbitcs Jun 4, 2026
5360f09
fix: clarify Phase Guide vs Paper Mining - remove run_research_loop f…
tbitcs Jun 4, 2026
c2e0410
fix: dashboard metrics cleanup - remove redundant ExperimentRegistry,…
tbitcs Jun 4, 2026
181a505
fix: pass db as keyword arg to queue_graph_experiment (takes 1 positi…
tbitcs Jun 4, 2026
2586e8a
fix: graph_experiment pipeline + OpenAlex budget fallback + Phase Adv…
tbitcs Jun 4, 2026
3cfcb02
feat: promote-to-anchors — POST /staging/promote + PromoteToAnchors UI
tbitcs Jun 4, 2026
3ce1898
fix: remove duplicate experiments, deduplicate build-sa, fix acquire_…
tbitcs Jun 4, 2026
ee6032a
fix: dashboard stuck buttons timeout, Phase 5 display bug, chat text …
tbitcs Jun 4, 2026
f465e68
fix: navigation alias for foundation-check + promote next-steps card
tbitcs Jun 4, 2026
4af3be2
fix: foundation check - auto-fix, remove Dr. Fuls, add phase clarific…
tbitcs Jun 4, 2026
90f03a7
fix: corpus fonts, promotion persistence, phase guide clarity, founda…
tbitcs Jun 4, 2026
aff4b8b
fix: Signs page fonts, Phase 5 validation flow, glossa:regenerate-ins…
tbitcs Jun 4, 2026
7717d48
fix: Phase Guide auto-advances button without user action
tbitcs Jun 4, 2026
3a0fc7a
feat: Phase Guide full sequencing + Phase Highlights card
tbitcs Jun 5, 2026
7e4dd43
fix: Phase Guide button stays inline - no navigation, sequences compl…
tbitcs Jun 5, 2026
d08509a
chore: update project files
tbitcs Jun 5, 2026
6999893
feat: fix sign images with local-only pipeline, add page preview viewer
tbitcs Jun 5, 2026
77a25e1
feat: extract 226 Mahadevan sign glyphs from Appendix I via IIIF
tbitcs Jun 5, 2026
4bba6fc
chore: refresh manifest timestamps after re-extraction
tbitcs Jun 5, 2026
3cdd662
feat: 568 sign images from Mahadevan + lightbox viewer
tbitcs Jun 5, 2026
ffe93a2
fix: resolve 3 experiment failures (nw_semitic LM, CGSA clusters, val…
tbitcs Jun 5, 2026
f7f32f5
fix: phase advancement now completes — backend tracks state properly
tbitcs Jun 5, 2026
4ca8b56
feat: rewrite PhaseAdvancerPanel from scratch + Playwright E2E test
tbitcs Jun 5, 2026
27ae37f
fix: foundation check count, corpus aliases, nw_semitic language
tbitcs Jun 5, 2026
23926e3
fix: restore Phase-31 T3 Zipf result to clear foundation warning
tbitcs Jun 5, 2026
e004838
feat: reading direction, stale foundation fix, action links, error ha…
tbitcs Jun 6, 2026
b5adb7c
fix: research loop crash handling and dict iteration safety
tbitcs Jun 6, 2026
d167522
fix: dict-changed-size in analyze_result, corpus path for direction d…
tbitcs Jun 6, 2026
d642eca
fix: GPU guard queues experiments instead of rejecting them
tbitcs Jun 6, 2026
604d231
fix: phase completion, job queue cleanup, stuck job handling
tbitcs Jun 6, 2026
20c79d7
test: comprehensive Playwright e2e tests for phase/queue/foundation/d…
tbitcs Jun 6, 2026
136cf09
fix: phase advancement now reaches Complete Phase reliably
tbitcs Jun 7, 2026
383f5aa
feat: manual PDF import for discovery + ingest 52 Kalyanaraman papers
tbitcs Jun 7, 2026
5b10253
chore: Kalyanaraman evaluation scripts and deep analysis
tbitcs Jun 7, 2026
5da5e65
feat: anchor quality audit + auto-fix, cleanup 605→285 anchors
tbitcs Jun 7, 2026
5e38d9c
fix: correct reading directions for 7 corpora, verified against sources
tbitcs Jun 7, 2026
cf4420a
feat: synthetic corpus flagging, full integrity check, hide from fron…
tbitcs Jun 7, 2026
7232a8b
chore: full cleanup — removed 60 stale files, clean slate
tbitcs Jun 7, 2026
4cad8ce
feat: mandatory SA validation after anchor promotion
tbitcs Jun 7, 2026
d7750b8
fix: anchor total, stale dashboard, CGSA, SA language parsing; feat: …
tbitcs Jun 7, 2026
9f0a446
feat: DB-backed phase action tracking, insight window persistence, Ph…
tbitcs Jun 7, 2026
b7c4a56
feat: job→phase action lifecycle, advance-all, dependency-aware execu…
tbitcs Jun 7, 2026
29f654e
fix: complete_phase blocked until ALL actions done, advance-all never…
tbitcs Jun 7, 2026
a99aa0b
feat: add CORE.ac.uk + Unpaywall fetchers, switch indus_script to Goo…
tbitcs Jun 7, 2026
8194884
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 7, 2026
0dd145e
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 7, 2026
5e0501b
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 7, 2026
1579386
feat: implement autonomous study loop backend
tbitcs Jun 7, 2026
add2c3a
feat(frontend): rewrite ResearchLoopPanel as Autonomous Study Loop panel
tbitcs Jun 7, 2026
fc0cd05
chore: add frontend dist build artifacts for study loop
tbitcs Jun 7, 2026
005dd6d
chore: normalize dist/index.html line endings
tbitcs Jun 7, 2026
6af0c98
merge: autonomous study loop into phase-next
tbitcs Jun 7, 2026
98a9f0b
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 7, 2026
9307e53
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
edaa71c
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
285c54d
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
857fb70
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
b297355
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
33a3860
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
f031bc2
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
0279e47
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
8ead897
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
7e43152
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
4df379f
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
2a8db98
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
8d5c92d
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
f239cd7
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
e574124
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
11857aa
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
65d88bf
feat: CORE/Unpaywall verify fixes, AI chat action reliability, discov…
tbitcs Jun 8, 2026
1551be8
fix: study loop verify skip/abort logic, add tests and UI clarity (#47)
tbitcs Jun 8, 2026
045ffb6
feat: fix sign images — rebuild manifest, triple-check, miner, fronte…
tbitcs Jun 8, 2026
b013b89
specsmith migration: 0.11.7 → 0.13.0
tbitcs Jun 8, 2026
3c7ff4f
feat: reharvest all sign images - wikimedia + improved fallbacks
tbitcs Jun 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
59 changes: 59 additions & 0 deletions .agents/skills/specsmith-audit/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
name: specsmith-audit
description: Run specsmith audit to check for governance drift between requirements, tests, and architecture. Required before advancing an AEE phase.
---

# Specsmith Audit

Checks the project for drift between requirements (ARCHITECTURE.md), test cases, and the codebase. Must pass before advancing an AEE phase.

## How to run

```bash
specsmith audit
```

## Interpreting results

```
29 PASS ← all requirements have matching tests and implementation
2 WARN ← drift detected — investigate these
0 FAIL
```

**All items must be PASS or suppressed before `specsmith phase advance`.**

## When a WARN appears

1. Read the warning — it will reference a requirement ID (e.g. `R20`) and describe what's missing
2. Fix it: add the missing test, update ARCHITECTURE.md, or implement the requirement
3. Re-run `specsmith audit` to confirm it passes
4. If it's a confirmed false positive: `specsmith audit --suppress <CODE>`

## Suppressing a false positive

Only suppress if you've verified the requirement IS met but the audit can't detect it automatically:

```bash
specsmith audit --suppress SEAL-XXXX-001
```

Suppressions are permanent and stored in governance state — use them sparingly.

## Common causes of WARN

- Requirement in ARCHITECTURE.md has no corresponding test case
- Test exists but requirement ID reference is missing from the test
- Implementation exists but the architecture doc wasn't updated to match

## After fixing all warnings

```bash
specsmith audit # confirm all pass
specsmith phase advance # advance the phase
specsmith save # commit the phase bump
```

## Quick audit before a session

Run `specsmith audit` at the start of a session to catch any drift from the previous session before making new changes.
51 changes: 51 additions & 0 deletions .agents/skills/specsmith-save/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
name: specsmith-save
description: Run specsmith save to commit and push all current changes with governance state backup. Use at the end of any work session or after completing a feature/fix.
---

# Specsmith Save

Saves governance state: backs up the ESDB, commits any staged/unstaged changes, and pushes to the remote.

## When to use

- At the end of any work session
- After implementing a feature, fix, or refactor
- After advancing a phase
- Whenever the user says "save", "commit and push", or "specsmith save"

## How to run

```bash
specsmith save
```

## What it does (in order)

1. **ESDB backup** — snapshots the epistemic state database
2. **Commit** — stages all changes and commits with a governance-aware message (or reports "Nothing to commit")
3. **Push** — pushes the branch to origin (or reports "Everything up-to-date")

## Expected successful output

```
✓ esdb_backup: JSON fallback (no WAL to backup)
✓ commit: Nothing to commit ← or a commit hash
✓ push: Everything up-to-date ← or "pushed to origin/phase-next"
```

## If there are changes to commit

Specsmith will auto-stage and commit. It generates a governance-aware commit message from the diff. You can also pre-stage and commit manually first:

```bash
git add -A
git commit -m "feat: description

Co-Authored-By: Oz <oz-agent@warp.dev>"
specsmith save # will see nothing to commit, just pushes
```

## Do NOT use `git push` directly

Always use `specsmith save` — it ensures the ESDB backup runs before the push, keeping governance state consistent with the remote.
69 changes: 69 additions & 0 deletions .agents/skills/specsmith/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
name: specsmith
description: Reference for the specsmith AEE governance tool used in this project. Use this to understand specsmith commands, the session workflow, and how to interact with the governance layer correctly.
---

# Specsmith — Project Governance Tool

Specsmith is the AEE (Agile Epistemic Engineering) governance CLI used in this project. It manages requirements, phases, audit trails, and session state. It wraps git with governance-aware commits and backs up the epistemic state DB (ESDB).

## Key concepts

- **ESDB** — Epistemic State Database. Tracks certainty, audit state, session memory. Backed up on `specsmith save`.
- **Phases** — AEE lifecycle: Inception → Elaboration → Construction → Transition → Validation → Hardening → Release. Advance with `specsmith phase advance`.
- **Ledger** — Running log of changes in `LEDGER.md`. Auto-updated by commits.
- **Audit** — Checks requirements vs tests vs architecture for drift. Run before advancing a phase.
- **Save** — ESDB backup + governance-aware git commit + push.

## Session workflow

```
1. specsmith audit # check for drift before working
2. <make code changes>
3. specsmith save # commit + push + ESDB backup
```

## Common commands

| Command | What it does |
|---------|-------------|
| `specsmith save` | ESDB backup → commit (if needed) → push |
| `specsmith audit` | Drift/health check — requirements vs tests vs arch |
| `specsmith audit --suppress <CODE>` | Accept a known false positive |
| `specsmith phase` | Show current AEE phase |
| `specsmith phase advance` | Advance to the next phase (requires clean audit) |
| `specsmith commit` | Governance-aware commit (wraps git commit) |
| `specsmith ledger` | Show/manage the change ledger |
| `specsmith compress` | Compress old ledger entries |
| `specsmith req` | Manage requirements |
| `specsmith test` | Manage test cases |
| `specsmith status` | VCS/CI/PR status |

## Commit conventions

Specsmith commits follow: `type: message` where type is one of:
`feat`, `fix`, `refactor`, `test`, `docs`, `chore`, `perf`

Always append `Co-Authored-By: Oz <oz-agent@warp.dev>` when committing as an AI agent.

## Important rules

- **Never use `git commit` directly** — use `specsmith save` or `specsmith commit` so governance state stays consistent.
- **Run `specsmith audit` before advancing a phase** — a phase advance with drift will fail.
- **Suppressed audit findings** are stored permanently; only suppress genuine false positives.
- After `specsmith save` outputs `✓ push: Everything up-to-date` with nothing to commit, the repo is fully clean.

## Audit result codes

- `PASS` — requirement/test/arch is consistent
- `WARN` — drift detected, investigate
- `SKIP` / suppressed — accepted false positive
- Numbers like `R20`, `R21` — requirement IDs in ARCHITECTURE.md

## Phase advancement

```bash
specsmith audit # must be all-pass (or suppressed)
specsmith phase advance # bumps phase, writes ledger entry
specsmith save # commit the phase bump
```
43 changes: 26 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
frontend-tests:
name: Frontend tests (Playwright)
runs-on: ubuntu-latest
timeout-minutes: 25
timeout-minutes: 35 # includes 2-min research-loop SSE test
needs: [] # run in parallel with backend-tests

steps:
Expand All @@ -87,6 +87,24 @@ jobs:
python -m pip install --upgrade pip
pip install -e ".[dev]" || pip install -e "." || true

# Build the frontend FIRST so the backend can mount dist/ via StaticFiles
# when it starts. If the frontend is built after the backend starts, the
# StaticFiles mount is never registered and Playwright gets 404s.
- name: Set up Node.js 20
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: frontend/package-lock.json

- name: Install frontend dependencies
working-directory: frontend
run: npm ci

- name: Build frontend
working-directory: frontend
run: npm run build

- name: Start backend in background
working-directory: backend
env:
Expand All @@ -98,7 +116,7 @@ jobs:
--host 127.0.0.1 --port 8001 \
--log-level warning &
echo $! > /tmp/backend.pid
# Wait for backend to be healthy (up to 30s)
# Wait for backend to be healthy (up to 30s) AND frontend to be served
for i in $(seq 1 30); do
if curl -sf http://127.0.0.1:8001/api/v1/health > /dev/null 2>&1; then
echo "Backend healthy after ${i}s"
Expand All @@ -107,21 +125,8 @@ jobs:
sleep 1
done
curl -sf http://127.0.0.1:8001/api/v1/health || echo "Backend may not be running"

- name: Set up Node.js 20
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: frontend/package-lock.json

- name: Install frontend dependencies
working-directory: frontend
run: npm ci

- name: Build frontend
working-directory: frontend
run: npm run build
# Verify frontend is served
curl -sf http://127.0.0.1:8001/ > /dev/null && echo "Frontend OK" || echo "Frontend not served"

- name: Install Playwright browsers (Chromium only)
working-directory: frontend
Expand All @@ -132,6 +137,10 @@ jobs:
env:
CI: "true"
BACKEND_RUNNING: "true"
# Backend at port 8001 serves both the built frontend (StaticFiles) and
# the API on the same origin. No separate Vite preview server needed.
PLAYWRIGHT_USE_BACKEND: "1"
PLAYWRIGHT_BACKEND_URL: "http://127.0.0.1:8001"
run: |
npx playwright test \
--reporter=github \
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ temp/
*.db-wal

# ---- Local config / secrets ----
project.yml
.env
.env.*
*.pem
Expand Down Expand Up @@ -147,6 +148,7 @@ data/.keys.json

# ---- Database files ----
data/glossa.db
frontend/data/glossa.db

# ---- Backend runtime logs at root ----
backend/uvicorn_stdout.log
Expand Down Expand Up @@ -216,5 +218,8 @@ docs/*.bak
*.fdb_latexmk
*.synctex.gz

# Bulk mine outputs — large JSON files (regenerable from scripts)
outputs/phase*_bulk_mine_*.json

# Private correspondence — local context only, never pushed
.correspondence/
Empty file added =
Empty file.
23 changes: 23 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,26 @@ The following project-specific rule files apply to all sessions:

- `docs/research/NORMALIZATION_RULES.md` — Indus sign normalization rules for
corpus processing and sign-ID canonicalization.

---

## MCP server

A FastMCP server lives at `backend/glossa_mcp/server.py` and exposes 27 tools
for querying and controlling the backend without manual API calls:

- **Status/metrics** — `get_status`, `get_system_metrics`
- **Jobs** — `list_jobs`, `get_job`, `create_job`, `cancel_job`, `get_job_results`
- **Experiments** — `list_experiments`, `get_experiment`, `run_experiment`
- **Research loop** — `start_research_loop`, `get_research_loop_status`,
`stop_research_loop`, `get_research_loop_results`, `get_anchor_staging`
- **Foundation check** — `run_foundation_check`
- **Discovery** — `list_discovery_items`, `get_discovery_stats`,
`trigger_discovery_fetch`, `update_discovery_item_status`
- **Dashboard** — `get_latest_insight`, `get_dashboard_highlights`
- **Anchor sets** — `list_anchor_sets`, `get_anchor_set`, `create_anchor_set`
- **Reports** — `list_reports`, `get_report`

The server connects to the running backend at `GLOSSA_BASE_URL`
(default: `http://127.0.0.1:8001`). Tools return clean JSON error objects when
the backend is unreachable — they never crash the MCP process.
Loading
Loading