Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
43f9c9e
feat(api): serve naruon POSTs on loopback with a live deadline
cursoragent Aug 16, 2026
6a6ce0c
test(api): reproduce missing LineageWeave consumer contract
seonghobae Aug 19, 2026
036e549
feat(api): admit LineageWeave on the modular run boundary
seonghobae Aug 19, 2026
55efc13
ci: stage LineageWeave contract formatting repair
seonghobae Aug 19, 2026
afce9b6
fix(api): format and compile the LineageWeave contract
Aug 19, 2026
16de7b0
test(api): require cutoff-safe LineageWeave project history
seonghobae Aug 20, 2026
803a8e7
feat(api): expose cutoff-safe project history contracts
seonghobae Aug 20, 2026
b8c79be
feat(api): add cutoff-safe project history projection
seonghobae Aug 20, 2026
e881949
feat(api): publish the LineageWeave project history exchange
seonghobae Aug 20, 2026
c172b00
ci: materialize the PR 159 availability-clock repair
seonghobae Aug 20, 2026
b1571e5
ci: verify and publish the project-history availability contract
seonghobae Aug 20, 2026
6c89219
ci: verify TEPP LineageWeave project-history contract
seonghobae Aug 20, 2026
0cacdff
fix(api): declare temporal core workspace version
seonghobae Aug 20, 2026
b648e7c
fix(api): align project-history clocks and non-causal evidence
seonghobae Aug 20, 2026
760ac3b
Merge remote-tracking branch 'origin/main' into fix/pr-107-naruon-live
seonghobae Aug 20, 2026
0e10662
Merge #107 live listener base into consumer contract
seonghobae Aug 20, 2026
a707130
docs(adr): record consumer-scoped analysis-run ingress
seonghobae Aug 20, 2026
c255ac3
docs(adr): index modular consumer ingress
seonghobae Aug 20, 2026
bddb105
Merge consumer contract base updates
seonghobae Aug 20, 2026
91fba35
Merge branch 'feat/lineageweave-live-consumer-contract' of https://gi…
seonghobae Aug 20, 2026
262f841
test(api): require live project-history service route
seonghobae Aug 20, 2026
ee3e941
ci: prove and implement the live project-history route
seonghobae Aug 20, 2026
de38550
fix(api): validate localhost ports in live host checks
seonghobae Aug 20, 2026
64818cf
fix(api): share strict loopback host validation
seonghobae Aug 20, 2026
3b1b8be
fix(api): satisfy strict contract lint
seonghobae Aug 20, 2026
ca363be
Merge remote-tracking branch 'origin/feat/lineageweave-live-consumer-…
seonghobae Aug 20, 2026
a9bd157
fix(ci): align the TEPP history repair with the live contract
seonghobae Aug 20, 2026
d0967f3
fix(ci): make the TEPP live-route repair exact-head compatible
seonghobae Aug 20, 2026
67ef83a
fix(ci): install pinned Rust components correctly
seonghobae Aug 20, 2026
542b96c
test(api): complete naruon live branch coverage
seonghobae Aug 20, 2026
9ea0c39
fix(ci): remove the superseded analysis-run body-limit import
seonghobae Aug 20, 2026
2342d5f
ci: remove superseded PR 159 verification workflow
seonghobae Aug 20, 2026
b8cfeb6
test(api): close project-history line and branch coverage gaps
seonghobae Aug 20, 2026
950f757
ci: verify the TEPP history coverage contract before publish
seonghobae Aug 20, 2026
6037713
chore: close accidental placeholder issue
seonghobae Aug 20, 2026
ae49187
chore: remove accidental placeholder cleanup workflow
seonghobae Aug 20, 2026
13e17d0
test(api): close analysis-run live coverage gaps
seonghobae Aug 20, 2026
9786aff
chore(ci): remove completed project-history repair workflow
seonghobae Aug 20, 2026
d048e92
test(coverage): merge branch outcomes by source coordinate
seonghobae Aug 20, 2026
378dc8f
ci: finalize TEPP project-history contract
seonghobae Aug 20, 2026
0e29108
test(api): close analysis-run live coverage gaps
seonghobae Aug 20, 2026
2454966
ci: pin project history verification actions
seonghobae Aug 20, 2026
3791284
Merge branch 'feat/lineageweave-project-history-projection' of https:…
seonghobae Aug 20, 2026
f99dc56
ci: pin finalization workflow actions
seonghobae Aug 20, 2026
02339a5
Merge remote-tracking branch 'origin/feat/lineageweave-live-consumer-…
seonghobae Aug 20, 2026
41f02c8
ci: pin and rerun TEPP project-history finalization
seonghobae Aug 20, 2026
1e42d95
ci: dispatch pinned PR 159 finalizer
seonghobae Aug 20, 2026
ae18ae8
test(api): close project-history coverage edges
seonghobae Aug 20, 2026
1478708
Merge remote-tracking branch 'origin/feat/lineageweave-project-histor…
seonghobae Aug 20, 2026
2875431
ci: remove completed project-history finalizers
seonghobae Aug 20, 2026
5295f5e
docs: doctor the LineageWeave project-history contract
seonghobae Aug 20, 2026
a6cea38
test(api): reproduce idempotency delimiter collision
seonghobae Aug 20, 2026
814d2a4
fix(api): reject control characters in wire identities
seonghobae Aug 20, 2026
0ae6192
test(api): preserve multiline wire text
seonghobae Aug 20, 2026
542fa0a
test(api): align control character contract
seonghobae Aug 20, 2026
586cda5
test: close project history coverage gaps
seonghobae Aug 20, 2026
a18076d
fix(api): revalidate project history projections
seonghobae Aug 20, 2026
f0b69bd
test(api): cover localhost live host acceptance
seonghobae Aug 20, 2026
07bb21f
test(api): close naruon HTTP branch coverage gap
seonghobae Aug 20, 2026
a1f7ca3
test(api): close project history coverage gaps
seonghobae Aug 20, 2026
d40b0a0
test(api): cover project history invariants
seonghobae Aug 20, 2026
c8d2a5b
test(api): cover project history response invariants
seonghobae Aug 20, 2026
2e592d6
Merge remote-tracking branch 'refs/remotes/origin/feat/lineageweave-p…
seonghobae Aug 20, 2026
855c6c7
test(api): remove timing-sensitive timeout assertion
seonghobae Aug 20, 2026
ffbf50e
ci: restack LineageWeave consumer contract on merged ingress
seonghobae Aug 21, 2026
4893a7e
ci: trigger LineageWeave consumer restack from PR
seonghobae Aug 21, 2026
054b009
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 21, 2026
3afeeb7
fix(api): complete lineageweave restack safely
seonghobae Aug 21, 2026
17f06e8
fix(api): resolve consumer-base host validation
seonghobae Aug 21, 2026
cbb3dc0
docs: bind consumer ingress to merged main lineage
seonghobae Aug 21, 2026
c9103d1
merge: restack project history on current consumer ingress
seonghobae Aug 21, 2026
21de05d
ci: verify and repair PR 155 review findings
seonghobae Aug 21, 2026
d54ba82
test: stage PR 155 review-finding repair
seonghobae Aug 21, 2026
0de7970
ci: execute the PR 155 repair through a recognized workflow
seonghobae Aug 21, 2026
fbb55f8
test: stage PR 159 timeout contract repair
seonghobae Aug 21, 2026
e5575a0
ci: verify PR 159 loopback timeout contract
seonghobae Aug 21, 2026
5d19407
fix: close PR 155 review findings
seonghobae Aug 21, 2026
19ce074
fix: complete PR 155 coverage gates
seonghobae Aug 21, 2026
6cc00f8
test: strengthen coverage report regressions
seonghobae Aug 21, 2026
b207234
fix(ci): keep timeout verification in committed tests
seonghobae Aug 21, 2026
512cbfe
Merge commit '6cc00f81b7f1998312fd7b8326d89f010d19d0b5' into review/p…
seonghobae Aug 21, 2026
5308507
Remove unreachable project history host branch
seonghobae Aug 21, 2026
116072a
fix: enforce project history response size symmetry
seonghobae Aug 21, 2026
9e583d1
docs: record project history service boundary
seonghobae Aug 21, 2026
1ce983e
docs: remove ADR trailing whitespace
seonghobae Aug 21, 2026
38a0e98
fix: enforce strict project history timestamps
seonghobae Aug 21, 2026
b745ed4
docs: keep ADR index wording current
seonghobae Aug 21, 2026
bc68cdc
style(api): apply rustfmt to project history tests
seonghobae Aug 21, 2026
7e32f50
fix(api): close project history live ingress gaps
seonghobae Aug 21, 2026
b6102fd
feat(api): expose temporal evidence context for LineageWeave Ask (#158)
seonghobae Aug 22, 2026
c630bf2
Merge feat/lineageweave-project-history-projection into feat/lineagew…
seonghobae Aug 22, 2026
086a64d
docs: align LineageWeave wire evidence
seonghobae Aug 23, 2026
18c0fcd
fix(api): bound temporal context serialization
seonghobae Aug 23, 2026
bafd251
fix(api): bound serialization before allocation
seonghobae Aug 23, 2026
02c009c
feat(api): package loopback temporal context service (#186)
seonghobae Aug 23, 2026
2071a9c
fix(api): pin container digests; document live project-history POSTs
Aug 24, 2026
87867e2
fix(docker): pin rust builder image by index digest
seonghobae Aug 24, 2026
b699bcf
Merge main into LineageWeave consumer contract
seonghobae Aug 24, 2026
9f7c251
Merge latest main temporal gate fixes
seonghobae Aug 24, 2026
849a1af
Merge latest cutoff and assertion-time fixes
seonghobae Aug 24, 2026
59fead9
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
a70d843
fix(ci): add dependabot cooldown for semgrep gate
seonghobae Aug 24, 2026
8d39e73
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
74dd6ec
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
6b4c7e5
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
9c6b17d
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
6c2ec82
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
fdfda05
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
5a3d88c
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
df0baa5
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
08e4cba
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 24, 2026
738a9ec
Merge origin/main into feat/lineageweave-live-consumer-contract
seonghobae Aug 24, 2026
903c803
fix(workspace): remove duplicate provider crate entry
seonghobae Aug 24, 2026
acf1335
Merge remote-tracking branch 'origin/main' into feat/lineageweave-liv…
seonghobae Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed .codegraph/codegraph.db
Binary file not shown.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.codegraph
.git
node_modules
target
2 changes: 2 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ updates:
directory: "/"
schedule:
interval: "weekly"
cooldown:
default-days: 7
open-pull-requests-limit: 1
7 changes: 3 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ jobs:
with:
persist-credentials: false
- name: Install pinned nightly with LLVM tools
run: rustup toolchain install nightly-2026-08-18 --profile minimal --component llvm-tools-preview
run: rustup toolchain install nightly-2026-08-21 --profile minimal --component llvm-tools-preview
Comment thread
seonghobae marked this conversation as resolved.
- name: Restore pinned cargo-llvm-cov
id: llvm-cov-cache
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
Expand All @@ -237,13 +237,12 @@ jobs:
run: cargo llvm-cov --version | grep -F "$CARGO_LLVM_COV_VERSION"
- name: Generate exact branch coverage
id: branch-report
run: cargo +nightly-2026-08-01 llvm-cov --branch --workspace --all-features --json --output-path coverage-branches.json --ignore-filename-regex 'sqlx_live\.rs'
run: cargo +nightly-2026-08-18 llvm-cov --branch --workspace --all-features --json --summary-only --output-path coverage-branches.json --ignore-filename-regex 'sqlx_live\.rs'
run: cargo +nightly-2026-08-21 llvm-cov --branch --workspace --all-features --json --output-path coverage-branches.json --ignore-filename-regex 'sqlx_live\.rs'
- name: Enforce complete branch coverage
run: python3 scripts/check_coverage.py coverage-branches.json --kind branches
- name: Show exact missing branch diagnostics
if: ${{ failure() && steps.branch-report.outcome == 'success' }}
run: cargo +nightly-2026-08-18 llvm-cov report --branch --text --show-missing-lines
run: cargo +nightly-2026-08-21 llvm-cov report --branch --text --show-missing-lines
- name: Upload exact branch coverage diagnostics
if: ${{ failure() && steps.branch-report.outcome == 'success' }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/hourly-nim-product-development.yml
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ jobs:
if [ "${{ steps.llvm-cov-cache.outputs.cache-hit }}" != true ]; then
cargo install cargo-llvm-cov --locked --version 0.8.6
fi
rustup toolchain install nightly-2026-08-01 --profile minimal --component llvm-tools-preview
rustup toolchain install nightly-2026-08-21 --profile minimal --component llvm-tools-preview

- name: Run every release-quality gate
env:
Expand Down Expand Up @@ -495,9 +495,9 @@ jobs:
cargo deny check
line_coverage="$RUNNER_TEMP/coverage.lcov"
branch_coverage="$RUNNER_TEMP/coverage-branches.json"
cargo llvm-cov --workspace --all-features --lcov --output-path "$line_coverage"
cargo llvm-cov --workspace --all-features --lcov --output-path "$line_coverage" --ignore-filename-regex 'sqlx_live\.rs'
python3 scripts/check_coverage.py "$line_coverage" --kind lines --format lcov
cargo +nightly-2026-08-01 llvm-cov --branch --workspace --all-features --json --output-path "$branch_coverage"
cargo +nightly-2026-08-21 llvm-cov --branch --workspace --all-features --json --output-path "$branch_coverage" --ignore-filename-regex 'sqlx_live\.rs'
python3 scripts/check_coverage.py "$branch_coverage" --kind branches
[ -z "$(git diff --name-only)" ]
[ -z "$(git ls-files --others --exclude-standard)" ]
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.d/lineageweave-project-history.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# LineageWeave project-history projection

- `tepp_api` projects already-authorized LineageWeave evidence into a strict, cutoff-safe project history, preserves explicit source-event identities, validates deterministic chronological ordering, recomputes non-causal findings, and rejects fabricated, credential-bearing, or oversized payloads.
- Request and generated-projection serialization now share the 256 KiB wire limit, preventing a successful projection that cannot pass TEPP's own response parser.
- ADR 0020 records the credential-free bounded service boundary and its split of authorization (LineageWeave) from temporal projection (TEPP).
- This fragment preserves the child release note while the stacked branch retains the parent consumer-ingress changelog during the ordinary parent merge.
- The loopback timeout regression is now asserted in the committed Rust test; documentation CI is read-only and no longer mutates contributor branches.
3 changes: 3 additions & 0 deletions CHANGELOG.d/lineageweave-temporal-context-service.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Added

- Package the existing cutoff-safe `POST /v1/temporal-context` contract as the loopback-only `tepp-loopback` binary and container for trusted same-host consumers such as LineageWeave.
39 changes: 32 additions & 7 deletions CHANGELOG.md
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,20 @@ All notable changes to TEPP are documented here. The format follows Keep a Chang

### Added

- `corpus_background` identity gate: corpus-level background wording is not unique latent content or a state transition; recovery tests distinguish background evidence from unique content.
- `modality_source` identity gate: non-lexical modality is not unique lexical content or a state transition; recovery tests keep modality evidence distinct from unique content.
- `copied_text` identity gate: copied-text residue is not unique latent content or a state transition; recovery tests distinguish copied-text evidence from genuinely new content.
- `style_source` identity gate: house-voice style residue is not unique latent content and is not erased by a stopword list; recovery tests distinguish style from unique content.
- `stopword_deletion` method gate: a default or global stopword list cannot erase repeated report language; recovery tests distinguish deliberate method treatment from stopword deletion.
- `copy_identity` identity gate: a template or pasted copy cannot reuse the source document identity or become a state transition; recovery tests distinguish copy kinds from source identity.
- `intake_authorization` identity gate: documents, serialized records, checkpoints, and LLM outputs require a purpose-bound grant in addition to identity, provenance, size, and depth validation; recovery tests reject ungranted intake.
- `tepp_api` LineageWeave temporal-context contract (v1): cutoff-safe event eligibility, deterministic event-time ordering, explicit non-causal association/gap boundaries, HTTPS interchange construction, and loopback listener handling at `POST /v1/temporal-context`; read-only context requests no longer require the write-only idempotency header, and no causal inference or completed-result service is included.
- `tepp_api` LineageWeave consumer-scoped analysis-run ingress: versioned, credential-free requests use a published consumer identity and isolate idempotency by consumer, tenant workspace, and opaque caller key; the one-shot restack workflow is removed after the protected-main merge is verified.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- ADR 0018 records the consumer-scoped analysis-run ingress, its in-memory loopback maturity, and the persistence boundary required before production use.
- ADR 0020 records the credential-free bounded LineageWeave project-history service boundary and keeps source authorization with LineageWeave while TEPP owns temporal validation and deterministic projection.
- `tepp_api` project-history wire-size symmetry (ADR 0019): request and projection serialization enforce the shared 256 KiB limit, and generated projections fail closed before returning when their deterministic response would exceed it.
- `summarizes_edge` identity gate: summaries may point to earlier event time without becoming state transitions or reusing source-document identity; recovery tests outperform collapsing every summary to the source.
- `outcome_order` identity gate: `input_to` and `process_to` require strict forward event-time rank, while `outcome_of` remains non-transition provenance; recovery tests outperform collapsing every kind to `input_to`.
- `location_membership` identity gate: geographic and market assignments are time-varying memberships, not permanent entity identity and not language channels; recovered location kinds match known truth at a higher computed rate than collapsing every assignment to entity identity (ADR 0003).
- `prompt_source` identity gate: instruction and prompt boilerplate is not unique latent content and is not erased by a stopword list; `identity_recovery_rate` reports exact kind matches, with a contract test comparing correct recovery with an all-unique collapse on a mixed known-truth fixture (ADR 0004/0012).
- `corpus_background` identity gate: corpus-level background wording is not unique latent content and is not erased by a stopword list; recovered background kinds match known truth at a higher computed rate than collapsing every token to unique content (ADR 0004/0012).
Expand All @@ -26,15 +40,12 @@ All notable changes to TEPP are documented here. The format follows Keep a Chang
- `outcome_order` identity gate: `input_to` and `process_to` cannot move backward or stay contemporaneous in event-time rank; `outcome_of` may point at an earlier producer and cannot become a state transition; recovered kinds match known truth at a higher computed rate than collapsing every kind to `input_to` (ADR 0002/0003).
- `persistence_postgres` retention/deletion/legal-hold (migration `0007`): policy rows, legal holds that block completed deletion, evidence tombstones without raw-source restore, analysis exclusion only for `logical_revocation`/`identity_tombstone` (not `cache_export_removal`), and deletion requests bound to the cited retention policy's tenant/class/purpose.
- `retrospective_edge` identity gate: retrospective reporting may point to earlier event time but cannot become a state transition or a translation; recovered reporting kinds match known truth at a higher computed rate than collapsing every report to a contemporaneous forward report (ADR 0002/0003).
- `persistence_postgres` retention/deletion/legal-hold (migration `0007`): policy rows, legal holds that block completed deletion, evidence tombstones without raw-source restore, analysis exclusion only for `logical_revocation`/`identity_tombstone` (not `cache_export_removal`), and deletion requests bound to the cited retention policy's tenant/class/purpose.
- `payload_bound` identity gate: documents, serialized records, model checkpoints, and LLM outputs stay untrusted until identity, provenance, size, and depth validate; recovered accept/reject flags match known truth at a higher computed rate than accepting every payload (ADR 0008/0013).
- `persistence_postgres` retention/deletion/legal-hold (migration `0007`): policy rows, legal holds that block completed deletion, evidence tombstones without raw-source restore, analysis exclusion only for `logical_revocation`/`identity_tombstone` (not `cache_export_removal`), and deletion requests bound to the cited retention policy's tenant/class/purpose.
- `inferred_status` identity gate: inferred relations cannot be promoted to observed evidence or to state transitions; recovered observed/inferred labels match known truth at a higher computed rate than treating every status as observed (ADR 0003).
- `persistence_postgres` retention/deletion/legal-hold (migration `0007`): policy rows, legal holds that block completed deletion, evidence tombstones without raw-source restore, analysis exclusion only for `logical_revocation`/`identity_tombstone` (not `cache_export_removal`), and deletion requests bound to the cited retention policy's tenant/class/purpose.
- `support_edge` identity gate: support, contradiction, summary, and `outcome_of` edges cannot become state transitions; recovered evidential kinds match known truth at a higher computed rate than collapsing every kind to support (ADR 0002/0003).
- `persistence_postgres` retention/deletion/legal-hold (migration `0007`): policy rows, legal holds that block completed deletion, evidence tombstones without raw-source restore, analysis exclusion only for `logical_revocation`/`identity_tombstone` (not `cache_export_removal`), and deletion requests bound to the cited retention policy's tenant/class/purpose.
- `system_clock` identity gate: event, assertion, document, availability, and knowledge-cutoff time cannot stand in for system time; recovered system stamps match known truth at a higher computed rate than treating every stamp as event time (ADR 0002).
- `event_clock` identity gate: assertion, system, document, and availability time cannot stand in for event/valid time; recovered event stamps match known truth at a higher computed rate than treating every stamp as assertion time (ADR 0002).
- Dependabot Rust toolchain updates now use a seven-day cooldown so newly published versions receive a bounded review window before automated proposals.
- `assertion_clock` identity gate: event, system, document, and availability time cannot stand in for assertion time; recovered assertion stamps match known truth at a higher computed rate than treating every stamp as event time (ADR 0002).
- `cutoff_clock` identity gate: event time, system time, and availability time cannot stand in for knowledge cutoff; recovered cutoff stamps match known truth at a higher computed rate than treating every stamp as availability time (ADR 0002).
- `available_clock` identity gate: event time and system time cannot stand in for availability time; recovered availability stamps match known truth at a higher computed rate than treating every stamp as system time (ADR 0002).
Expand Down Expand Up @@ -144,6 +155,20 @@ All notable changes to TEPP are documented here. The format follows Keep a Chang

### Changed

- The LineageWeave temporal-context read exchange no longer emits a fabricated
`idempotency-key`; that header remains reserved for retryable write/export
operations with a caller-owned operation key.
- `tepp_api` project-history requests and projections now share the strict
`temporal_core` RFC 3339 parser and nominal `KnowledgeCutoff` boundary,
rejecting unknown offsets and other timestamp forms that the transport
parser could otherwise accept.
- Coverage validation now ignores LLVM rows for multiline call and iterator
syntax that have no independently executable source coordinate, while
retaining the authored-line 100% gate.
- Removed the temporary PR-155 review-repair workflows and source-fix helper after the bounded repair; subsequent changes use the normal reviewed branch path.
- Pinned Rust branch-coverage workflows to `nightly-2026-08-21`, which is newer than the workspace Rust 1.97.1 MSRV and avoids the previous nightly/MSRV mismatch.
- Applied the documented `sqlx_live.rs` authored-coverage exclusion to the hourly release gate so live-PostgreSQL success-path coverage is not reported as a false source failure.
- Removed unreachable duplicate Naruon host-control validation because the shared `require_nonempty` boundary already rejects C0/C1 controls; retained a C1 regression case alongside the existing C0 case.
- Kept one maturity row per capability in the traceability matrix while recording the active provider-receipt evidence without duplicating or downgrading existing capabilities.
- `tepp_api` corpus-split manifest validation now rejects governed link-kind arrays that are unsorted or duplicated, keeping untrusted JSON aligned with the schema's unique canonical representation and preventing equivalent audits from receiving different valid digests.
- Grounded `derived_sensitivity` doctoring on GDPR Article 4(1)/Recital 26 and WP29 Opinion 4/2007 (WP 136) as read from the official texts, and replaced the withdrawn ISO/IEC 29100:2011 use-limitation overclaim with the current 29100:2024 catalogue edition without quoting unread clause text.
Expand All @@ -154,8 +179,8 @@ All notable changes to TEPP are documented here. The format follows Keep a Chang
head SHA to that exact-head register, including #201 `6afd650667e1` (RFC 5646
cited once; first GAP-005 slice, not implemented-main), stacked drafts
#202–#204, and #164 `ff2e645b1785` as the predecessor register head. Duplicate
PR #179 remains closed. Stacked-merged heads and queued Checks are not
implemented-main.
PR #179 remains closed. Stacked-merged heads and queued Checks are not
implemented-main.
- Clarified ADR 0001 so it owns Rust-first numerical/reference-backend authority while ADR 0011 owns cross-service MSA/service authority.
- Clarified ADR 0006 so it owns GPU/VRAM and model-credential boundaries; ADR 0010 now owns LLM orchestration policy and ADR 0015 owns autonomous repository-write/review/merge authority.
- Expanded ADR 0002–0005 and 0009–0011 with explicit implementation maturity, alternatives, failure/recovery, compatibility/migration, verification, and rollback/supersession boundaries where they were previously implicit.
Expand All @@ -181,7 +206,7 @@ All notable changes to TEPP are documented here. The format follows Keep a Chang

- Required 100% production line and branch coverage and complete public API docstrings.
- Required true-parameter recovery, RMSE, bias, interval coverage, temporal leakage, graph recovery, invariance, and CPU/GPU parity evidence.
- Expanded documentation contracts to require the canonical threat/privacy/assurance/API/orchestration/fitness documents, ADR policy, and every numbered ADR 0001–0016 to remain indexed and structurally complete.
- Expanded documentation contracts to require the canonical threat/privacy/assurance/API/orchestration/fitness documents, ADR policy, and every numbered ADR present in the canonical index to remain indexed and structurally complete.
- Added deterministic validation that ADR files and the index have identical decision numbers and that every ADR declares valid decision status, implementation maturity, supersession scope, core decision sections, verification, and rollback behavior.
- Added 100% statement and branch coverage for the repository quality-gate scripts.
- Made a zero executable-code coverage denominator explicit for the skeleton-only slice rather than treating it as evidence of implemented behavior.
Expand Down
2 changes: 0 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ members = [
"crates/psychometric_fit",
"crates/subevent_containment",
"crates/prediction_contradiction",
"crates/provider_receipt",
"crates/operational_log",
"crates/service_tls",
"crates/derived_sensitivity",
Expand Down Expand Up @@ -89,7 +88,6 @@ default-members = [
"crates/psychometric_fit",
"crates/subevent_containment",
"crates/prediction_contradiction",
"crates/provider_receipt",
"crates/operational_log",
"crates/service_tls",
"crates/derived_sensitivity",
Expand Down
20 changes: 20 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM rust:1.97.1-bookworm@sha256:0e2bcaef56d041a486784e54104a81aebe0da44bd03019bd70bc0401e42e4a97 AS build
WORKDIR /src
COPY . .
RUN cargo build --locked --release -p tepp_api --bin tepp-loopback

FROM debian:bookworm-slim@sha256:abd67ffcfa541b485a3dff59865ab629aa048a6c613e639d36e7456b0b229241
RUN apt-get update \
&& apt-get install --yes --no-install-recommends ca-certificates curl \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /src/target/release/tepp-loopback /usr/local/bin/tepp-loopback
USER 65532:65532
HEALTHCHECK --interval=10s --timeout=3s --start-period=2s --retries=5 \
CMD curl --fail --silent --show-error \
--header "content-type: application/json" \
--header "tepp-consumer: lineageweave" \
--header "tepp-contract-version: 1" \
--data '{"contract_version":1,"consumer_code":"lineageweave","knowledge_cutoff":"2026-08-20T00:00:00Z","subject_post_id":"health-post","events":[{"event_id":"health-event","source_post_id":"health-post","event_type_code":"health_probe","event_label":"Health probe","event_time":"2026-08-20T00:00:00Z","available_time":"2026-08-20T00:00:00Z","project_reference":null,"actor_references":["health-actor"]}]}' \
http://127.0.0.1:18081/v1/temporal-context >/dev/null \
|| exit 1
ENTRYPOINT ["/usr/local/bin/tepp-loopback"]
Loading
Loading