From 6f75452c1e49ac9f1bbe347b66a1dc312076af6e Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 1 Sep 2026 14:47:25 +0900 Subject: [PATCH 1/9] docs(gaps): refresh protected delivery evidence Signed-off-by: Codex --- docs/product-technical-gap-baseline.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index fab7ce8fe..c60a7bb3a 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -1,5 +1,27 @@ # Product & Technical Gap Baseline +> Exact-head development-loop snapshot: 2026-09-01 14:46 KST. Protected +> `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 99 PRs and 12 +> non-PR issues are open. This documentation candidate is stacked on PR #780 +> at exact head `0c3044b40ff67e6faae34544fdb751e80cea6040`, so it does not move +> that product candidate or inherit protected-main status. PR #780 retains +> normal squash auto-merge and remains blocked on queued current-head checks +> plus independent approval. PR #897 is locally verified at exact head +> `8c8112246f70eaf4ac250f957891d8438f34d470` with 52 focused backend tests, +> 531 frontend tests, lint, and production build passing; normal squash +> auto-merge is armed, while hosted checks and independent approval remain +> unavailable. PR #899 remains draft at +> `2368b9052f33c77c33b72ac87264efd4b7b9cbff` until its #780 migration-fixture +> dependency and exact-head gates are satisfied. No protected merge, merge SHA, +> or deployed acceptance is claimed for those candidates. +> +> The shared token-backed status notice is no longer an open Gap: PR #643 +> merged through protected `main` as `617937c7c9800438eb907fc3c44599c05a6e081e`. +> Its success/unavailable named regions and retry alert are the reusable ADR +> 0220 contract; new flows must reuse that component rather than introduce a +> second placeholder. This snapshot corrects the stale historical row in +> section 5 without rewriting its earlier queue evidence. + > Exact-head development-loop snapshot: 2026-09-01 13:23 KST. Protected > `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 98 PRs and 10 > non-PR issues are open. PR #780's exact evidence parent is @@ -1506,7 +1528,7 @@ give this delivery matrix: | Closed-branch decision | Current-main classification | Smallest remaining delivery | | --- | --- | --- | | ADR 0133 source-reference research | Partial foundation: protected `main` has the self-hosted SearXNG relation-verification client and fail-closed configuration, but it verifies an already extracted relation. It has no source-unit/image-region lead, cited-resource retrieval, claim judgment, or normalized research citation workflow | One post-scoped lead-to-citation slice that reuses the self-hosted SearXNG search boundary, adds public-target SSRF/redirect rejection for result retrieval, and judges through contextual-orchestrator with explicit unavailable outcomes | -| ADR 0134 token-backed exception messages | Partial: sanitized next-action failures exist, but no shared token-backed exception component or complete Storybook error inventory exists | Migrate one existing unavailable flow to one shared accessible alert and verify its success, unavailable, and retry states | +| ADR 0134 token-backed exception messages | Closed on protected `main`: PR #643 merged as `617937c7c9800438eb907fc3c44599c05a6e081e`, delivering the shared ADR 0220 `StatusNotice` contract and success, unavailable, and retry inventory for the first migrated flow | Reuse `StatusNotice` for later migrations; do not create another placeholder or treat a future consumer migration as evidence that this shared-component Gap remains open | | ADR 0135 kind/status-exact analysis actions | Partial: protected `main` has kind-aware start/retry controls plus normative analysis-run, TEPP, cutoff-body, and channel-evidence contracts; it does not contain the closed branch's unified guidance component or its full kind × status interaction inventory | Test the current run-kind/status matrix first, then add only a proven missing state/control pair rather than copying the closed-branch function | | ADR 0136 per-post Ask history | Partial: `post_chat_result` / `post_chat_citation`, the authorized post Chat API, and its linear exchange history are on protected `main`. Account-and-post-scoped sessions, ordered turns, list/select/new controls, and batched citation reauthorization are not | Define the 3NF account/post session boundary, bounded batch reauthorization, and one authorized list/load/write path before adding the conversation picker | | ADR 0137 cross-post customer identity | Partial foundation: protected `main` preserves source customer hints and has corporate-catalog unique/miss/tie safeguards, but it has no normalized cross-post customer-identity judgment, supporting-post binding, or corporate-name-history workflow | Add only after external corroboration, orchestrator judgment, TEPP ordering, and unique-catalog fail-close can be verified together; never promote a one-post hint | From 3c51a04a260c7efceb2670ebbd32239a50102bdc Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 1 Sep 2026 15:15:32 +0900 Subject: [PATCH 2/9] docs(gaps): record calendar and measurement candidates Signed-off-by: Codex --- docs/product-technical-gap-baseline.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index c60a7bb3a..2a26c54e9 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -1,5 +1,25 @@ # Product & Technical Gap Baseline +> Exact-head development-loop snapshot: 2026-09-01 15:14 KST. Protected +> `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 101 PRs and 12 +> non-PR issues are open. Calendar ownership has an executable but non-durable +> candidate in CalendarWeave draft PR #3 at +> `7d9bc6b7bb5e957a4de7e2b10c0376d2cbe51ed6`, stacked on its proposed +> ownership ADR. Its Rust application port preserves tenant isolation, strict +> UTC/all-day RFC 5545 input, opaque references, and revision ETags with local +> line and branch coverage at 100%; hosted Rust and coverage jobs remain queued. +> It is not a released service, does not provide durable storage, CalDAV sync, +> provider parity, or consumer migration evidence, and therefore does not close +> LineageWeave issue #900 or CalendarWeave issue #2. +> +> LineageWeave draft PR #902 is stacked on draft owner-boundary PR #899 at exact +> head `824425146d356fc7b66b409047bfe449cb0581f3`. Its current candidate removes +> domain-label and boolean-flag model selection, requires explicit intended-use +> activation evidence and an owning psychometric recovery contract, and retains +> 100% statement/branch coverage for the owned policy module. Its hosted checks +> remain queued; neither the policy nor any runtime scoring path is protected- +> main or deployed evidence. + > Exact-head development-loop snapshot: 2026-09-01 14:46 KST. Protected > `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 99 PRs and 12 > non-PR issues are open. This documentation candidate is stacked on PR #780 From 7100c5015e50fb09be94ae33615780a991de1e5c Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 1 Sep 2026 15:19:27 +0900 Subject: [PATCH 3/9] docs(gaps): refresh calendar candidate evidence Signed-off-by: Codex --- docs/product-technical-gap-baseline.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index 2a26c54e9..bc277d6c0 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -4,10 +4,11 @@ > `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 101 PRs and 12 > non-PR issues are open. Calendar ownership has an executable but non-durable > candidate in CalendarWeave draft PR #3 at -> `7d9bc6b7bb5e957a4de7e2b10c0376d2cbe51ed6`, stacked on its proposed +> `572b96944093f90292e06d00a23b3c58b5de561a`, stacked on its proposed > ownership ADR. Its Rust application port preserves tenant isolation, strict -> UTC/all-day RFC 5545 input, opaque references, and revision ETags with local -> line and branch coverage at 100%; hosted Rust and coverage jobs remain queued. +> UTC/all-day RFC 5545 input, standard event status, opaque references, and +> revision ETags with local line and branch coverage at 100%; hosted Rust and +> coverage jobs remain queued. > It is not a released service, does not provide durable storage, CalDAV sync, > provider parity, or consumer migration evidence, and therefore does not close > LineageWeave issue #900 or CalendarWeave issue #2. From 8950da764b66b90e82da9f7ec3d3e85ab79e9dc1 Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 1 Sep 2026 15:23:00 +0900 Subject: [PATCH 4/9] docs(gaps): record conditional calendar update Signed-off-by: Codex --- docs/product-technical-gap-baseline.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index bc277d6c0..1e3e2888b 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -4,13 +4,15 @@ > `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 101 PRs and 12 > non-PR issues are open. Calendar ownership has an executable but non-durable > candidate in CalendarWeave draft PR #3 at -> `572b96944093f90292e06d00a23b3c58b5de561a`, stacked on its proposed +> `029c6d38d3a748bac131c93eb38347deda1f6989`, stacked on its proposed > ownership ADR. Its Rust application port preserves tenant isolation, strict > UTC/all-day RFC 5545 input, standard event status, opaque references, and -> revision ETags with local line and branch coverage at 100%; hosted Rust and -> coverage jobs remain queued. -> It is not a released service, does not provide durable storage, CalDAV sync, -> provider parity, or consumer migration evidence, and therefore does not close +> strong-ETag conditional update with authorization-before-parse ordering; +> local line and branch coverage remains 100%, while hosted Rust and coverage +> jobs remain queued. +> It is not a released service, does not provide durable cross-process +> concurrency, CalDAV sync, provider parity, or consumer migration evidence, +> and therefore does not close > LineageWeave issue #900 or CalendarWeave issue #2. > > LineageWeave draft PR #902 is stacked on draft owner-boundary PR #899 at exact From 8ca77d514004e5f297d1a64dd9900739be4bbde4 Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 1 Sep 2026 15:41:33 +0900 Subject: [PATCH 5/9] docs(gaps): record durable calendar store candidate Signed-off-by: Codex --- docs/product-technical-gap-baseline.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index 1e3e2888b..3ef0b565d 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -1,19 +1,22 @@ # Product & Technical Gap Baseline -> Exact-head development-loop snapshot: 2026-09-01 15:14 KST. Protected +> Exact-head development-loop snapshot: 2026-09-01 15:40 KST. Protected > `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 101 PRs and 12 -> non-PR issues are open. Calendar ownership has an executable but non-durable -> candidate in CalendarWeave draft PR #3 at +> non-PR issues are open. Calendar ownership has an executable core candidate +> in CalendarWeave draft PR #3 at > `029c6d38d3a748bac131c93eb38347deda1f6989`, stacked on its proposed > ownership ADR. Its Rust application port preserves tenant isolation, strict > UTC/all-day RFC 5545 input, standard event status, opaque references, and -> strong-ETag conditional update with authorization-before-parse ordering; -> local line and branch coverage remains 100%, while hosted Rust and coverage -> jobs remain queued. -> It is not a released service, does not provide durable cross-process -> concurrency, CalDAV sync, provider parity, or consumer migration evidence, -> and therefore does not close -> LineageWeave issue #900 or CalendarWeave issue #2. +> strong-ETag conditional update with authorization-before-parse ordering. +> Stacked draft PR #4 at exact head +> `c98f20a06f3c79d52d9307bb2ff56f45f7c326d9` adds a three-normal-form +> PostgreSQL store with append-only revisions, restart idempotency, and real +> concurrent create and conditional-update evidence. Its local line and branch +> coverage is 100%, while hosted Rust and coverage jobs remain queued. +> Neither candidate is protected-main or released evidence. They do not yet +> provide an authenticated operated service, backup/restore acceptance, CalDAV +> sync, provider parity, or consumer migration evidence, and therefore do not +> close LineageWeave issue #900 or CalendarWeave issue #2. > > LineageWeave draft PR #902 is stacked on draft owner-boundary PR #899 at exact > head `824425146d356fc7b66b409047bfe449cb0581f3`. Its current candidate removes From bf9a5f32aa448c484ca6503fd60d7232b861263a Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 1 Sep 2026 15:49:26 +0900 Subject: [PATCH 6/9] docs(gaps): record calendar timezone candidate Signed-off-by: Codex --- docs/product-technical-gap-baseline.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index 3ef0b565d..4d65b8b7c 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -1,6 +1,6 @@ # Product & Technical Gap Baseline -> Exact-head development-loop snapshot: 2026-09-01 15:40 KST. Protected +> Exact-head development-loop snapshot: 2026-09-01 15:49 KST. Protected > `main` remains `cb187cadee5fb6c46d8a944815ccc154a1e028d1`; 101 PRs and 12 > non-PR issues are open. Calendar ownership has an executable core candidate > in CalendarWeave draft PR #3 at @@ -11,9 +11,13 @@ > Stacked draft PR #4 at exact head > `c98f20a06f3c79d52d9307bb2ff56f45f7c326d9` adds a three-normal-form > PostgreSQL store with append-only revisions, restart idempotency, and real -> concurrent create and conditional-update evidence. Its local line and branch -> coverage is 100%, while hosted Rust and coverage jobs remain queued. -> Neither candidate is protected-main or released evidence. They do not yet +> concurrent create and conditional-update evidence. Stacked draft PR #5 at +> exact head `1817f8d3a39d0559b66c4c4d49e03b9fa03aed99` adds bounded IANA +> TZID interval validation, including ambiguous and nonexistent local-time +> rejection, through the shared parser and durable adapter. Local line and +> branch coverage remains 100%, while hosted Rust and coverage jobs remain +> queued. None of these candidates is protected-main or released evidence. +> They do not yet > provide an authenticated operated service, backup/restore acceptance, CalDAV > sync, provider parity, or consumer migration evidence, and therefore do not > close LineageWeave issue #900 or CalendarWeave issue #2. From 19922561d3893466def2c8e3f37175e1c4ba7359 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 2 Sep 2026 18:21:34 +0900 Subject: [PATCH 7/9] docs(gaps): refresh exact-head delivery evidence Signed-off-by: Codex --- docs/product-technical-gap-baseline.md | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index 239e03da1..42306548e 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -1,5 +1,33 @@ # Product & Technical Gap Baseline +> Exact-head development-loop snapshot: 2026-09-02 18:24 KST. Protected +> `main` is `3f61c8242b9c02dec307a7396e83e28f7cdd9f3d`; a fresh REST inventory +> contains 112 open PRs and 15 open non-PR issues. The largest buyer-visible +> candidate remains PR #780 at +> `df6aac995176f64b184aaa2f6e34a064af20cc64`, based directly on `main`. +> It distinguishes the carrying Post from genuine derivation evidence in the +> exact-value UI and CSV, preserves authorized evidence, PROV-O derivation, +> truth status, and cutoff for every additional atomic Voice, omits hidden +> evidence without substitution, and unions same-subject properties and +> multi-Voice relations in paged JSON-LD. ADR 0246's twelve classifications +> remain extensible atomic assignments; ADR 0256, not the unrelated ADR 0251, +> governs their evidence-bearing composition. Its 19 exact-head checks are +> currently three skipped and sixteen queued. No independent `APPROVED` +> review, protected merge, merge SHA, or freshly authenticated deployed +> PostgreSQL/API/rendered-UI acceptance is claimed. +> +> PR #897 moved to `12caa9264b394c3b2ebd995943f3c8e42d01c0bd` +> after a review-rooted test-contract repair; its focused TEPP receipt/start/ +> release suite passes 51 tests. One exact-head check is cancelled, four are +> skipped, and sixteen are queued. Normal auto-merge could not be armed because +> GitHub's GraphQL rate limit is exhausted; no bypass or self-approval was +> attempted. This documentation child, PR #901, is still stacked on #780 at +> pre-update head `5560958c9f70acaa4f0c6711ea0d132dbec45f6a` and must not be +> retargeted to `main` until #780 is protected-merged. Canonical remote names +> were rechecked as `ContextualWisdomLab/LineageWeave`, `RankWeave`, +> `ThreadWeave`, lowercase `disksage`, `TEPP`, and +> `contextual-orchestrator`. +> > Exact-head development-loop snapshot: 2026-09-02 KST. Protected `main` is > `3f61c8242b9c02dec307a7396e83e28f7cdd9f3d`; the fresh inventory contains > 107 open PRs and 15 open non-PR issues. PR #780's remotely observed evidence From d44cd875a93cb929b6e30b744976d2c19e67d981 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Sat, 5 Sep 2026 06:57:06 +0900 Subject: [PATCH 8/9] test(docs): reject stale ADR 0134 StatusNotice gap --- ...est_gap_baseline_status_notice_contract.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 tests/test_gap_baseline_status_notice_contract.py diff --git a/tests/test_gap_baseline_status_notice_contract.py b/tests/test_gap_baseline_status_notice_contract.py new file mode 100644 index 000000000..e5828dc64 --- /dev/null +++ b/tests/test_gap_baseline_status_notice_contract.py @@ -0,0 +1,21 @@ +"""Contracts that keep the current ADR 0134 gap classification code-current.""" + +from pathlib import Path + + +_BASELINE = Path(__file__).parents[1] / "docs" / "product-technical-gap-baseline.md" + + +def test_adr_0134_gap_row_acknowledges_shared_status_notice_delivery() -> None: + """Do not report the protected shared StatusNotice as still absent.""" + + rows = [ + line + for line in _BASELINE.read_text(encoding="utf-8").splitlines() + if line.startswith("| ADR 0134 token-backed exception messages |") + ] + + assert len(rows) == 1 + row = rows[0] + assert "StatusNotice" in row + assert "no shared token-backed exception component" not in row From 308ebdfae50606127316fa8c51d772ea93327f64 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Sun, 6 Sep 2026 12:49:11 +0900 Subject: [PATCH 9/9] docs(gaps): acknowledge shared StatusNotice delivery --- docs/product-technical-gap-baseline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index 42306548e..176a23385 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -1585,7 +1585,7 @@ give this delivery matrix: | Closed-branch decision | Current-main classification | Smallest remaining delivery | | --- | --- | --- | | ADR 0133 source-reference research | Partial foundation: protected `main` has the self-hosted SearXNG relation-verification client and fail-closed configuration, but it verifies an already extracted relation. It has no source-unit/image-region lead, cited-resource retrieval, claim judgment, or normalized research citation workflow | One post-scoped lead-to-citation slice that reuses the self-hosted SearXNG search boundary, adds public-target SSRF/redirect rejection for result retrieval, and judges through contextual-orchestrator with explicit unavailable outcomes | -| ADR 0134 token-backed exception messages | Partial: sanitized next-action failures exist, but no shared token-backed exception component or complete Storybook error inventory exists | Migrate one existing unavailable flow to one shared accessible alert and verify its success, unavailable, and retry states | +| ADR 0134 token-backed exception messages | Partial: protected `main` delivers shared `StatusNotice` under ADR 0220 for token-backed success/unavailable/retry states, but complete Storybook/browser/a11y error-state evidence remains incomplete | Reuse `StatusNotice` as the single status-message authority; add the missing Storybook/browser/a11y success, unavailable, retry, and permission-state evidence rather than creating a second exception component | | ADR 0135 kind/status-exact analysis actions | Partial: protected `main` has kind-aware start/retry controls plus normative analysis-run, TEPP, cutoff-body, and channel-evidence contracts; it does not contain the closed branch's unified guidance component or its full kind × status interaction inventory | Test the current run-kind/status matrix first, then add only a proven missing state/control pair rather than copying the closed-branch function | | ADR 0136 per-post Ask history | Partial: `post_chat_result` / `post_chat_citation`, the authorized post Chat API, and its linear exchange history are on protected `main`. Account-and-post-scoped sessions, ordered turns, list/select/new controls, and batched citation reauthorization are not | Define the 3NF account/post session boundary, bounded batch reauthorization, and one authorized list/load/write path before adding the conversation picker | | ADR 0137 cross-post customer identity | Partial foundation: protected `main` preserves source customer hints and has corporate-catalog unique/miss/tie safeguards, but it has no normalized cross-post customer-identity judgment, supporting-post binding, or corporate-name-history workflow | Add only after external corroboration, orchestrator judgment, TEPP ordering, and unique-catalog fail-close can be verified together; never promote a one-post hint |