Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
343 commits
Select commit Hold shift + click to select a range
c2b9d47
fix(seed): document immutable eligibility SQL
Aug 26, 2026
a60364a
style: make tuning command assembly explicit
Aug 26, 2026
fbc129c
Merge branch 'feat/dashboard-case-metrics' of https://github.com/Cont…
Aug 26, 2026
444c2ef
fix(dashboard): address current review findings
Aug 26, 2026
9a8c085
fix(ask): keep project evidence out of event lineage
Aug 26, 2026
eaec942
Merge remote-tracking branch 'origin/feat/dashboard-case-metrics' int…
Aug 26, 2026
827978a
Merge remote-tracking branch 'origin/feat/dashboard-case-metrics' int…
Aug 26, 2026
c8e217c
test(ask): lock graph and project boundaries
Aug 26, 2026
e641703
Merge commit 'eaec942f68f02bfc4f531a4112c2b86c3f49158c' into fix/pr68…
Aug 26, 2026
5144535
fix(ask): preserve project evidence in dense windows
Aug 26, 2026
63372cc
fix(orchestrator): register remote embedding agent
Aug 26, 2026
88c2213
build(orchestrator): pin provider embedding runtime
Aug 26, 2026
ef7aebd
docs(orchestrator): separate embedding bootstrap boundary
Aug 26, 2026
8775331
fix(ui): keep missing-evidence guidance accurate
Aug 26, 2026
a18eb20
fix(ui): explain automatic evidence retry
Aug 26, 2026
759a3de
fix(operations): reanalyze missing facts on new evidence
Aug 26, 2026
e576997
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
34469d1
fix(runtime): restore semantic backfill contracts
Aug 26, 2026
7239f50
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
dd65e92
fix(ask): keep project evidence first
Aug 26, 2026
8333468
fix(worker): persist operational cases before optional content enrich…
Aug 26, 2026
9eb0535
Merge branch 'fix/ask-auto-source-composer' of https://github.com/Con…
Aug 26, 2026
9d4210c
Merge pull request #687 from ContextualWisdomLab/feat/semantic-backfi…
seonghobae Aug 26, 2026
9a7fac0
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
e987684
fix(worker): preserve completed evidence on sibling retry outage
Aug 26, 2026
146376b
Merge commit '9d4210c04fb0aeec17e885bed097f400c7018269' into HEAD
Aug 26, 2026
6ec74ff
fix(operations): use orchestrator auto model selector
Aug 26, 2026
082e5ca
Merge branch 'fix/ask-auto-source-composer' of https://github.com/Con…
Aug 26, 2026
3889994
fix(compose): install orchestrator runtime dependency
Aug 26, 2026
153ca50
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
891e0f9
perf: bulk semantic embedding backfill
Aug 26, 2026
7398b8e
fix(operations): address orchestrator auto deployment
Aug 26, 2026
967da26
Merge branch 'fix/ask-auto-source-composer' of https://github.com/Con…
Aug 26, 2026
1d16c40
perf: prepare semantic backfill batch concurrently
Aug 26, 2026
a7cda9b
fix: isolate operations analysis from embedding batch
Aug 26, 2026
c5e6590
Revert "fix: isolate operations analysis from embedding batch"
Aug 26, 2026
87b3bd0
Revert "perf: prepare semantic backfill batch concurrently"
Aug 26, 2026
e27c605
Revert "perf: bulk semantic embedding backfill"
Aug 26, 2026
da8ec79
fix(runtime): pin bounded provider failover
Aug 26, 2026
5b874f4
fix(operations): invalidate stale evidence windows
Aug 26, 2026
1cdb23e
feat(embedding): add atomic cross-post bulk backfill
Aug 26, 2026
f469a3b
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
f07f713
build(backend): include embedding backfill operator
Aug 26, 2026
b597b01
fix(ask): find related source evidence automatically (#688)
seonghobae Aug 26, 2026
fbf7afb
fix(deps): pin accepted measurement owner release (#689)
seonghobae Aug 26, 2026
70e4575
perf(embedding): pack batches to advertised body limit
Aug 26, 2026
bcfb3e3
build(runtime): pin advertised embedding limits
Aug 26, 2026
111cbcd
fix(runtime): separate API and durable queue workers
Aug 26, 2026
8049468
fix(runtime): restart dedicated worker after process failure
Aug 26, 2026
3a41e31
build(runtime): pin request-deadline failover
Aug 26, 2026
17df815
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
c6d8b2f
fix(operations): send exact request deadline
Aug 26, 2026
311459d
fix(embeddings): honor orchestrator polling cadence
Aug 26, 2026
0271499
fix(embeddings): wait within durable batch contract
Aug 26, 2026
c5fc9b5
build(embeddings): pin true provider bulk runtime
Aug 26, 2026
cbc63bd
feat(ontology): add evidence-bound product catalog
Aug 26, 2026
4c39895
perf(worker): reuse authorized evidence window
Aug 26, 2026
d8c3251
fix(products): enforce evidence-post visibility
Aug 26, 2026
b56921f
fix(embeddings): surface sanitized provider failures
Aug 26, 2026
19c9c9e
test: remove redundant settings lambdas
Aug 26, 2026
d0bbc76
Merge dashboard case metrics into Ask source composer
Aug 26, 2026
d92d094
build(orchestrator): pin OpenAI embedding limits
Aug 26, 2026
12400eb
build(orchestrator): install exact embedding tokenizer
Aug 26, 2026
a1c60f6
fix(embeddings): surface oversized backfill units
Aug 26, 2026
20e1a5d
build(orchestrator): pin Rust embedding packer
Aug 26, 2026
f20c0af
fix(products): preserve primary evidence on extraction failure
Aug 26, 2026
4fb2a86
build(orchestrator): pin durable embedding shards
Aug 26, 2026
2e3317b
build(orchestrator): pin PyO3 embedding packer
Aug 26, 2026
a1b22d9
test(workers): run Ask settlement through dedicated consumer
Aug 26, 2026
3323bfb
Merge branch 'fix/ask-auto-source-composer' of https://github.com/Con…
Aug 26, 2026
8fa7e9b
fix(orchestrator): bind configured OpenAI embedding authority
Aug 26, 2026
adab218
fix(runtime): pin hardened durable embedding gateway
Aug 26, 2026
e3fc11a
fix(runtime): colocate PyO3 extension with source package
Aug 26, 2026
e252116
fix(orchestrator): keep embedding selection upstream
Aug 26, 2026
6d1b870
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
afcb731
fix(security): audit product evidence SQL fragment
Aug 26, 2026
d5d3897
fix(backfill): bound durable jobs by provider input contract
Aug 26, 2026
9e6050f
fix(backfill): consume advertised input ceiling
Aug 26, 2026
d676056
fix(orchestrator): propagate post session in payload
Aug 26, 2026
bb0b9ce
fix(runtime): restore configured embedding capability
Aug 26, 2026
7e292a7
merge: preserve post-scoped orchestrator sessions
Aug 26, 2026
f8d1a7d
chore(runtime): pin post-session embedding gateway
Aug 26, 2026
ccc9c27
fix: bind product evidence to source text
Aug 26, 2026
e038410
fix(orchestrator): preserve upstream embedding discovery
Aug 26, 2026
84c4c59
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
0e85d4c
Merge remote-tracking branch 'origin/feat/product-semantic-catalog' i…
Aug 26, 2026
50f3bf8
test(security): account for product evidence SQL audit
Aug 26, 2026
88bfa26
chore(runtime): pin per-input session gateway
Aug 26, 2026
613a461
fix(orchestrator): restore explicit embedding capability
Aug 26, 2026
a466ba6
fix(orchestrator): keep model selection upstream
Aug 26, 2026
583059e
fix: keep product evidence focal
Aug 26, 2026
1e861ea
fix(orchestrator): pin embedding auto-discovery
Aug 26, 2026
87b8b4d
refactor(math): delete unused Python vector arithmetic
Aug 26, 2026
217e245
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
776eee9
fix(embeddings): bound candidate packing scan
Aug 26, 2026
7cc00b3
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
39ebe36
docs(adr): correct accelerator ownership boundary
Aug 26, 2026
4dc0f06
chore(runtime): pin hardened embedding gateway
Aug 26, 2026
12cfb5c
style(test): separate embedding transport cases
Aug 26, 2026
4003ed2
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
48e6a99
fix(orchestrator): restore explicit embedding capability
Aug 26, 2026
7fc0df5
fix(orchestrator): restore explicit embedding capability
Aug 26, 2026
999063d
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
2166850
docs(gap): record embedding persistence bottleneck
Aug 26, 2026
03162a9
fix(worker): report durable consumer progress
Aug 26, 2026
2ee443e
chore(runtime): pin reviewed embedding failover
Aug 26, 2026
a3cd34c
fix(queue): requeue missing operations evidence
Aug 26, 2026
a31e56e
test(compose): bind gateway auth contract
Aug 26, 2026
efd5bf1
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
33f5543
fix(queue): wake complete posts missing case analysis
Aug 26, 2026
f07cef0
fix(orchestrator): preserve upstream model ownership
Aug 26, 2026
ce3869c
chore(runtime): pin structured judge failover
Aug 26, 2026
d18e8b7
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
cdd499b
Merge pull request #692 from ContextualWisdomLab/feat/product-semanti…
seonghobae Aug 26, 2026
5c7e7cf
chore(runtime): pin rebased embedding gateway
Aug 26, 2026
dc3ebb6
Merge pull request #697 from ContextualWisdomLab/fix/python-vector-ma…
seonghobae Aug 26, 2026
5b6f78e
fix(backfill): align current analysis selection
Aug 26, 2026
32b38e9
chore(runtime): pin claimed embedding recovery
Aug 26, 2026
05be18d
fix(runtime): defer unadmitted analysis jobs
Aug 26, 2026
a116d57
chore: advance orchestrator embedding owner pin
Aug 26, 2026
18be265
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
7bfa4e1
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
a60df95
fix(database): repair interrupted concurrent indexes
Aug 26, 2026
8163ba9
fix(database): stop rebuilding superseded search indexes
Aug 26, 2026
d502ee4
chore: advance orchestrator embedding owner pin
Aug 26, 2026
c747fcf
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
6b9d74d
fix(products): backfill complete historical posts
Aug 26, 2026
9377b84
fix(embeddings): forbid caller-selected models
Aug 26, 2026
543930a
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
ae12915
chore: pin request-scoped readiness runtime
Aug 26, 2026
0feb7f7
feat: preserve overlapping voice semantic classifications (#694)
seonghobae Aug 26, 2026
fef16f6
fix(runtime): prioritize dashboard case evidence
Aug 26, 2026
d1cec3f
Merge remote-tracking branch 'origin/fix/ask-auto-source-composer' in…
Aug 26, 2026
c4db943
fix(package): sync packaged ontology vocabulary
Aug 26, 2026
a2a8df4
chore: pin reviewed readiness runtime
Aug 26, 2026
50057ff
fix(config): remove embedding model selector
Aug 26, 2026
7adb7a4
feat(embeddings): deliver durable semantic backfill runtime (#693)
seonghobae Aug 26, 2026
aa55d89
chore: pin direct-conduct readiness runtime
Aug 26, 2026
8d5a39f
chore: pin structured admission runtime
Aug 26, 2026
632b1e8
Merge remote-tracking branch 'origin/main' into codex/pr640-restack
Aug 26, 2026
93c5b6f
fix(stack): preserve current main contracts
Aug 26, 2026
f075b0e
chore: pin durable readiness runtime
Aug 26, 2026
fe00f81
chore: pin readiness evidence expiry runtime
Aug 26, 2026
ca3b9e7
fix(stack): preserve Ask evidence contracts
Aug 26, 2026
4c6fca1
fix(stack): restore merged service and evidence contracts
Aug 26, 2026
4136fcb
fix(ask): preserve verification in evidence timeline
Aug 26, 2026
39cb95e
Merge remote-tracking branch 'origin/feat/dashboard-case-metrics' int…
Aug 26, 2026
d784135
merge: keep one Ask evidence presentation
Aug 26, 2026
c15b2ec
fix(auth): restore shared post visibility import
Aug 26, 2026
0f78ca0
chore: pin durable readiness runtime
Aug 26, 2026
03fa84d
fix: persist bounded ingestion failure provenance
Aug 26, 2026
26bfea6
docs(adr): resolve voice taxonomy identifier collision
Aug 26, 2026
3ed758d
fix: assign unique failure migration ordinal
Aug 26, 2026
5ec0f40
test: reject malformed failure provenance
Aug 26, 2026
e5a483e
fix: isolate immutable orchestrator image tags
Aug 26, 2026
0641797
fix: retain bounded ingestion exception class
Aug 26, 2026
58659cb
fix(ops): health-gate API on durable worker
Aug 26, 2026
1e01892
fix: constrain ingestion failure taxonomy
Aug 26, 2026
e317470
Merge dashboard case metrics into post-content provenance
Aug 26, 2026
045e52e
Merge dashboard case metrics into post-content provenance
Aug 26, 2026
4ecb498
Merge latest dashboard case metrics into post-content provenance
Aug 26, 2026
0b906a9
fix: preserve bounded post-content failure provenance (#703)
seonghobae Aug 26, 2026
ad26414
fix: require structured operations case responses
Aug 26, 2026
917a7b0
Merge remote-tracking branch 'origin/fix/post-content-failure-provena…
Aug 26, 2026
dfd99c2
fix: retain incomplete-evidence failure context
Aug 26, 2026
ff536af
Merge remote-tracking branch 'origin/feat/dashboard-case-metrics' int…
Aug 26, 2026
b08c4f0
fix: retain incomplete-evidence failure context
Aug 26, 2026
4f66f9f
fix: pin structured readiness failover runtime
Aug 26, 2026
446e1fd
fix: pin reviewed structured failover runtime
Aug 26, 2026
c7632f1
fix(schema): reserve failure validation migration 0234
Aug 26, 2026
6b9b84e
Merge pull request #706 from ContextualWisdomLab/fix/post-content-fai…
seonghobae Aug 26, 2026
cb08631
fix(migration): forward voice replay guard to live stack (#707)
seonghobae Aug 26, 2026
78f9e5b
fix: complete operations response evidence contract (#708)
seonghobae Aug 26, 2026
17b25b3
feat(ontology): govern complete Voice-of-X taxonomy (ADR 0232)
seonghobae Aug 26, 2026
09838e1
fix(ontology): separate post voices from organization relations
Aug 26, 2026
fea73e1
docs: align Voice-of-X changelog vocabulary
Aug 26, 2026
410fc2a
fix(ontology): preserve expanded post voice assertions
Aug 26, 2026
88478a7
Merge PR #713 post-voice taxonomy contract
Aug 26, 2026
876534d
docs: align stacked Voice-of-X changelog
Aug 26, 2026
fa9f0ae
Merge latest PR #713 taxonomy contract
Aug 26, 2026
a62978b
test: match HTTP response-header transport contract
Aug 26, 2026
5746c57
ci: scope Python compatibility scan
Aug 26, 2026
3cc44e8
docs: refresh Dashboard exact-head gap evidence
Aug 26, 2026
5594029
Merge pull request #715 from ContextualWisdomLab/codex/pr640-http-tes…
seonghobae Aug 26, 2026
eed7cab
fix: restore Global Ask worker capabilities
Aug 26, 2026
c7e961b
docs: record Dashboard worker follow-up evidence
Aug 26, 2026
c142c4e
Merge pull request #722 from ContextualWisdomLab/codex/pr640-http-tes…
seonghobae Aug 26, 2026
353dfd0
fix(ui): replace internal-boundary customer copy (#727)
seonghobae Aug 26, 2026
b3befa8
test(storybook): cover Global Ask next action (#730)
seonghobae Aug 26, 2026
c681a40
fix(api): keep recovery guidance customer-facing
Aug 26, 2026
ebfe60a
ops: capture worker cgroup memory evidence (#725)
seonghobae Aug 26, 2026
cede3ad
feat(leftover): persist leftover-map explained share (ADR 0232) (#728)
seonghobae Aug 26, 2026
f71fac4
feat(ontology): publish DOT/FJA worker-function taxonomy (#709)
seonghobae Aug 27, 2026
f3decf0
feat(ontology): add evidence-bound occupational constructs (#718)
seonghobae Aug 27, 2026
2cc46b4
feat: extract evidence-bound occupational constructs (#726)
seonghobae Aug 27, 2026
e357954
feat(ontology): navigate occupational construct evidence (#733)
seonghobae Aug 27, 2026
794a0c1
feat(ontology): expand source-post Voice-of-X taxonomy (ADR 0246) (#713)
seonghobae Aug 27, 2026
c832254
feat(ontology): add FJA I/O-Psychology cognitive, affective & behavio…
seonghobae Aug 27, 2026
30cc525
fix(ui): keep customer copy action-oriented; add ADR 0237 accelerator…
seonghobae Aug 27, 2026
306e31c
feat: publish current-main external lineage contract (#704)
seonghobae Aug 27, 2026
bd73e0a
fix: pin validated structured workflow runtime (#711)
seonghobae Aug 27, 2026
37dbd00
ci: cancel stale test runs when PR closes (#720)
seonghobae Aug 27, 2026
311f576
feat(ontology): publish source-grounded occupational taxonomy (supers…
seonghobae Aug 27, 2026
c315471
feat: persist TEPP asynchronous lifecycle evidence (#657)
seonghobae Aug 27, 2026
1c140b6
docs: refresh gap baseline with merged occupational-semantic delivery
seonghobae Aug 27, 2026
9eee4c1
feat: persist leftover-map unexplained leftover share (ADR 0233) (#750)
seonghobae Aug 27, 2026
d95a46d
feat(semantic): ingest evidence-bound conversation turns (#700)
seonghobae Aug 27, 2026
2b2d26f
feat(ask): honor optional knowledge cutoff on Global Ask (#658)
seonghobae Aug 27, 2026
fed144b
docs(gap-baseline): record 2026-08-27 delivery snapshot (#757)
seonghobae Aug 27, 2026
f969ba8
feat(api,ui): expose FJA worker-function I/O-Psychology profiles and …
seonghobae Aug 27, 2026
e3a5b03
fix: restore Running action and Compose contracts (#639)
seonghobae Aug 27, 2026
ad7a862
feat(ontology): persist evidence-bearing Voice-of-X combinations (#717)
seonghobae Aug 27, 2026
2031f40
fix(semantic): preserve graph fact source provenance (#632)
seonghobae Aug 27, 2026
66db197
feat(ontology): promote O*NET occupation-rating stack onto main (#759)
seonghobae Aug 27, 2026
f4c3c47
docs(gap-baseline): record #700/#658/#632/#759 promotions (#760)
seonghobae Aug 27, 2026
96109cf
feat(ontology): search assertion-backed occupational constructs (#755)
seonghobae Aug 27, 2026
517c6fb
perf(web): release provider work and bound landing reads (#629)
seonghobae Aug 27, 2026
2ee21bb
feat(ontology): promote temporal primary Voice history onto main (ADR…
seonghobae Aug 27, 2026
fe17057
docs(gap-baseline): record #629 provider-work release and #761 Voice …
Aug 27, 2026
617937c
feat(ui): share one token-backed status notice (#643)
seonghobae Aug 27, 2026
a42c820
perf(frontend): split conditional workspace surfaces (#644)
seonghobae Aug 27, 2026
bbb1919
docs(gap-baseline): record #629 provider release, #643 status notice,…
Aug 27, 2026
4f9e1ad
feat(projects): evidence-bound project history (ADR 0243) (#762)
seonghobae Aug 27, 2026
ac9696f
test(voice): prove ADR 0252 A→B→A history on live PostgreSQL (#763)
seonghobae Aug 27, 2026
7d92003
test: lift package coverage 93% to 95% (observability, summary-parse,…
seonghobae Aug 27, 2026
604def5
docs(gap-baseline): add #763/#764 deliveries and dedupe the delivery …
seonghobae Aug 27, 2026
f09146e
test: lift project_history.py coverage 81% to 99% (#766)
seonghobae Aug 27, 2026
c0c952f
test: lift post_summary.py coverage 89% to 91% (#767)
seonghobae Aug 27, 2026
567b6e1
test: lift post_summary.py coverage 91% to 92% (JSON response path) (…
seonghobae Aug 27, 2026
e4f1049
docs(adr): wire doctoring map to governing ADRs and fix broken links …
seonghobae Aug 27, 2026
edf22ee
test: lift similar_voc.py coverage 79% to 98% (#773)
seonghobae Aug 28, 2026
1640ce0
feat: persist evidence-bound product relations (#742) (#776)
seonghobae Aug 28, 2026
5fd5096
test: match product project target identifier (#777)
seonghobae Aug 28, 2026
fc13aca
feat(reports): persist leftover-map explained leftover share (v2.23.0)
seonghobae Aug 28, 2026
56c1952
feat(dashboard): restack evidence operations on current main
Aug 28, 2026
3270c2b
fix(ui): describe project evidence as a customer action
Aug 28, 2026
902ade5
fix(compose): align orchestrator image provenance
Aug 28, 2026
83de508
test(make): follow the locked development environment
Aug 28, 2026
22fd1fe
fix(runtime): keep queue consumers in the worker service
Aug 28, 2026
4f899d5
fix(tests): exercise dedicated Ask and owner ranking evidence
Aug 28, 2026
9fbd616
fix(rankings): consume owner classic contribution envelope
Aug 28, 2026
97050c7
fix(telemetry): use maintained OTel log handler
Aug 28, 2026
61692c6
docs(product): align exact ownership and customer actions
Aug 28, 2026
824b77e
test(worker): make health fallback explicit
Aug 28, 2026
53ee2a5
fix(voice): render canonical process category
Aug 28, 2026
9b8cbbc
build(orchestrator): verify pinned runtime inputs
Aug 28, 2026
b1cce04
fix(i18n): translate Ask recovery actions
Aug 28, 2026
9d917b1
fix(frontend): share canonical Voice labels
Aug 28, 2026
f0bc98e
fix(dashboard): limit hidden evidence retry facts
Aug 28, 2026
bdd7531
fix: restore exact PR #716 Dashboard delivery slice (#778)
seonghobae Aug 28, 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
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.git
.codegraph
.venv
frontend/node_modules
frontend/dist
frontend/storybook-static
**/__pycache__
**/.pytest_cache
3 changes: 2 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ MCP_RATE_LIMIT_WINDOW_SECONDS=
# running contextual-orchestrator to turn the channels on.
ORCHESTRATOR_BASE_URL=
ORCHESTRATOR_API_KEY=
SOURCE_RESEARCH_MAXIMUM_LEADS=
SOURCE_RESEARCH_MAXIMUM_RESULTS=

# GitHub workflows inject the canonical provider names from masked secrets.
# Non-GitHub Compose runs also accept the operator's ~/.env compatibility
Expand All @@ -49,7 +51,6 @@ LLM_GATEWAY_API_URL=
# Compatibility alias; LLM_GATEWAY_API_URL wins when both are set.
LLM_GATEWAY_URL=
LLM_GATEWAY_API_KEY=
LLM_GATEWAY_EMBEDDING_MODEL=
LLM_API_GATEWAY=
LLM_API_KEY=
CALDAV_BASE_URL=
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ permissions:
contents: read

concurrency:
group: tests-${{ github.ref }}
# A merged pull request can report the base ref on ``closed``. Keying PR
# events by number lets that close run cancel an older queued synchronize
# run for the same PR instead of consuming runners after the PR is closed.
group: tests-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ __pycache__/
.codegraph/
.env
.coverage

# Local agent worktree scratch (never commit)
.worktrees/
67 changes: 60 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ documents unless an ADR explicitly promotes a decision from them --
to its governing ADR. Update research notes as literature changes; never
use them to introduce an untracked architecture decision.

Customer-facing copy must help the reader take the next product action. Do
not expose implementation boundaries, provider or package names, schema
versions, internal status or reason codes, environment variables, transport
setup, hashes, or developer remediation instructions as explanatory UI copy.
Keep that evidence in governed audit and administrator surfaces and logs;
translate a customer-visible state into the source, decision, retry, or
administrator action the reader can actually take.

## Hard rule: no real data in repository artifacts

This repository ships **synthetic fixtures only** (`lineageweave/fixtures.py`)
Expand Down Expand Up @@ -188,8 +196,10 @@ contextual-orchestrator owns model discovery and selection.

`NullEmbeddingClient`, `NullAdjudicationClient`,
`NullKeymanExtractionClient`, `NullEntityRelationshipClient`,
`NullPostSummaryClient`, `NullPostChatClient`, and
`NullCommitmentExtractionClient` (and any new channel client you add)
`NullPostSummaryClient`, `NullPostChatClient`,
`NullCommitmentExtractionClient`, `NullRelationVerificationClient`,
`NullClaimVerificationClient`, and `NullSourceResearchClient`
(and any new channel client you add)
must set `available = False` and make their channel dropped +
renormalized (`reconstruct.active_weights`), never silently return a
placeholder score, invented Keyman, guessed relationship, fabricated
Expand All @@ -202,6 +212,14 @@ adjudication does -- never a raw LLM API. Demo TEPP seed goes through
envelope is Failed (`tepp_not_available` / `tepp_result_not_persisted`),
never a fabricated theta or a local psychometric substitute.

Public source-reference research (ADR 0268) is a post-scoped write action
on existing semantic units or image regions. Only `visibility_code=public`
posts may send lead text to SearXNG or retrieve a result URL. Private posts
fail closed without egress. Redirects and non-global targets are rejected.
Unavailable search, retrieval, or adjudication is `research_unavailable`,
never a fabricated supported/refuted judgment. Global Ask public
verification (ADR 0215) still never fetches result URLs.

The lineage `text` channel follows [ADR 0190](docs/adr/0190-lineage-text-channel-embedding-swap.md):
when an embedding provider is configured, `reconstruct()` precomputes
batched label embeddings once per reconstruction and scores cosine
Expand Down Expand Up @@ -237,6 +255,20 @@ vector degrades that pair back to difflib; it never fabricates a score.

## Tests

### Isolated Compose lifecycle

- The canonical standalone Compose project is `lineageweave` (ADR 0224).
- A test, review, or stacked-PR environment may use an explicit isolated
project name only while that environment is needed. Once its stated test or
review objective has succeeded, preserve the relevant evidence and port any
required behavior into the canonical Compose contract, then run `docker
compose -p <exact-project> down` so its containers and network do not become
a second production-looking stack.
- Never use `down -v` or otherwise delete named volumes without separate,
explicit authorization. Resolve the exact project from Compose labels before
cleanup; never target a glob, directory root, or another agent's active
environment.

```bash
# backend extra compiles fast-mlsirm's PyO3 core -- needs rustc 1.97.1
# (see backend/Dockerfile). Without it, pip falls over at build time.
Expand All @@ -250,6 +282,8 @@ in the same spirit) -- never against real data, per the hard rule above.
`backend/tests/` and `tests/test_schema.py` are real-integration tests
against a live local stack (`make up`) and self-skip without one -- see
[README.md](README.md#local-product-stack-docker-compose).
`tests/test_source_post_voice_history_live.py` is the same pattern for
ADR 0252 A → B → A cutoff and concurrent primary-Voice history.

`tests/test_public_docstrings.py` enforces repository-wide docstring
coverage: every public function and class under `lineageweave/` and
Expand All @@ -271,16 +305,21 @@ stops startup instead of leaving a healthy-looking partial schema, and
application code must not compensate for a missing table.

Period leftover pairs (ADR 0017 / 0018 / 0048 / 0049 / 0119 / 0158 / 0162 /
0163 / 0164 / 0182 / 0201) are computed in `lineageweave/leftover_pairs.py` from the
0163 / 0164 / 0182 / 0185 / 0201 / 0233 / 0266) are computed in `lineageweave/leftover_pairs.py` from the
residual after a real GRM/GPCM score, never invented. Distances are
Euclidean on the two-dimensional Gabriel leftover map; missing cells stay
out of the factorization. Closest and farthest post–criterion pairs
persist to `report_leftover_pair` with signed residual `R`, observed
`Y`, and expected `E[Y|θ, item]` so `R = Y − E` remains auditable,
plus leftover-map rank so rank 0 is not read as structure,
unexplained leftover, and the ADR 0201 reconstruction evidence. ADR 0201
is the sole normative reconstruction formula, storage, and audit contract;
do not duplicate or reinterpret it here. The pairs sit above the member
unexplained leftover, the ADR 0201 reconstruction evidence, ADR 0185
cross-share evidence, ADR 0233 unexplained leftover share
`s = U² / R²`, and ADR 0266 explained leftover share `e = R̂² / R²`.
ADR 0201 is the sole normative reconstruction formula,
storage, and audit contract; do not duplicate or reinterpret it here.
ADR 0233 is the sole unexplained leftover share contract. ADR 0266 is
the sole explained leftover share contract. When `R`, `R̂`, `U`, `x`,
`s`, and `e` are finite, `e + s + x = 1`. The pairs sit above the member
list so a click opens that post with the leftover criterion current
in Post quality (ADR 0158). Leftover-map axis share (ADR 0148) is Gabriel inertia of
residual SVD axes 1 and 2 and persists to `report_leftover_map_axis`.
Expand All @@ -289,6 +328,13 @@ and are not a leftover score. Complete-case coverage (ADR 0168) persists to
`report_leftover_map_coverage` and captions the pair list with how
many scored posts entered the map.

Authorized occupational construct catalog search (ADR 0257) matches official
O*NET preferred labels or descriptions only when a source-eligible, ABAC-visible
Post supports that construct. Hidden Posts, withdrawn truth, and conflicting
truth statuses omit the hit. Clicking a hit opens that Post. Do not return
catalog rows as a vocabulary oracle, scores, or person traits. Continuation
is a construct-IRI keyset; never OFFSET.

Global Ask relative-time filters (ADR 0150 / 0202) bind to
`source_post.event_occurred_at` and fall back to `created_at` only
when the event instant is missing. Cited evidence names **Time
Expand Down Expand Up @@ -317,7 +363,11 @@ pnpm run lint && pnpm run test && pnpm run build
Repeated web objects use `frontend/src/styles/tokens.css`, not inline hex
(ADR 0099 badge/accent tokens, with dark-mode overrides guarded by
`tokens.test.ts`); new stories belong in the inventory at
`docs/storybook-inventory.md`.
`docs/storybook-inventory.md`. Success, unavailable, and retry copy share
`StatusNotice` (ADR 0220): Calendar's missing Naruon projection is the first
migrated flow. Success and unavailable stay a named region (not live
`role="status"`); retry stays `role="alert"`. Do not add a second placeholder
or interpolate provider payloads into that notice.

A run-bearing analysis-run registry empties only after an unrevoked
`analysis_run_retention_grant` and `GRANT analysis_run_retention_admin`
Expand All @@ -332,6 +382,9 @@ v0.88.0). Do not invent a theta.
Opening a cutoff-rewritten title shows **Body this run knew** from
`source_post_revision` beside the live rewrite (ADR 0025 / v2.1.0).
Do not invent the earlier sentence when no revision covers the cutoff.
Global Ask uses the same revision cover when `knowledge_cutoff` is set
(ADR 0216 / #271); omit the field to keep the live-query contract, and
never substitute a live body for a missing historical cover.

A corporate-entity similarity result has three outcomes: unique, miss,
or tie (ADR 0026). A tie is not a miss. Keep the organization name
Expand Down
Loading
Loading