Skip to content

repair(compression): preserve plugin no-op session boundaries - #118

Open
Skywind5487 wants to merge 1 commit into
mainfrom
fork/compression-lifecycle
Open

repair(compression): preserve plugin no-op session boundaries#118
Skywind5487 wants to merge 1 commit into
mainfrom
fork/compression-lifecycle

Conversation

@Skywind5487

@Skywind5487 Skywind5487 commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

Repairs the Phase-2 repair:compression-lifecycle unit from #112 on top of refreshed upstream main (3b9a963b8e5cdb804a422755bed9a60fcd778273).

This ports the reviewed host-side status contract from upstream PR NousResearch#58495 onto the current compression lifecycle seam rather than replaying the historical fork telemetry commit shape.

Current-upstream / prior-art classification

Behavior

  • A context engine reporting noop returns the engine output through the existing prompt/lock-safe no-boundary path before session rotation/rewrite.
  • Public last_compression_status is preferred; legacy _last_compression_status remains a compatibility fallback.
  • Existing abort handling and semantic-equality no-progress handling stay adjacent in the current upstream lifecycle seam.
  • Successful compression transitions are unchanged.

Regression coverage

The regression deliberately does not use an equal newly allocated copy, because NousResearch#67938 already makes that case pass without this repair. Instead it models the current residual contract:

  1. the plugin reports last_compression_status = "noop" during compress();
  2. it returns cleanup-changed active context (compressed != messages);
  3. the host adopts that returned context;
  4. the cached system prompt is retained;
  5. the physical session id does not rotate;
  6. no compression-boundary hook fires and no child session is persisted.

Provenance / reconstruction shape

Closes #112

@github-actions

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown

૮ >ﻌ< ა ci review

ran on c644089 — repair(compression): preserve plugin no-op boundaries

⚠️ Warnings

CI timings · View report · View job

Wall time 6m25s vs 4m15s (+51.0%). 11 job(s) slower, 11 faster, 2 unchanged.

  • Python tests / Run tests slice 6/12: +35.0s
  • Python tests / Run tests slice 10/12: -23.0s
  • Python tests / Run tests slice 7/12: -18.0s
  • Python tests / Run tests slice 2/12: -16.0s
  • Python tests / Run tests slice 1/12: -15.0s

OSV vulnerability scan · View job

5 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.

Port the explicit plugin no-op session-boundary guard onto current upstream lifecycle seams and add a regression for the residual case not covered by semantic equality: cleanup-changed active context reported as noop must be adopted without rotating the session.

Prior art: NousResearch#58495. Equal-copy no-progress handling remains upstream-owned by NousResearch#67938.
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.

Phase 2: repair Compression Lifecycle as one merge unit

1 participant