Skip to content

Type LCM summary inputs and compression policy - #4351

Merged
ScriptedAlchemy merged 34 commits into
masterfrom
copilot/simplify-lcm-replace-json-in-route-summary
Oct 22, 2026
Merged

ScriptedAlchemy merged 34 commits into
masterfrom
copilot/simplify-lcm-replace-json-in-route-summary

Conversation

Copilot AI commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The cutover preserves public response fields, token-budget algorithms, route normalization, source/frontier transaction behavior, and metadata bytes.

Verification

  • Updated from master before validation. The daemon authority's compression response import and direct typed deferral return are restored.
  • The shared integration fixture accepts both borrowed and owned summary text. Metadata expectations keep the pinned route/extraction bytes and pass them through the canonical privacy authority before comparing the entire persisted string, including all receipt bindings. The fixture also asserts its exact source count and expansion hint.
  • Native Bazel session integration target: all 72 LCM compression tests passed (349 unrelated cases filtered), covering summary/frontier publication, source identity, overflow, replay, tool transactions, rollback, and exact protected metadata bytes.
  • Strict Bazel Clippy passed on the full session integration target and its dependencies with -D warnings, clearing the 54 reported fixture type errors.
  • The earlier session-runtime run passed all 14 selected authority and unavailable-summary tests, including grant denial, cancellation, deadlines, pressure compaction, override preservation, and pending-frontier behavior.
  • Pinned rustfmt, diff checks, and commitlint passed.
  • The fleet on 7b96709c451e3b69ff10dd754269809686f2e9ad passed all 421 session integration tests (90.68s) and 167 of 169 native targets. Its remaining failures were the host-handoff fixture's stale generation baseline and the shared heavy-refresh timeout tracked in fix(memory): size and charge text builds in one admission #4393.
  • After updating from master, the host-handoff fixture waits for the decoded graph admission work to settle before pinning its initial generation. All original generation, freshness, broker-debt, and handoff assertions remain. Both focused handoff tests passed locally (38.59s); strict Bazel Clippy passed on the daemon unit-test target and dependencies.
  • On 6c70575ac6a627ea8f864202bb802b1cc0f02d1d, Clippy, the shipped Linux CLI build, repository gates, Dashboard, and feature gates passed; the Linux fleet was still running when the required-check notice arrived. Updated the branch from master (44d8265c13a5feb70e7ea834c1d11ed413f3f2af) to 1ed4a0ab365d2a48bae2d232f1237b9bb3018951. Full hosted CI, including the Linux fleet and aggregate, must finish on this new head before merge.

Fixes #4296
Fixes #4297
Fixes #4298
Fixes #4300
Fixes #4305

@changeset-bot

changeset-bot Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 21cb484

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copilot AI linked an issue Oct 19, 2026 that may be closed by this pull request
5 tasks
Copilot AI changed the title [WIP] Simplify lcm by replacing JSON-in-route summary metadata with typed input Type LCM summary inputs and compression policy Oct 19, 2026
Copilot AI requested a review from ScriptedAlchemy October 19, 2026 04:26
Copilot AI and others added 4 commits October 20, 2026 15:41
Co-authored-by: ScriptedAlchemy <25274700+ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: ScriptedAlchemy <25274700+ScriptedAlchemy@users.noreply.github.com>
@ScriptedAlchemy
ScriptedAlchemy force-pushed the copilot/simplify-lcm-replace-json-in-route-summary branch from abd3ded to 247a385 Compare October 20, 2026 22:42

@ScriptedAlchemy ScriptedAlchemy left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Cross-referenced #4296, #4297, #4298, #4300 and #4305. The typed input/policy migration has one concrete outcome-preservation regression: the existing forced-overflow producer emits a successful response that the new take_outcome rejects. This needs correction before merging; the precise producer and retained transaction path are described inline. This finding is from source/caller tracing, not a completed native test run.

Comment thread crates/tracedecay-lcm/src/types.rs Outdated
@ScriptedAlchemy
ScriptedAlchemy marked this pull request as ready for review October 21, 2026 00:46

@ScriptedAlchemy ScriptedAlchemy left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Pushed e5aae67 to address the pressure-recovery regression found in review. take_outcome() now accepts completed ok and best_effort responses carrying critical_pressure_catch_up, while malformed authoritative-summary states still fail. Added full wire-response round-trip coverage and a registered retained-pressure recovery regression that reopens the store and verifies summaries were durably committed for both statuses.

Pinned CI rustfmt and git diff --check pass. Native tests have not run locally because this environment exhausted memory on the repository's native dependency build; CI is the execution authority. Marked this PR ready for review because draft PRs explicitly skip the heavy native lane. Relevant coverage is in the LCM unit tests and session-runtime lcm_effects tests. This is an implementation update, not a merge or approval.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

ScriptedAlchemy and others added 5 commits October 20, 2026 21:03
The typed outcome conversion accepted any status other than needs_summary
when no request or retry marker was present. A malformed decoded result
could therefore become Complete despite the closed outcome contract.

Match the inventoried ok, best_effort and needs_summary statuses directly.
Keep both critical-pressure completion forms and all existing wire fields.
Add decoded-invalid-status and valid-completion round-trip regressions.

Refs #4298

@ScriptedAlchemy ScriptedAlchemy left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Pushed a3d1c10 for the remaining #4298 outcome-conversion hole. Unknown decoded statuses previously became Complete when no request/retry marker was present; the conversion now accepts only the supported ok, best_effort, and needs_summary combinations. The critical-pressure completion forms remain supported. Added invalid-status and complete-wire round-trip regressions. Pinned rustfmt, whitespace and commitlint pass; native behavior is now with CI.

ScriptedAlchemy and others added 2 commits October 21, 2026 02:14
Read compression responses through a borrowed outcome that accepts the
forced-overflow catch-up retry, keep the old route trimming, keep the
overflow cap input, and delete the unreachable store-unavailable
reason. Pin the request JSON and persisted summary metadata bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ScriptedAlchemy
ScriptedAlchemy enabled auto-merge (squash) October 22, 2026 00:35
@ScriptedAlchemy
ScriptedAlchemy enabled auto-merge (squash) October 22, 2026 02:28
@ScriptedAlchemy
ScriptedAlchemy enabled auto-merge (squash) October 22, 2026 04:10
@ScriptedAlchemy
ScriptedAlchemy enabled auto-merge (squash) October 22, 2026 04:29
@ScriptedAlchemy
ScriptedAlchemy merged commit 41ea187 into master Oct 22, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment