Skip to content

remove the manual record_refinement from the kernel harness surface - #2155

Merged
sethkarten merged 24 commits into
mainfrom
sebastian/res-1337-record-refinement
Sep 23, 2026
Merged

sethkarten merged 24 commits into
mainfrom
sebastian/res-1337-record-refinement

Conversation

@snimu

@snimu snimu commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Fixes RES-1337

What

Removes rlm.harness.record_refinement and plan_refinement from the kernel surface. The refinement engine already records an event for every refinement pass it applies, so the manual call only duplicated those events or added unverified ones. Reading is unchanged: rlm.get_harness_state().refinements and the harness overview still show recorded events.

Why

evidence and outcome on a manual event were model claims about work the harness never verified, and where the engine had already recorded the pass the manual call wrote a duplicate. One writer keeps the refinement list trustworthy. plan_refinement only returned a fixed checklist that told the model to record the outcome — the call being removed — and had no caller.

Behavior changes

  • Calling record_refinement or plan_refinement raises an AttributeError that says what to do instead: record_refinement was removed; refinement events are recorded automatically when refinements run; plan_refinement was removed; use await refine.run() to schedule a refinement (harness.py).
  • The engine keeps writing refinement events (refinement.ts is untouched by this PR).
  • The read surface is unchanged: rlm.get_harness_state().refinements and overview() still render recorded events, and engine-written events survive a kernel-side save (covered by a new test).
  • The kernel bootstrap ready-check no longer requires record_refinement; it checks the three CRUD methods (bootstrap.ts).
  • The system prompt no longer lists record_refinement and no longer tells the model to "record the outcome" after a refinement; it now says events are recorded automatically (rlm.ts).
  • The Python-side validation helper for manually recorded events (_validate_refinement_event) is deleted along with its only caller.

Stacked on #2154; review that one first.

Testing

Prime sandbox (node:24): biome check --error-on-warnings . clean over 877 files, tsgo --noEmit clean, test_harness.py 55 tests on CPython 3.11, full unittest suite 348 tests; vitest on refinement.test.ts, kernel-bootstrap.test.ts, kernel-bootstrap-runtime-ready.test.ts, suite/agent-session-prompt.test.ts, suite/agent-session-serialized-refine.test.ts, suite/agent-session-compaction.test.ts, suite/agent-session-queue.test.ts — 7 files, 254 tests; acp-kernel-features.test.ts kernel-heavy — 4 tests.
On the final merge commit, biome (877 files) and the 55 test_harness.py tests were re-run green; scripts/check-test-policy.mjs passes against the #2154 tip (a93849d).

Note

Remove record_refinement and plan_refinement from HarnessState

Removes the manual refinement-recording and planning methods from the kernel harness surface so refinement events are only produced by the refinement engine. HarnessState.__getattr__ now raises AttributeError with method-specific replacement guidance when either removed name is accessed.

  • Updates tests: the invalid-mutation table and manual-refinement tests are deleted; a new test verifies engine-written refinement events survive a kernel save, and existing persistence tests no longer depend on manual recording.
  • Updates rlm.ts prompt guidance for the refine skill and adds a release-note entry at res-1337-drop-manual-record-refinement.md.
  • Risk: bootstrap.ts and rlm.ts contain unresolved merge-conflict markers around the required harness-method list and the REPL_CONTROL_PROMPT constant, which prevent both modules from compiling as shown.

Macroscope summarized 1309f55.


Note

Medium Risk
Changes the model-facing harness API and how refinement events are written, though reads and engine recording stay the same; legacy kernels or prompts that still call the removed methods will fail at runtime until updated.

Overview
Removes rlm.harness.record_refinement and plan_refinement from the model-facing Python harness so refinement history has a single writer: the host refinement engine. Reading rlm.get_harness_state().refinements and overview() is unchanged; engine-written events are preserved when the kernel reloads and saves the same state file.

Calling the removed names now raises AttributeError with guidance to rely on automatic recording or await refine.run(). The kernel runtime ready-check and RLM system prompt no longer expose or instruct manual outcome recording; refine guidance drops the “record the outcome” step. Manual event validation and related harness tests are removed; coverage adds engine refinements surviving a kernel save and explicit errors for the old API.

Reviewed by Cursor Bugbot for commit 1309f55. Bugbot is set up for automated code reviews on this repo. Configure here.

The kernel exposed twelve per-kind harness methods that differed only in the
kind they hardcoded. rlm.harness now has create(title, content, kind=...),
update(id, title, content, kind=...), and delete(id, kind=...). kind defaults
to memory because that is the kind models actually write today; reference and
arguments stay skill-only and are rejected for other kinds. The removed names
raise an error naming their replacement, so stale kernels and copied
transcripts get a pointer instead of a bare AttributeError.
path read like a filesystem location for what is just a grouping label. The
model-facing field, parameters, prompts, and digests now say topic. Both
writers of harness_state.json (the Python kernel store and the TypeScript
refinement engine) accept files that still carry path and write topic on the
next save, so existing state keeps loading.
Rollback rebuilt its edits from the entry snapshot in refinement history. History
written before the grouping was named topic stores it as path, so rolling back a
deletion recreated the entry under the fallback grouping. Both readers now go
through one accessor that accepts either spelling.
@snimu
snimu force-pushed the sebastian/res-1337-record-refinement branch from 7000d9d to 484fa2b Compare September 9, 2026 12:30
Comment thread prime-agent-runtime/src/rlm/harness.py Resolved
The global harness store is shared by whatever build runs next. A writer that
predates the topic field drops unknown keys, so it would resave every entry
ungrouped. Both writers now emit the grouping twice, as topic and as path, and
readers keep preferring topic. The mirror retires once no pre-topic build can
reach a shared store.
The TypeScript refinement engine writes the same file, so it emits the grouping
under both names too. The transcript diff for a refinement outcome now reads the
grouping through the accessor the loader and rollback already use, so an entry
recorded under the older name renders its real grouping instead of nothing.
delete(id) with a mismatched kind returned False, so a bare delete of a prompt
note or a skill left the entry in place and in every later prompt. update and
delete now share one message that names the kind the id really has, while a plain
miss still reports absence. kind is validated before the skill-only fields so an
unknown kind is reported as one, upsert drops the source argument the trio never
exposed, and the bootstrap failure text no longer promises the deleted per-kind
methods.
@snimu
snimu force-pushed the sebastian/res-1337-record-refinement branch from 3b173ca to cd8a8b4 Compare September 9, 2026 13:06
@snimu
snimu added this pull request to stack #2156 September 9, 2026 13:18
@snimu

snimu commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Round 1, all three items:

  1. Pin ordering: fixed. The refinements test now creates the kernel state first, lets the engine rewrite the file mid-session, and only then saves from the kernel, so it exercises the reload-before-save path. Verified by stubbing _sync_from_disk to a no-op: the test fails without it.

  2. TOCTOU windows: not touched. Both are pre-existing and sit in the seam preserve accepted harness memories across concurrent saves #2133 (concurrent harness saves) reworks, so that PR owns them. Noted in the body.

  3. plan_refinement: taken. A repo-wide grep finds only its definition - no caller in the kernel, the host, the prompts, the docs, or the tests, and the engine plans through its own model call. It returned a fixed three-line checklist. Deleted with the same guidance error as the other removed names, pinned in the same table.

Validation on cd8a8b4 (rebased onto the updated #2154 head): npm run check clean, refinement/system-prompt/ipython-bootstrap/serialized-refine suites green, kernel-heavy acp-kernel-features green, 46 Python runtime harness tests green.

Bare create/update/delete on rlm.harness read as "create what?". The per-kind
wrappers were all ways to manage memories, and prompt notes, skills, and subagent
specs are subtypes of memory, so the single set keeps the *_memory names and
selects the rest through kind: create_memory(title, content, kind=...),
update_memory(id, title, content, kind=...), delete_memory(id, kind=...). The
common old call, create_memory(title, content), is unchanged; the nine other
wrappers name their replacement, and an old path= argument says it is now topic.
@snimu
snimu force-pushed the sebastian/res-1337-record-refinement branch from cd8a8b4 to 5fb205c Compare September 9, 2026 13:37
@snimu

snimu commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Docstring fixed in 5fb205c: RefinementEvent now says the engine records the pass and that changes is empty when no edit applied, instead of implying every event carries applied edits.

The branch is also rebased onto the updated #2154 head, which renamed the unified methods to create_memory/update_memory/delete_memory; the record_refinement guidance error is unchanged. Head 5fb205c, npm run check clean, refinement/system-prompt/ipython-bootstrap/serialized-refine green, kernel-heavy acp-kernel-features green, 47 Python harness tests green.

…eader

A planner can still emit the grouping as path, copying an older harness dump out
of its own context, and the proposal parser was the one reader that looked only
at topic; the entry then landed ungrouped. It now uses the accessor the loader,
the rollback path, and the transcript diff already share.
The refinement engine writes a RefinementEvent for every refinement it applies.
The manual call duplicated those events where the two overlapped and created
unverifiable ones where they did not: a model could claim evidence and an
outcome that nothing checked. Reading events is unchanged through
get_harness_state().refinements and the harness overview, and the engine's own
event writing is untouched.
plan_refinement returned a fixed three-line checklist and had no caller in the
kernel, the host, the prompts, the docs, or the tests; the refinement engine
plans through its own model call. It leaves with the same guidance error as the
other removed names. The new refinements test now writes the engine's events
after the kernel state is already cached, so it exercises the reload before save
instead of a fresh load.
A proposal whose edits are all rejected still records an event, so the docstring
promising applied edits was wrong.
…rness-crud

# Conflicts:
#	packages/coding-agent/src/core/kernel/bootstrap.ts
… into sebastian/res-1337-record-refinement

# Conflicts:
#	packages/coding-agent/src/core/kernel/bootstrap.ts
@sethkarten
sethkarten deleted the branch main September 17, 2026 07:01
@sethkarten sethkarten closed this Sep 17, 2026
@sethkarten
sethkarten deleted the sebastian/res-1337-record-refinement branch September 17, 2026 07:01
@sethkarten
sethkarten restored the sebastian/res-1337-record-refinement branch September 17, 2026 19:04
@snimu snimu reopened this Sep 22, 2026
@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Prime Agent performance — completed

PR a3b505d8 compared with main 18a56bf3.

Overall: 0 regressed · 0 improved · 41 no clear change.

Metric Main This PR Change
Cold startup 675.6 ms 676.3 ms ≈ +0.8 ms (+0.11%)
Warm startup 521.2 ms 535.3 ms ≈ +14.1 ms (+2.70%)
Installation 5.89 s 6.34 s ≈ +0.45 s (+7.57%)
Compressed release artifacts 73.07 MB 73.10 MB ≈ +0.03 MB (+0.04%)
Installed footprint 594.02 MB 594.55 MB ≈ +0.54 MB (+0.09%)
Idle memory, summed RSS 645.26 MB 645.48 MB ≈ +0.23 MB (+0.03%)

Python runtime

Metric Main This PR Change
Python kernel startup 33.0 ms 33.1 ms ≈ +0.073 ms (+0.22%)
Python cell round trip 0.073 ms 0.093 ms ≈ +0.020 ms (+27.21%)
Empty bash command 2.0 ms 2.0 ms ≈ +0.016 ms (+0.81%)
Bash git status 2.7 ms 2.8 ms ≈ +0.1 ms (+5.18%)
Bash 32 KiB output 2.0 ms 2.1 ms ≈ +0.1 ms (+5.18%)
35 cells / 9 shell calls 26.9 ms 26.6 ms ≈ -0.3 ms (-1.04%)
Python interrupt to done 0.487 ms 0.522 ms ≈ +0.036 ms (+7.31%)
Python state snapshot 10.0 ms 10.0 ms ≈ -0.044 ms (-0.44%)
Python state restore 130.6 ms 129.3 ms ≈ -1.3 ms (-0.99%)
Python idle RSS 21.06 MB 21.13 MB ≈ +0.07 MB (+0.33%)
Python RSS after pandas workload 75.60 MB 75.53 MB ≈ -0.06 MB (-0.08%)

Session transport

Metric Main This PR Change
Private frame decode, 32 MiB in 8 KiB chunks 14.7 ms 17.4 ms ≈ +2.7 ms (+18.65%)

UI interactions

Metric Main This PR Change
Resume large session (cold) 1,841.5 ms 1,745.8 ms ≈ -95.7 ms (-5.20%)
CPU, resume large session 1,950.0 ms 1,800.0 ms ≈ -150.0 ms (-7.69%)
Switch into large session 1,692.4 ms 1,775.5 ms ≈ +83.1 ms (+4.91%)
CPU, switch into large session 1,860.0 ms 1,810.0 ms ≈ -50.0 ms (-2.69%)
Open agents view from a session 477.6 ms 452.0 ms ≈ -25.6 ms (-5.36%)
CPU, open agents view 780.0 ms 820.0 ms ≈ +40.0 ms (+5.13%)
Full agents roster, many sessions 4.04 s 4.04 s ≈ +0.0016 s (+0.04%)
CPU, full agents roster 1.03 s 0.98 s ≈ -0.05 s (-4.85%)
Open another session from agents view 1,970.1 ms 1,881.8 ms ≈ -88.3 ms (-4.48%)
CPU, open from agents view 1,030.0 ms 980.0 ms ≈ -50.0 ms (-4.85%)
Reopen resident large session 266.5 ms 263.4 ms ≈ -3.1 ms (-1.15%)
CPU, reopen resident session 270.0 ms 280.0 ms ≈ +10.0 ms (+3.70%)
Open subagent session at depth 6 17,587.1 ms 17,534.9 ms ≈ -52.1 ms (-0.30%)
CPU, open subagent at depth 6 4,510.0 ms 4,480.0 ms ≈ -30.0 ms (-0.67%)
Open chain parent from agents view 3,060.3 ms 3,097.6 ms ≈ +37.4 ms (+1.22%)
CPU, open chain parent 1,370.0 ms 1,370.0 ms ≈ -8.9e-13 ms (-0.00%)
Scheduled catalog, first request 448.5 ms 404.0 ms ≈ -44.5 ms (-9.93%)
CPU, scheduled catalog 830.0 ms 800.0 ms ≈ -30.0 ms (-3.61%)
Scheduled catalog, repeated request 0.5 ms 0.5 ms ≈ +0.03 ms (+6.14%)
CPU, repeated catalog 0.0 ms 0.0 ms ≈ +0.0 ms (N/A)
Cold worker with three catalog scans 383.8 ms 462.3 ms ≈ +78.5 ms (+20.45%)
CPU, cold worker and scans 370.0 ms 380.0 ms ≈ +10.0 ms (+2.70%)
UI memory after interactions 1,942.30 MB 1,769.89 MB ≈ -172.40 MB (-8.88%)

Sandbox cost: ~$0.1032 — no inference calls.
Run, logs, and downloadable raw results

Methodology and samples

Main resolved at 2026-09-22T17:32:15.716017+00:00. Harness 18a56bf3.
Linux x64, 4 vCPU, 8 GB RAM, 20 GB disk; region us.
Image: node:24-bookworm@sha256:be23f54a88d34e8824c741b19b91064094f92c1c97b194144bfc8b50d67258e2.
Stock tools, skills, daemon, and Python bootstrap enabled; fresh homes and a fixed Git fixture.
Onboarding is dismissed; the editor starts without a selected model or submitted prompt.
Medians shown. Arrows require a 20% timing/memory change plus absolute floors and IQR.
These practical noise floors are not a statistical significance test.
Cold means stopped Prime processes; OS filesystem caches are not flushed.
No model requests or credentials. Installation excludes build/setup time.
Installer tarballs use loopback; npm/Python downloads use the network with fresh caches.
Artifact size counts release tarballs; footprint after first use includes registry packages.
MB is decimal. Summed RSS can double-count shared pages; PSS is recorded when available.
Provisioning, setup, and build durations are recorded separately in the raw results.
Kernel probes use the installed JSONL runtime, outside the TUI/TypeScript host.
Per trial: 50 Python cells, 5 calls per shell case, and one 35-cell mix (9 git status calls).
Cell/shell values are batch means; other runtime timings are single operations.
State fixture: a 10,000-row × 8-column integer DataFrame and a 10,000-integer list.
Restore runs in a fresh kernel, including pandas imports; kernel startup is excluded.
Kernel RSS covers the isolated Python process; loaded RSS follows the pandas workload.
Transport benches run node against the prepared source build, outside the installed home.
Frame decode times one 32 MiB private frame, snapshot-chunk header, pushed in
8 KiB chunks; the wire shape of multi-MB frames on the daemon-worker channels.
UI trials use a fresh fixture set: 194 top-level sessions including one ~40 MB transcript,
40 ledger fan-out children, and a 6-deep subagent chain (~46 spawn edges).
Large fixtures hold 1,999 complete triples (~5 MB JSONL); medium 119; subagents 399 each.
Interactions: cold --resume of a large session, warm /resume switch, left-arrow to agents view,
roster settle with many saved sessions, search-and-open of another large session,
reattaching to that resident session, opening the chain parent, and drilling to depth 6.
Readiness is the rendered transcript tail plus a confirmed editor echo.
CPU metrics sum utime+stime across the whole benchmark-user process tree per interaction.
UI memory sums RSS after the interactions; PTY byte counts are in the raw results.
A separate catalog fixture has 2,300 sessions, 2,298 edges, and 13 paused scheduled-job owners.
Catalog timings cover first/repeated reads and cold worker creation under three pending scans.
All expected jobs and owner metadata are checked; worker readiness excludes TUI rendering.
Costs estimate full sandbox lifetimes at configured rates, including setup and build.
Budget target: $1; not a billing cap. Performance changes are informational.
Failed or incomplete execution fails the workflow; saved artifacts remain available.
Each side stops a phase after 2 identical consecutive failures.
Skipped trials are not attempted samples. Warm startup requires a successful cold launch.

Metric Main successful/attempted PR successful/attempted Main spread PR spread
Cold startup 10/10 10/10 IQR 39.2 ms IQR 82.1 ms
Warm startup 10/10 10/10 IQR 65.3 ms IQR 53.9 ms
Installation 3/3 3/3 range 0.51 s range 1.12 s
Compressed release artifacts 1/1 1/1 — —
Installed footprint 1/1 1/1 — —
Idle memory, summed RSS 10/10 10/10 IQR 4.59 MB IQR 2.38 MB
Python kernel startup 10/10 10/10 IQR 2.4 ms IQR 6.6 ms
Python cell round trip 10/10 10/10 IQR 0.034 ms IQR 0.038 ms
Empty bash command 10/10 10/10 IQR 0.6 ms IQR 0.4 ms
Bash git status 10/10 10/10 IQR 0.5 ms IQR 0.4 ms
Bash 32 KiB output 10/10 10/10 IQR 0.3 ms IQR 0.3 ms
35 cells / 9 shell calls 10/10 10/10 IQR 2.5 ms IQR 5.0 ms
Python interrupt to done 10/10 10/10 IQR 0.050 ms IQR 0.079 ms
Python state snapshot 10/10 10/10 IQR 0.9 ms IQR 0.6 ms
Python state restore 10/10 10/10 IQR 3.4 ms IQR 10.5 ms
Python idle RSS 10/10 10/10 IQR 0.17 MB IQR 0.09 MB
Python RSS after pandas workload 10/10 10/10 IQR 0.10 MB IQR 0.14 MB
Private frame decode, 32 MiB in 8 KiB chunks 10/10 10/10 IQR 2.6 ms IQR 2.8 ms
Resume large session (cold) 3/3 3/3 range 499.1 ms range 752.9 ms
CPU, resume large session 3/3 3/3 range 40.0 ms range 240.0 ms
Switch into large session 3/3 3/3 range 495.9 ms range 261.1 ms
CPU, switch into large session 3/3 3/3 range 250.0 ms range 20.0 ms
Open agents view from a session 3/3 3/3 range 15.9 ms range 36.4 ms
CPU, open agents view 3/3 3/3 range 20.0 ms range 40.0 ms
Full agents roster, many sessions 3/3 3/3 range 0.01 s range 0.008 s
CPU, full agents roster 3/3 3/3 range 0.05 s range 0.11 s
Open another session from agents view 3/3 3/3 range 175.3 ms range 42.5 ms
CPU, open from agents view 3/3 3/3 range 110.0 ms range 100.0 ms
Reopen resident large session 3/3 3/3 range 21.8 ms range 24.2 ms
CPU, reopen resident session 3/3 3/3 range 20.0 ms range 30.0 ms
Open subagent session at depth 6 3/3 3/3 range 748.5 ms range 967.9 ms
CPU, open subagent at depth 6 3/3 3/3 range 380.0 ms range 430.0 ms
Open chain parent from agents view 3/3 3/3 range 142.4 ms range 114.4 ms
CPU, open chain parent 3/3 3/3 range 210.0 ms range 70.0 ms
Scheduled catalog, first request 3/3 3/3 range 61.6 ms range 8.6 ms
CPU, scheduled catalog 3/3 3/3 range 100.0 ms range 80.0 ms
Scheduled catalog, repeated request 3/3 3/3 range 1.3 ms range 0.074 ms
CPU, repeated catalog 3/3 3/3 range 10.0 ms range 0.0 ms
Cold worker with three catalog scans 3/3 3/3 range 45.3 ms range 121.8 ms
CPU, cold worker and scans 3/3 3/3 range 20.0 ms range 90.0 ms
UI memory after interactions 3/3 3/3 range 183.88 MB range 3.27 MB

…rness-crud

# Conflicts:
#	packages/coding-agent/src/core/kernel/bootstrap.ts
#	packages/coding-agent/src/core/refinement/refinement.ts
#	packages/coding-agent/src/modes/interactive/components/refinement-outcome-message.ts
#	packages/coding-agent/test/refinement-outcome-message.test.ts
#	packages/coding-agent/test/refinement.test.ts
#	packages/coding-agent/test/suite/agent-session-prompt.test.ts
#	packages/coding-agent/test/suite/agent-session-queue.test.ts
#	packages/coding-agent/test/system-prompt.test.ts
#	prime-agent-runtime/src/rlm/harness.py
…7-record-refinement

# Conflicts:
#	packages/coding-agent/src/core/kernel/bootstrap.ts
#	prime-agent-runtime/src/rlm/harness.py
…7-record-refinement

# Conflicts:
#	prime-agent-runtime/src/rlm/harness.py
sethkarten
sethkarten previously approved these changes Sep 22, 2026

@sethkarten sethkarten 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.

Design review passed: claim-vs-diff verified, revert-probe coverage checked, edge cases and open threads assessed. LGTM.

— Prime Agent (sethkarten's agent)

Base automatically changed from sebastian/res-1336-harness-crud to main September 23, 2026 04:57
@snimu
snimu dismissed sethkarten’s stale review September 23, 2026 04:57

The merge-base changed after approval.

…nsolidation blocks and keeps the removal of record_refinement/plan_refinement)

@sethkarten sethkarten 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.

Design review passed; post-#2154-squash heal applied (branch drops the duplicated consolidation blocks, keeps the record_refinement/plan_refinement removal; 55/55 harness tests green). LGTM.

— Prime Agent (sethkarten's agent)

@sethkarten
sethkarten merged commit 025d134 into main Sep 23, 2026
22 of 40 checks passed
@sethkarten
sethkarten deleted the sebastian/res-1337-record-refinement branch September 23, 2026 04:59
sethkarten added a commit that referenced this pull request Sep 23, 2026
…2581)

The #2471 merge (8ee46be) committed unresolved merge markers into
bootstrap.ts and prompts/rlm.ts (TS1185 on every build against main).
Resolution keeps the post-#2155 prompt text: record_refinement is removed
from the model-facing surface, refinement events are recorded automatically.
KushBeaverTTV pushed a commit to KushBeaverTTV/prime-agent-windows that referenced this pull request Sep 23, 2026
6f413ac skip superseded push builds in the release workflow (PrimeIntellect-ai#2567)
298cf40 fix: resolve the conflict markers left in the kernel prompt strings (PrimeIntellect-ai#2581)
8ee46be fix(runtime): restore snapshot functions with live namespace globals (PrimeIntellect-ai#2471)
025d134 remove the manual record_refinement from the kernel harness surface (PrimeIntellect-ai#2155)
d41a061 fold the per-kind harness CRUD wrappers into create_memory/update_memory/delete_memory (PrimeIntellect-ai#2154)
8969d24 ci: drop the test-LOC budget rule from the test policy (PrimeIntellect-ai#2564)
346a463 fix(ai): keep the Opus 5.5 test biome-canonical and net-zero for the 1:1 policy (PrimeIntellect-ai#2560)
b11fd5e fix(ai): give the Opus 5.5 payload test a compilable, registered surface (PrimeIntellect-ai#2555)
26ec38f fix(coding-agent): provide the required RlmChildRun label in the retained-deletion tombstone (PrimeIntellect-ai#2553)
1c1ad1e [RSI, bug] Free child names at delete receipt and return cancelled collect envelopes (PrimeIntellect-ai#2388)
1e2cc22 fix: treat claude opus 5.5 as always-on adaptive thinking (PrimeIntellect-ai#2533)
36b912f fetch model and mcp catalogs from prime-agent-catalog (PrimeIntellect-ai#2507)
9fb6cde Give ignore parsing, extension discovery and path helpers one owner (PrimeIntellect-ai#2496)
c258a07 [RSI, performance] perf(coding-agent): skip identical roster broadcasts and per-delta child-update serialization (PrimeIntellect-ai#2481)
4f6df9d [RSI, performance] compaction: summarize via auxiliaryModel without evicting the session prompt cache (PrimeIntellect-ai#2411)
236ca7b [RSI, performance] Fetch session history once per switch (PrimeIntellect-ai#2432)
a1792be feat: service-tier control (/tier, default-tier setting, completions forwarding, shared tier pricing) (PrimeIntellect-ai#2144)
05398e4 [RSI, feature] Headless sessions operator table for the daemon CLI (PrimeIntellect-ai#2422)
f022336 [RSI, feature] Daemon incident forensics: prime-agent incident CLI and agents-view notices (PrimeIntellect-ai#2406)
d73349d [RSI, bug] fix(coding-agent): absorb owned worker bridge EPIPE instead of crashing the frontend (PrimeIntellect-ai#2382)
b1d82f0 [RSI, performance] stop the heartbeat/scheduler fan-out to every worker, client, and artifact path (PrimeIntellect-ai#2487)
a144f9a fix(coding-agent): show a preparing turn's prompt in the TUI queued-messages area (PrimeIntellect-ai#2063)
cc55bb1 [RSI, performance] perf(coding-agent): jitter provider retry backoff to de-synchronize retry waves (PrimeIntellect-ai#2474)
238a361 test(coding-agent): pin the RSI review findings within the test-line budget (PrimeIntellect-ai#2501)
893f9d5 Fix six small contract-hygiene issues found by a main audit (PrimeIntellect-ai#2493)
42be58f Move daemon response and session-summary wire guards into daemon-protocol.ts (PrimeIntellect-ai#2509)
02e5bab [RSI, performance] perf(kernel): single-pass state snapshots, bounded restore, post-restore snapshot skip (PrimeIntellect-ai#2478)
1ae4c62 Move shared Prime HTTP helpers into core/prime-http.ts (PrimeIntellect-ai#2510)
0e3c900 fix(kernel): cap error text, refuse oversized host_request payloads, and pin the kernel fixes (PrimeIntellect-ai#2500)
cade9ed fix(coding-agent): stop auto-retrying provider safety-filter failures (PrimeIntellect-ai#2472)
514b4b8 [RSI, performance] perf(coding-agent): fingerprint a bounded turn-body subset for semantic-edge retry identity (PrimeIntellect-ai#2476)
561401b [RSI, performance] perf(coding-agent): cap cell source attached to kernel host requests (PrimeIntellect-ai#2475)
031f12b [RSI, performance] Throttle event-flood hot paths in child updates, roster flushes, top bar, and summarizer (PrimeIntellect-ai#2480)
ab11746 [RSI, performance] perf(coding-agent): cache context-tree child parses keyed by file stats (PrimeIntellect-ai#2477)
5062b1b fix(kernel): compare recorded Python skills by key and pin the marker swap (PrimeIntellect-ai#2499)
1b453dc fix(coding-agent): daemon protocol and quota-park follow-ups (PrimeIntellect-ai#2502)
a0660bb Release the daemon worker client socket after a failed connect (PrimeIntellect-ai#2508)
64a4b84 fix: one owner for the Prime team header, retry failed shell-command credentials (PrimeIntellect-ai#2497)
fb8d741 fix(agent): end truncated proxy streams and send serviceTier through the proxy (PrimeIntellect-ai#2491)

Gates: all passed
Conflicts: auto=1 agent=6
@sethkarten

Copy link
Copy Markdown
Contributor

oops this stack was merged by accident. reverting

sethkarten added a commit that referenced this pull request Sep 23, 2026
…ppers and manual refinement methods (#2670)

* Revert "remove the manual record_refinement from the kernel harness surface (#2155)"

This reverts commit 025d134. Conflicts in bootstrap.ts and prompts/rlm.ts
(the #2581 conflict-marker cleanup touched the same lines) are resolved to the
pre-#2155 text: REQUIRED_HARNESS_METHODS keeps record_refinement and the REPL
control prompt names rlm.harness.record_refinement again.

* Revert "fold the per-kind harness CRUD wrappers into create_memory/update_memory/delete_memory (#2154)"

This reverts commit d41a061. It applied without conflicts: the only later
change to the touched files was the #2581 conflict-marker cleanup, which is
preserved. Restores the twelve per-kind harness CRUD wrappers and the path
grouping field on both the Python and TypeScript sides, and drops the removed-name
guidance that the consolidation introduced.

* docs: changelog fragment for the #2154/#2155 revert

* fix(refinement): migrate topic-spelled harness groupings to path on load

The #2154 revert removed the topic dual-read, so harness state written while the
grouping was spelled `topic` reached the loader without a `path`: entries rendered
`undefined`, and an update or a rollback of a refinement from that window fell back
to the `general` grouping, losing the original one for good.

Both readers of harness_state.json now migrate `topic` to `path` at load, and the
rollback path restores a recorded `before` snapshot's grouping from either spelling.
The writers still emit the `path` spelling only, and the Python loader drops `topic`
through _ENTRY_FIELDS exactly as before.

Pins: a topic-spelled persisted entry loads with its grouping preserved, renders it,
and saves back under `path` (TS and Python), and a legacy snapshot whose
`edit.before` carries only `topic` rolls back to the original grouping.
KushBeaverTTV pushed a commit to KushBeaverTTV/prime-agent-windows that referenced this pull request Sep 24, 2026
e260085 prepare prime agent v0.9.6 release (PrimeIntellect-ai#2513)
acc5bc0 [PR -- Features] Revert PrimeIntellect-ai#2154/PrimeIntellect-ai#2155: restore the per-kind harness wrappers and manual refinement methods (PrimeIntellect-ai#2670)
703cc45 bump the Claude Code client version claimed by Anthropic subscription requests (opus-5.5 gate) + ban-risk warning (PrimeIntellect-ai#2645)

Gates: all passed
Conflicts: auto=0 agent=0
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.

2 participants