Skip to content
Closed
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
1013 commits
Select commit Hold shift + click to select a range
5df58a7
merge: propagate current protected board base
seonghobae Aug 20, 2026
b70e17e
merge: propagate current protected board base
seonghobae Aug 20, 2026
335dd08
fix: keep Weekly VOC test option typed
seonghobae Aug 20, 2026
4a05a91
merge: propagate current board branch head
seonghobae Aug 20, 2026
b03cec1
merge: propagate current board branch head
seonghobae Aug 20, 2026
f70a659
merge: propagate current board branch head
seonghobae Aug 20, 2026
993b693
merge: propagate current board branch head
seonghobae Aug 20, 2026
8febf13
merge: retain concurrent project-history updates
seonghobae Aug 20, 2026
93537f8
merge: propagate current Event Lineage branch head
seonghobae Aug 20, 2026
f8d2fa9
fix: preserve semantic source unit boundaries
seonghobae Aug 20, 2026
9b61751
merge: retain concurrent Weekly VOC parent sync
seonghobae Aug 20, 2026
dfd95d9
merge: propagate current semantic-source parent
seonghobae Aug 20, 2026
bd1b4d2
merge: propagate current semantic-source parent
seonghobae Aug 20, 2026
80445b8
merge: propagate current semantic-source parent
seonghobae Aug 20, 2026
d670acd
merge: propagate current semantic-source parent
seonghobae Aug 20, 2026
d5dbdf7
merge: propagate current semantic-source parent
seonghobae Aug 20, 2026
76af029
merge: propagate current semantic-source Event Lineage base
seonghobae Aug 20, 2026
4eaeb23
ci: export exact project history source for local verification
seonghobae Aug 20, 2026
b77bea4
ci: move source export off the saturated Linux queue
seonghobae Aug 20, 2026
654faa3
test(projects): expose truth and identity boundary gaps
seonghobae Aug 20, 2026
eac418a
fix(projects): preserve identity and evidence truth boundaries
seonghobae Aug 20, 2026
7c9e2b2
fix(projects): enforce exact identity and evidence truth at the read …
seonghobae Aug 20, 2026
13b869e
fix(projects): render observed and inferred responsibility evidence h…
seonghobae Aug 20, 2026
cbb959c
fix(projects): expose per-evidence truth in the timeline
seonghobae Aug 20, 2026
c7f49af
feat(projects): wire authorized history into buyer surfaces
seonghobae Aug 20, 2026
de07aad
test(projects): distinguish observed and inferred responsibility evid…
seonghobae Aug 20, 2026
ba1de00
docs(storybook): show project-history truth states
seonghobae Aug 20, 2026
9a4ca86
merge: retain concurrent project-history truth fixes
seonghobae Aug 20, 2026
6004a7a
fix(projects): keep timeline compatible with persisted evidence
seonghobae Aug 20, 2026
367c40a
Merge remote-tracking branch 'origin/pr-285-head' into codex/integrat…
seonghobae Aug 20, 2026
0a76b25
fix(projects): focus timeline on opened source post
seonghobae Aug 20, 2026
8a01449
test: type latest VOC backend fixture input
seonghobae Aug 20, 2026
ef7189e
Merge remote-tracking branch 'origin/feat/customer-master-open-focus-…
seonghobae Aug 20, 2026
30dae74
fix(project-history): preserve exact identity and isolate matches
seonghobae Aug 20, 2026
5d0e412
docs: refresh project gap exact-head checkpoint
seonghobae Aug 20, 2026
0beabed
merge: restack GNB focus onto current Ask Agent base
seonghobae Aug 20, 2026
d925f53
Merge remote-tracking branch 'origin/feat/event-lineage-node-keeps-gn…
seonghobae Aug 20, 2026
18dfddf
fix(ontology): align person mention direction with KG triples
seonghobae Aug 20, 2026
7b5c1e9
Merge branch 'feat/analysis-run-name-evidence-lineage' of https://git…
seonghobae Aug 20, 2026
9648110
docs: record audited safe SQL gate
seonghobae Aug 20, 2026
848ff4c
Merge branch 'feat/board-weekly-voc-open-event-lineage-v2130' of http…
seonghobae Aug 20, 2026
5fcfbea
Merge branch 'feat/calendar-open-focus-event-lineage-v2140' of https:…
seonghobae Aug 20, 2026
c264674
Merge remote-tracking branch 'origin/feat/project-lifecycle-history' …
seonghobae Aug 20, 2026
e573875
fix(board): keep weekly VOC filters complete
seonghobae Aug 20, 2026
8268b14
fix(board): fetch posts for selected ISO week
seonghobae Aug 20, 2026
6f31284
test(api): prove ISO week scope excludes other corps
seonghobae Aug 20, 2026
a71b8a6
Merge remote-tracking branch 'origin/feat/board-weekly-voc-open-event…
seonghobae Aug 20, 2026
221cc94
fix(calendar): keep home commitment opens neutral
seonghobae Aug 20, 2026
d061571
Merge remote-tracking branch 'origin/feat/calendar-open-focus-event-l…
seonghobae Aug 20, 2026
9ffe3b6
Merge remote-tracking branch 'origin/feat/customer-master-open-focus-…
seonghobae Aug 20, 2026
3ed21fe
Merge remote-tracking branch 'origin/feat/ask-agent-open-focus-event-…
seonghobae Aug 20, 2026
49804b0
Merge branch 'main' into feat/analysis-run-name-evidence-lineage
github-actions[bot] Aug 20, 2026
b83be70
style: normalize merged branch whitespace
seonghobae Aug 20, 2026
c92c5d1
chore: remove completed project history bootstrap
seonghobae Aug 20, 2026
cfc125c
chore: align project history release version
seonghobae Aug 20, 2026
d1d4930
Merge current main into feat/analysis-run-name-evidence-lineage
seonghobae Aug 20, 2026
1f905a3
merge current analysis-run parent into weekly VOC stack
seonghobae Aug 20, 2026
ee52819
merge: sync buyer evidence branch with main
seonghobae Aug 20, 2026
dcbd4c1
merge: preserve concurrent main synchronization
seonghobae Aug 20, 2026
b2d4c10
fix: restrict synthetic cleanup to demo scopes
seonghobae Aug 20, 2026
41036e2
test: cover empty synthetic cleanup
seonghobae Aug 20, 2026
f1ff05c
test: specify recovered TEPP project-history boundary
seonghobae Aug 21, 2026
93873f7
test: specify TEPP project-history buyer evidence
seonghobae Aug 21, 2026
565e531
feat: recover strict TEPP project-history client
seonghobae Aug 21, 2026
8281e6a
feat: map canonical project history into TEPP contract
seonghobae Aug 21, 2026
5c81a5e
feat: render TEPP validation beside canonical history
seonghobae Aug 21, 2026
aeb0d93
Merge current analysis-run base into weekly VOC stack
seonghobae Aug 21, 2026
889bddb
style: add TEPP project-history evidence panel
seonghobae Aug 21, 2026
2a2a1a7
docs: add TEPP project-history Storybook states
seonghobae Aug 21, 2026
31c2016
chore: stage one-shot TEPP project-history recovery
seonghobae Aug 21, 2026
0b03ad5
docs: record recovered TEPP project-history boundary
seonghobae Aug 21, 2026
26b83f0
ci: execute verified TEPP project-history recovery
seonghobae Aug 21, 2026
4bb2344
docs: align orchestrator runtime pin
seonghobae Aug 21, 2026
9bfa181
Merge remote-tracking branch 'origin/feat/event-lineage-node-keeps-gn…
seonghobae Aug 21, 2026
9bb02fa
Merge remote-tracking branch 'origin/feat/board-weekly-voc-open-event…
seonghobae Aug 21, 2026
19747b6
fix(i18n): cover Vietnamese TEPP project-history copy
seonghobae Aug 21, 2026
294fe99
ci: remove completed Global Ask repair workflow
seonghobae Aug 21, 2026
c518058
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae Aug 21, 2026
33baae5
test(frontend): specify customer master tree hardening
seonghobae Aug 21, 2026
c1d340f
Merge remote-tracking branch 'origin/feat/board-weekly-voc-open-event…
seonghobae Aug 21, 2026
90412ed
Merge remote-tracking branch 'origin/feat/calendar-open-focus-event-l…
seonghobae Aug 21, 2026
065f962
test(red): require TEPP evidence on canonical timeline
seonghobae Aug 21, 2026
7d2fea8
fix(ci): make TEPP recovery red gate integration-specific
seonghobae Aug 21, 2026
6e18cf4
Merge remote-tracking branch 'origin/feat/customer-master-open-focus-…
seonghobae Aug 21, 2026
3fd75b0
fix(ui): harden TEPP evidence semantics and accessibility
seonghobae Aug 21, 2026
f8b5826
test(ui): cover TEPP evidence labels and unique regions
seonghobae Aug 21, 2026
2ff8826
Merge remote-tracking branch 'origin/feat/ask-agent-open-focus-event-…
seonghobae Aug 21, 2026
a1b117f
test(red): reject unrecognized TEPP findings and invalid responses
seonghobae Aug 21, 2026
704215a
fix(ci): apply complete strict TEPP recovery contract
seonghobae Aug 21, 2026
32e24c1
ci: format and lint TEPP recovery before commit
seonghobae Aug 21, 2026
8d69a34
docs(adr): close TEPP finding vocabulary and response boundary
seonghobae Aug 21, 2026
1875e65
fix(a11y): separate customer tree from evidence panel
seonghobae Aug 21, 2026
69f0a3d
fix(ci): cancel stale TEPP recovery attempts
seonghobae Aug 21, 2026
67e39c9
test: expose ORG and SKOS ontology boundary gaps
seonghobae Aug 21, 2026
cb30c24
feat: materialize TEPP project history recovery
seonghobae Aug 21, 2026
337691a
test: keep TEPP evidence type-safe
seonghobae Aug 21, 2026
065d582
fix: fail closed on unknown TEPP findings
seonghobae Aug 21, 2026
c7ecfa8
fix: separate organizations from SKOS classifications
seonghobae Aug 21, 2026
865ec0d
feat: publish core ontology SHACL constraints
seonghobae Aug 21, 2026
a9c0385
docs: amend ontology ADR for ORG SKOS and SHACL boundaries
seonghobae Aug 21, 2026
68ca6cb
Merge remote-tracking branch 'origin/feat/event-lineage-node-keeps-gn…
seonghobae Aug 21, 2026
996db8c
docs: align ontology loader with ORG and SHACL contracts
seonghobae Aug 21, 2026
19bd247
docs: record organization ontology interoperability fix
seonghobae Aug 21, 2026
cccf80c
fix(frontend): integrate customer master tree safely
seonghobae Aug 21, 2026
4228c48
merge: preserve concurrent customer-master updates
seonghobae Aug 21, 2026
21074cf
fix(a11y): make customer tree ownership explicit
seonghobae Aug 21, 2026
ca1ee63
ci: verify customer hierarchy finalization
seonghobae Aug 21, 2026
2b77e3d
docs: finalize customer hierarchy evidence
seonghobae Aug 21, 2026
be4c254
ci: remove stale cross-branch pnpm repair workflow
seonghobae Aug 21, 2026
de9a9cf
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae Aug 21, 2026
8ef98a0
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae Aug 21, 2026
3532062
docs: finalize customer hierarchy evidence
seonghobae Aug 21, 2026
9924465
merge: preserve exact customer hierarchy evidence
seonghobae Aug 21, 2026
b7625c3
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae Aug 21, 2026
6c4d48d
Merge remote-tracking branch 'origin/feat/board-weekly-voc-open-event…
seonghobae Aug 21, 2026
13a3430
fix(http): let strict contracts suppress LLM metadata
seonghobae Aug 21, 2026
6dfb5d9
fix(tepp): keep contextual metadata out of strict payloads
seonghobae Aug 21, 2026
1703bf7
test(tepp): prove strict payloads suppress LLM metadata
seonghobae Aug 21, 2026
cc0a890
Merge remote-tracking branch 'origin/feat/calendar-open-focus-event-l…
seonghobae Aug 21, 2026
457e7e1
Merge remote-tracking branch 'origin/feat/customer-master-open-focus-…
seonghobae Aug 21, 2026
8baf402
fix(tepp): preserve strict validation while suppressing metadata
seonghobae Aug 21, 2026
d207b62
Merge remote-tracking branch 'origin/feat/ask-agent-open-focus-event-…
seonghobae Aug 21, 2026
bcdc459
fix: recover expired ask sessions and localize timeline
seonghobae Aug 21, 2026
43262dc
fix(tepp): normalize unexpected provider failures
seonghobae Aug 21, 2026
0c8e8d0
fix: preserve project history evidence truth in buyer UI
seonghobae Aug 21, 2026
f754c36
Merge remote-tracking branch 'refs/remotes/origin/feat/event-lineage-…
seonghobae Aug 21, 2026
0d827fc
fix: keep provider errors behind product boundaries
seonghobae Aug 21, 2026
8832216
fix: localize event lineage post actions
seonghobae Aug 21, 2026
6a35ca8
fix: bound and explain project history loading
seonghobae Aug 21, 2026
d58edc8
fix: close provider error leaks at write endpoints
seonghobae Aug 21, 2026
f365821
Merge remote-tracking branch 'refs/remotes/origin/feat/project-histor…
seonghobae Aug 21, 2026
12f92e9
Merge remote-tracking branch 'refs/remotes/origin/feat/event-lineage-…
seonghobae Aug 21, 2026
ccaeaa1
test: align project history document clock copy
seonghobae Aug 21, 2026
711f027
merge current main into #258
seonghobae Aug 21, 2026
1df9d83
Merge remote-tracking branch 'refs/remotes/origin/feat/project-histor…
seonghobae Aug 21, 2026
678df0d
fix: keep unauthenticated admin controls out of login
seonghobae Aug 21, 2026
abb99aa
merge concurrent provider error boundary fix
seonghobae Aug 21, 2026
87c1b01
fix: enforce TEPP project history byte limits
seonghobae Aug 21, 2026
44e8dcf
fix: normalize unexpected provider failures
seonghobae Aug 21, 2026
5158934
fix: normalize summary enrichment failures
seonghobae Aug 21, 2026
6a4dbe7
fix: order TEPP history events by timestamp
seonghobae Aug 21, 2026
d58651e
Merge remote-tracking branch 'origin/feat/analysis-run-name-evidence-…
seonghobae Aug 21, 2026
643338a
fix: remove unused locale return imports
seonghobae Aug 21, 2026
8cd94b2
Merge remote-tracking branch 'origin/feat/board-weekly-voc-open-event…
seonghobae Aug 21, 2026
e3f4561
Merge current calendar stack and wire customer tree
seonghobae Aug 21, 2026
76964c0
fix: sanitize TEPP transport provider errors
seonghobae Aug 21, 2026
5bd176c
Merge remote-tracking branch 'origin/feat/customer-master-open-focus-…
seonghobae Aug 21, 2026
8d12743
docs: record TEPP provider error boundary
seonghobae Aug 21, 2026
39f2126
Merge remote-tracking branch 'origin/feat/ask-agent-open-focus-event-…
seonghobae Aug 21, 2026
1803ab3
feat: redesign Customer Master around three-pane relationships
seonghobae Aug 21, 2026
df5c36e
Merge remote-tracking branch 'origin/feat/event-lineage-node-keeps-gn…
seonghobae Aug 21, 2026
7093c8b
fix: align core ontology with ORG and SHACL contract
seonghobae Aug 21, 2026
f5e23b5
fix: close remaining provider error leaks
seonghobae Aug 21, 2026
59d687e
Merge latest project history timeline into TEPP recovery
seonghobae Aug 21, 2026
8314f3c
ci: verify and repair OIDC return fallback
seonghobae Aug 21, 2026
2c84824
fix: validate provider chat response envelopes
seonghobae Aug 21, 2026
c8dcc27
Merge remote-tracking branch 'refs/remotes/origin/feat/analysis-run-n…
seonghobae Aug 21, 2026
7f4a5c9
ci: expose PR 258 repair as a visible exact-head check
seonghobae Aug 21, 2026
e175ecd
ci: run the PR 258 repair through the recognized test workflow
seonghobae Aug 21, 2026
c48d88b
ci: remove completed self-modifying repair workflows
seonghobae Aug 21, 2026
899b44a
Merge branch 'feat/analysis-run-name-evidence-lineage' of https://git…
seonghobae Aug 21, 2026
c135c41
ci: keep tests workflow read-only
seonghobae Aug 21, 2026
a838559
fix: persist OIDC buyer return URL before redirect
seonghobae Aug 21, 2026
6a1177d
Merge commit 'a8385597030de92f6d771b61f13edbdc9c3dca2d' into codex/re…
seonghobae Aug 21, 2026
0ff8643
Merge commit '6a1177df' into codex/review-pr261-current
seonghobae Aug 21, 2026
5e706b7
fix: keep malformed customer parents unresolved
seonghobae Aug 21, 2026
349d559
Merge remote-tracking branch 'origin/feat/customer-master-open-focus-…
seonghobae Aug 21, 2026
f970b21
Merge remote-tracking branch 'origin/feat/ask-agent-open-focus-event-…
seonghobae Aug 21, 2026
7ff36d4
fix: preserve semantic image and summary boundaries
seonghobae Aug 21, 2026
9f24b68
fix: keep ADR numbers unique
seonghobae Aug 21, 2026
326f7ea
chore: restack project history on current parent
seonghobae Aug 21, 2026
8bddedf
fix: preserve OIDC deep links across callback storage (#306)
seonghobae Aug 21, 2026
aaad6f1
feat: make Event Lineage directional and evidence-readable (#330)
seonghobae Aug 21, 2026
b3d803a
feat: connect Ask answers to canonical project histories (v2.20.0) (#…
seonghobae Aug 21, 2026
f9f5227
fix: reject blank OCR table separators
seonghobae Aug 21, 2026
a9d0462
Merge current PR #258 head into PR #260
seonghobae Aug 21, 2026
4dba417
fix: require complete organization token corroboration (#327)
seonghobae Aug 21, 2026
7e2982b
feat: name Weekly VOC and focus Event Lineage (v2.13.0) (#260)
seonghobae Aug 21, 2026
b141ffc
Merge current PR #260 head into PR #261
seonghobae Aug 21, 2026
aba991f
feat: open Calendar commitments onto Event Lineage (v2.14.0) (#261)
seonghobae Aug 21, 2026
427a7a1
Merge current PR #261 head into PR #262
seonghobae Aug 21, 2026
b8e1b30
feat: open Ask Agent cited posts onto Event Lineage (v2.16.0) (#263)
seonghobae Aug 21, 2026
125a806
feat: publish external email and project lineage contract (#343)
seonghobae Aug 21, 2026
63d12af
fix: keep ADR numbers unique after customer master restack
seonghobae Aug 21, 2026
1ae3c40
Merge concurrent PR #263 updates into PR #262
seonghobae Aug 21, 2026
a2a0ad8
feat: keep GNB Event Lineage focus on a linked DAG node (v2.17.0) (#264)
seonghobae Aug 21, 2026
c2d7207
feat: publish bounded lineage provider contract (#340)
seonghobae Aug 21, 2026
b521812
fix: expose Ask Agent next actions
seonghobae Aug 21, 2026
d5d45f0
feat: expose authenticated MCP Global Ask (#270)
seonghobae Aug 21, 2026
b450c3e
Merge branch 'feat/project-history-timeline-v2184-r3' of https://gith…
seonghobae Aug 21, 2026
4f36013
fix: preserve project history focus across key normalization
seonghobae Aug 21, 2026
041aa4c
fix: preserve semantic document evidence units (#302)
seonghobae Aug 21, 2026
9235807
docs: assign unique ADR numbers after stack merge
seonghobae Aug 21, 2026
a8f56d0
feat: recover TEPP validation on canonical Project history (v2.19.0) …
seonghobae Aug 21, 2026
9e69bdb
Merge branch 'feat/project-history-timeline-v2184-r3' of https://gith…
seonghobae Aug 21, 2026
1a2ad15
fix: keep ADR identifiers unique and references consistent
seonghobae Aug 21, 2026
62bcd71
chore: restack customer master on current parent #258
seonghobae Aug 21, 2026
e7f0e01
feat: add evidence-honest Global Ask knowledge cutoff (v2.23.0) (#301)
seonghobae Aug 21, 2026
efcc3c6
fix: enforce TEPP request and search evidence boundaries (#323)
seonghobae Aug 21, 2026
4e24688
chore: restack customer master on latest parent
seonghobae Aug 21, 2026
910cf0e
feat: rebuild Ask Agent as an evidence workspace (v2.18.0) (#353)
seonghobae Aug 21, 2026
6c39a0d
fix: disclose unused and malformed lineage LLM paths
seonghobae Aug 21, 2026
3f9a0cf
fix: harden pr258 buyer board and lineage fallback
seonghobae Aug 21, 2026
cda7d48
fix: harden external lineage contract boundaries
seonghobae Aug 21, 2026
be7255d
fix: harden customer master contract delivery
seonghobae Aug 21, 2026
b153716
Merge remote-tracking branch 'refs/remotes/origin/pr258-current' into…
seonghobae Aug 21, 2026
aba828e
feat(ui): make plural affiliation chips actionable and multilingual (…
seonghobae Aug 21, 2026
2a3a464
Merge remote-tracking branch 'refs/remotes/origin/pr258-current' into…
seonghobae Aug 21, 2026
481bdb6
fix: remove privileged repair workflow
seonghobae Aug 21, 2026
fcb9bd3
fix: publish not-invoked lineage status
seonghobae Aug 21, 2026
23a5c13
Merge remote-tracking branch 'refs/remotes/origin/pr258-current' into…
seonghobae Aug 21, 2026
d0c7dec
fix: preserve buyer control typography
seonghobae Aug 21, 2026
073e5e2
Merge base event-lineage stack into project history
seonghobae Aug 21, 2026
2c827ea
feat: add Buyer Project history destination (v2.18.0) (#285)
seonghobae Aug 21, 2026
8b356a8
Merge pull request #385 from seonghobae/repair/pr258-review-hardening…
seonghobae Aug 21, 2026
6bf7599
Merge pull request #262 from ContextualWisdomLab/feat/customer-master…
seonghobae Aug 21, 2026
53ce1a5
test: preserve duplicate chunking coverage
seonghobae Aug 21, 2026
3488669
fix(frontend): preserve images in markdown fallback
seonghobae Aug 21, 2026
a3cf51e
fix: rebuild lineage group after llm channel failure
seonghobae Aug 21, 2026
6621eb1
docs: correct buyer terminology ADR reference
seonghobae Aug 21, 2026
6dc040c
fix: consolidate lineage product contracts
seonghobae Aug 21, 2026
d1ab7ca
fix: reuse authorized entity ids on Global Ask cutoff query (v2.20.1)…
seonghobae Aug 21, 2026
0407480
perf: batch persisted Ask reauthorization (#401)
seonghobae Aug 21, 2026
502d3c7
Merge pull request #402 from ContextualWisdomLab/reconcile/ask-histor…
seonghobae Aug 21, 2026
5975fe3
merge: reconcile Ask history with current Project timeline
seonghobae Aug 21, 2026
cc6cabd
Merge pull request #406 from ContextualWisdomLab/reconcile/ask-histor…
seonghobae Aug 21, 2026
61c6413
chore: nudge CI re-review (opencode-agent's prior REQUEST_CHANGES was…
seonghobae Aug 23, 2026
35bd32b
fix: resolve ADR 0119 collision and finish buyer->reader terminology …
seonghobae Aug 23, 2026
a1a8d86
docs: use workspace reader terminology
seonghobae Aug 23, 2026
bcfb67f
fix(frontend): restore Weekly VOC history focus
seonghobae Aug 23, 2026
d927cc4
Merge commit 'cc6cabddd6247dea0deabf5ad26600107b202340' into HEAD
seonghobae Aug 23, 2026
0f5b88d
Merge remote-tracking branch 'origin/feat/event-lineage-node-keeps-gn…
seonghobae Aug 23, 2026
56b899f
Merge remote-tracking branch 'origin/feat/ask-agent-open-focus-event-…
seonghobae Aug 23, 2026
1a238d4
Merge remote-tracking branch 'origin/feat/customer-master-open-focus-…
seonghobae Aug 23, 2026
9f7ac9f
Merge remote-tracking branch 'origin/feat/calendar-open-focus-event-l…
seonghobae Aug 23, 2026
cff2aa3
Merge remote-tracking branch 'origin/feat/board-weekly-voc-open-event…
seonghobae Aug 23, 2026
32deb9d
fix(security): document safe post chat SQL sinks
seonghobae Aug 23, 2026
ea14374
fix: preserve project history validation contracts
seonghobae Aug 23, 2026
af5a804
feat: show project-history lineage counts (#487)
seonghobae Aug 23, 2026
e05cf99
feat(mcp): enforce distributed account quota
seonghobae Aug 23, 2026
83ad578
fix(mcp): make browser admission exact and byte-bounded (#286)
seonghobae Aug 21, 2026
646e2a7
refactor(mcp): centralize quota settings
seonghobae Aug 23, 2026
f6ed5ef
fix(mcp): expose standards-safe quota retry metadata
seonghobae Aug 23, 2026
d26c4c5
fix(mcp): expose quota retry header to browsers
seonghobae Aug 23, 2026
d78ab1a
docs: renumber MCP rate-limit ADR to 0144
seonghobae Aug 23, 2026
2e2ddd1
docs(adr): assign MCP rate limit ADR 0146
seonghobae Aug 23, 2026
f4ebfc6
docs: align MCP quota reference with ADR 0146
seonghobae Aug 23, 2026
52deb37
feat(project-history): consume TEPP topic lineage (#495)
seonghobae Aug 23, 2026
3754e93
docs: refresh project history delivery evidence
seonghobae Aug 23, 2026
f0b5234
fix(mcp): close partial startup resources
seonghobae Aug 23, 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
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ VALKEY_PORT=16379
KEYCLOAK_ADMIN=admin
KEYCLOAK_ADMIN_PASSWORD=admin_dev_only
KEYCLOAK_PORT=18080
OIDC_CLOCK_SKEW_SECONDS=5

BACKEND_PORT=18420

Expand All @@ -28,3 +29,16 @@ BACKEND_PORT=18420
ORCHESTRATOR_BASE_URL=
ORCHESTRATOR_API_KEY=
VISION_MODEL=

# GitHub workflows inject the canonical provider names from masked secrets.
# Non-GitHub Compose runs also accept the operator's ~/.env compatibility
# names below; docker-compose maps them to the canonical names without
# exposing them to the frontend or committing them.
LLM_GATEWAY_URL=
LLM_GATEWAY_API_KEY=
LLM_GATEWAY_MODEL=
LLM_GATEWAY_EMBEDDING_MODEL=
LLM_API_GATEWAY=
LLM_API_KEY=
CALDAV_BASE_URL=
CONTEXTUAL_ORCHESTRATOR_ALLOWED_PROVIDER_HOSTS=
94 changes: 94 additions & 0 deletions .github/workflows/prov-o-contract.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: PROV-O contract

on:
pull_request:
branches: [main]
paths:
- "lineageweave/prov_o.py"
- "tests/test_prov_o.py"
- "tests/test_prov_o_schema.py"
- "migrations/0017_prov_o_standard_relations.sql"
- "docs/ontology/prov-o-support-profile.ttl"
- "pyproject.toml"
- "uv.lock"
- ".github/workflows/prov-o-contract.yml"
push:
branches: [main]
paths:
- "lineageweave/prov_o.py"
- "tests/test_prov_o.py"
- "tests/test_prov_o_schema.py"
- "migrations/0017_prov_o_standard_relations.sql"
- "docs/ontology/prov-o-support-profile.ttl"
- "pyproject.toml"
- "uv.lock"
- ".github/workflows/prov-o-contract.yml"

permissions:
contents: read

concurrency:
group: prov-o-contract-${{ github.ref }}
cancel-in-progress: true

jobs:
standards-contract:
name: Registry, inference, coverage, PostgreSQL
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16-alpine@sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777
env:
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
LINEAGEWEAVE_TEST_POSTGRES_ADMIN_DSN: postgresql://postgres:postgres@localhost:5432/postgres
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # actions/checkout@v7
with:
persist-credentials: false

- name: Set up Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # actions/setup-python@v6
with:
python-version: "3.12"

- name: Set up locked Python dependency manager
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
version: "0.11.28"
enable-cache: false

- name: Install the committed universal lock
run: uv sync --frozen --extra dev

- name: Verify complete relation behavior and 100 percent coverage
run: |
uv run --frozen python -m coverage run --branch --source=lineageweave.prov_o \
-m pytest -q tests/test_prov_o.py
uv run --frozen python -m coverage report --fail-under=100 lineageweave/prov_o.py

- name: Require a reachable PostgreSQL service
run: |
set -euo pipefail
for _ in $(seq 1 30); do
if pg_isready -h localhost -p 5432 -U postgres; then
exit 0
fi
sleep 2
done
echo "PostgreSQL service is unreachable; the schema contract would silently skip." >&2
exit 1

- name: Verify normalized PostgreSQL contracts
run: uv run --frozen python -m pytest -q tests/test_prov_o_schema.py

- name: Compile owned Python surface
run: uv run --frozen python -m compileall -q lineageweave/prov_o.py tests/test_prov_o.py tests/test_prov_o_schema.py
43 changes: 31 additions & 12 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read
Expand All @@ -17,6 +16,20 @@ jobs:
pytest:
name: Full test suite
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16-alpine@sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777
env:
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
LINEAGEWEAVE_TEST_POSTGRES_ADMIN_DSN: postgresql://postgres:postgres@localhost:5432/postgres
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # actions/checkout@v7
Expand All @@ -28,19 +41,22 @@ jobs:
with:
python-version: "3.12"

- name: Install pinned Rust toolchain
- name: Set up locked dependency manager
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
version: "0.11.28"
enable-cache: false

- name: Select pinned Rust toolchain
run: |
# Same pin as backend/Dockerfile: fast-mlsirm's PyO3/maturin
# core has no wheel, so pip install -e ".[backend]" compiles it.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
sh -s -- -y --profile minimal --default-toolchain 1.97.1
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
rustup toolchain install 1.97.1 --profile minimal
rustup default 1.97.1

- name: Install package and test dependencies
run: python -m pip install -e ".[dev,backend]"
- name: Install the committed universal lock
run: uv sync --frozen --extra dev --extra backend

- name: Run full test suite
run: python -m pytest -q
- name: Run full test suite against PostgreSQL
run: uv run --frozen python -m pytest -q

frontend:
name: Frontend lint, test, build
Expand All @@ -54,7 +70,6 @@ jobs:
- name: Set up Node
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # actions/setup-node@v5
with:
# Matches frontend/mise.toml's pin (setup-node doesn't parse mise.toml).
node-version: "24"

- name: Enable Corepack
Expand All @@ -75,3 +90,7 @@ jobs:
- name: Build
working-directory: frontend
run: pnpm run build

- name: Build Storybook
working-directory: frontend
run: pnpm run build-storybook
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ __pycache__/
.DS_Store
.codegraph/
.env

.coverage
43 changes: 42 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ summary/chat, or invented commitment. A missing signal and a
confidently-negative signal are different things. Keyman extraction,
entity-relationship classification, post summary, in-popup chat, and
commitment derivation go through contextual-orchestrator the same way
adjudication does -- never a raw LLM API.
adjudication does -- never a raw LLM API. Demo TEPP seed goes through
`tepp_client` the same way: a missing transport or an unused accepted
envelope is Failed (`tepp_not_available` / `tepp_result_not_persisted`),
never a fabricated theta or a local psychometric substitute.

## Tests

Expand Down Expand Up @@ -89,11 +92,49 @@ floating Node version):
```bash
cd frontend && pnpm install
pnpm run lint && pnpm run test && pnpm run build
# Storybook inventory (ADR 0020 tokens): pnpm run build-storybook
```

A run-bearing analysis-run registry empties only after an unrevoked
`analysis_run_retention_grant` and `GRANT analysis_run_retention_admin`
(ADR 0020 / v0.87.0). The documented phrase is not a secret. Do not
expose purge on a public HTTP route.

`POST /api/analysis-runs` records Pending lineage only (ADR 0017 /
v2.7.1). TEPP and period-report kinds 422 before any snapshot write.
`POST /api/analysis-runs/{id}/start` reconstructs a Pending lineage
cutoff bag through `reconstruct()` / `lineage_edge_specs` (ADR 0021 /
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.

A corporate-entity similarity result has three outcomes: unique, miss,
or tie (ADR 0026). A tie is not a miss. Keep the organization name
unbound and do not create an `AUTO-` catalog row, even when live name
resolution, hierarchy inference, and verification are available. Keyman
must test the raw organization name before any abbreviation rewrite so a
rewrite cannot turn an existing tie into an apparent creation miss.

R&R chips read the catalog id stored on `post_summary_role`
(ADR 0019 / 0027), including `cataloged_person_id`. Do not rejoin
`corporate_entity` or `cataloged_person` by display name. Historical
backfill leaves a role unbound when two same-named mentions already
exist on the post.

## CI gates

`.github/workflows/tests.yml` runs the full suite on every PR to `main`.
Do not weaken, skip, or `continue-on-error` a failing check -- fix the
underlying cause or, for a genuine false positive in a third-party scanner,
add a narrow, documented suppression referencing the specific finding.
## W3C PROV-O boundary

- Add standard provenance through `lineageweave.prov_o` and the
normalized `provenance_*` schema, never by inventing another
`edge_type` alias for a W3C property.
- Qualified relations retain their Influence resource and imply the
corresponding unqualified relation.
- Appendix B inverse names normalize to the preferred W3C direction;
do not proliferate private inverse vocabulary.
- Keep `knowledge_graph_edge` an explicit navigation projection.
Loading
Loading