Skip to content

feat(api): list accepted temporal-context identities via loopback CLI - #450

Closed
seonghobae wants to merge 1 commit into
feat/temporal-context-collection-get-gap-003afrom
feat/temporal-context-collection-cli-gap-003a
Closed

feat(api): list accepted temporal-context identities via loopback CLI#450
seonghobae wants to merge 1 commit into
feat/temporal-context-collection-get-gap-003afrom
feat/temporal-context-collection-cli-gap-003a

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

GAP-003A unique operator-visible slice: published tepp-temporal-contexts list mints typed lineageweave_temporal_context_collection_exchange onto spawned tepp-loopback TCP.

  • Pattern: from_args + typed exchange + loopback_http1_from_temporal_context_collection_exchange + dispatch/execute/render + published [[bin]].
  • Empty stdin admitted; leftover nonempty stdin fail closed.
  • Public bind / localhost host / http origin / unpublished consumer / credential flags fail closed.
  • Metric-free receipts with inference_status=temporal_association_only. Event labels, actor lists, timeline events, evidence text, findings, RMSE, bias, coverage, SE-gate, causal scores, and tepp.scientific_acceptance.v1 never appear.
  • Dedicated binary so it does not collide with tepp-temporal-context (feat(api): query cutoff-safe temporal context via loopback CLI #414).
  • Stacked on feat(api): list accepted temporal-context identities on loopback GET #449 (feat/temporal-context-collection-get-gap-003a). Does not unstack onto main.
  • ADR 0082 (0026–0081 occupied). Does not reuse 0026–0081.

Explicitly not

Another temporal-context collection GET (#449), temporal-context CLI (#414), project-history collection CLI (#428), export collection CLI (#444), interpretation-run collection CLI (#436), project-history cancel CLI (#448), export cancel CLI (#446), Leiden, Driver p.16, GAP-010 Figma/export, persistence/Compose (#287).

Does not add GET to NaruonLiveService. Does not open naruon on this LineageWeave-owned adapter. Does not weaken fail-closed. Does not infer causality. No Buyer language. HTTP 200 is not an ADR 0014 claim.

Test plan

  • cargo test -p tepp_api --lib temporal_context_collection_cli
  • cargo test -p tepp_api --test temporal_context_collection_cli_contract
  • cargo clippy -p tepp_api --all-targets -- -D warnings
  • cargo doc -p tepp_api --no-deps
  • python3 scripts/validate_documentation.py
  • python3 scripts/check_docstrings.py

Devin Review

Publish tepp-temporal-contexts list so operators mint LineageWeave
GET /v1/temporal-context onto spawned tepp-loopback TCP. Receipts stay
metric-free temporal_association_only. Naruon is refused.
NaruonLiveService stays POST-only. ADR 0082.
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: a3d8a7cb-c3d5-4037-9a81-cd1b6eae9e5c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Contributor Author

Closing under the active WIP circuit breaker. This is a one-operation CLI stacked on now-closed #449; its useful typed-exchange, framing, CLI parsing, metric-refusal and stdout tests remain branch/review lineage for the coherent Temporal Event Knowledge / Analysis Run read-model landing vehicle. The parent #449 also has unresolved atomic-commit, full-request idempotency, pagination-validation, bounded-growth and bounded-serialization RED findings, so this child cannot be a safe replacement vehicle.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Coverage gate evidence is missing

The new production module adds many parser, pagination, and transport branches. The supplied verification omits the mandatory 100% line and branch coverage gate.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +370 to +372
refuse_scientific_acceptance(&response.body)?;
refuse_metrics_on_temporal_context_collection_payload(&response.body)?;
refuse_event_pii(&response.body)?;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Opaque identities can block listing

When an accepted identity contains a forbidden field name, refuse_event_pii rejects the entire valid collection. Operators cannot list that identity or its page.

Prompt for agents
The response filters in crates/tepp_api/src/temporal_context_collection_cli.rs scan raw JSON text, so allowed opaque idempotency-key values containing event_label, actor_references, timeline_events, evidence_text, or tepp.scientific_acceptance.v1 cause valid pages to fail. Replace value-wide substring checks with structural JSON key/schema validation, while preserving the strict TemporalContextCollection DTO validation and metric/PII field refusal. Add tests using accepted identities that contain each reserved substring.
Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant