Repository navigation
Releases: st0nebridge/conPACT
Release list
conPACT 1.5.2
conPACT 1.5.2 makes conPACT find the processes around it on Windows however busy the machine is.
- The MCP server finds the session that started it, even under load. On Windows, the MCP server worked out which session started it by starting PowerShell to read its parent processes, and gave up after 5 seconds. That read took 2.6 to 5.3 seconds on an idle machine, and longer under load. When it ran out, a server started through a virtual environment bound to the environment's launcher instead of the session, and its tools answered "Could not identify this session". The parent processes are now read directly, in about a millisecond, and a virtual environment started through a junction, a
substdrive or a..path is still recognised. - The Codex CLI Stop hook and the Codex MCP server no longer give up under load. They read their parent process the same way, within 3 and 5 seconds. On a busy machine the Stop hook could decide it was not running under conPACT's app-server and do nothing, and the MCP server could fail to tell the Codex CLI from ChatGPT Desktop. Both now read it directly too.
Nothing changes on macOS or Linux, which still ask ps.
Validation: the Windows suite passes from the release's own files (3,261 passed; 7 skipped: no git checkout, or POSIX-only), as does the plugin's own suite through Claude Code's test host (128 passed), with strict plugin validation. The wheel and source archive are built from the tagged commit; the wheel was installed in a fresh environment, its command-line help checked, and the installed package, started through that environment's launcher, named the process that started it. Linux and macOS were last run in full before 1.3.0.
conPACT 1.5.1
conPACT 1.5.1 fixes a crash in the doctor.
- The doctor no longer stops on an unexpected Codex
config.toml. If Codex'sconfig.tomlsetmcp_serversto anything other than a table, for examplemcp_servers = "python",python tools/doctor.pystopped with a traceback and printed none of the checks after it. It now reports the Codex MCP check as failed ("conpact is missing from config.toml") and goes on to the rest. - The doctor's checks are now fully tested. Its tests read what every check reports, in each of its cases; its mutation score rises from 21.6% to 100%. Nothing else in conPACT changed.
Validation: the Windows suite passes from the release's own files (3,209 passed; 7 skipped: no git checkout, or POSIX-only), as does the plugin's own suite through Claude Code's test host (128 passed), with strict plugin validation. The wheel and source archive are built from the tagged commit; the wheel was installed in a fresh environment, its command-line help checked, and its doctor run against a config.toml whose mcp_servers is a string. Linux and macOS were last run in full before 1.3.0.
conPACT 1.5.0
conPACT 1.5.0 notices when Claude Code starts compacting idle sessions by itself, and lets you choose which of the two does it.
What's new:
- Claude Code's own idle compaction, asked about once. Anthropic can switch on, per account, an idle compaction built into Claude Code: a session of 200,000 tokens or more is compacted about 54 minutes after the last reply, a minute before conPACT's toast would come, without asking, and conPACT then stands down. conPACT now reads that switch as Claude Code caches it, your own
idleCompactionsetting and whether auto-compaction is on. The first time Claude Code's idle compaction is active while conPACT's idle toast is on, a toast explains it and asks which one should compact your idle sessions: Use conPACT's writes"idleCompaction": falseinto~/.claude/settings.json, keeping every other key; Use Claude Code's switches conPACT's idle toast off; Keep both changes nothing. It waits for your answer and is never asked again, whatever you choose. The switch is an undocumented flag with an internal name: if a Claude Code update renames it, conPACT says "not found" and asks nothing, rather than guessing "off". Details: docs/idle-toast.md. - A Claude Code tab in the settings. The settings window's fifth tab shows Anthropic's switch for your account and lets you opt out of Claude Code's idle compaction, or back in, saved only when you press Save.
python tools/doctor.pyreports where it stands. conPACT never turns auto-compaction off, which would also lose the compaction at the context limit.
conPACT now writes two keys of Claude Code's user settings, remoteControlAtStartup and idleCompaction, each only when you click for it. Every other key is kept, the write is atomic, and a file it cannot parse is left alone.
Validation: the Windows suite passes from the release's own files (3,144 passed; 7 skipped: no git checkout, or POSIX-only), as does the plugin's own suite through Claude Code's test host (128 passed), with strict plugin validation. The wheel and source archive are built from the tagged commit; the wheel was installed in a fresh environment and its command-line help checked. Linux and macOS were last run in full before 1.3.0.
conPACT 1.4.0
conPACT 1.4.0 keeps compaction summaries honest about where their rules came from, and fixes a second, unwanted compaction of an idle session.
What's new:
- Summaries keep each constraint's source. A compaction summary lists the constraints the next session should follow, but not where each one came from, so a precaution the agent chose for itself, a single permission denial or another session's request can come back as a rule that reads as yours, and every later summary copies it forward. Every compaction conPACT starts (the one the agent queues and the idle toast's) now asks the summary to list a constraint as binding only with its source, your own words and the date or the file it lives in, and to keep the agent's own precautions, denials and other sessions' requests apart as its working choices, dated, ending with their task. The queue tool now asks the agent to write its focus as facts and never to word its own choices as yours.
- A check after every compaction.
tools/compact_provenance.py, run as aSessionStarthook with the matchercompact, reads the summary just written, picks out its constraints and looks for each one in your own messages (what you typed, queued, chose in a question or refused), yourCLAUDE.mdfiles,AGENTS.md,DECISIONS.md, the project's memory and the system prompt. It tells the resumed agent which constraints it traced and where, which a source seems to contradict, which rest on a file the agent wrote itself, which came from another session, and which have no source at all, and asks for your words before an unsourced one blocks or narrows any work. It covers every compaction, whoever started it, never fails the hook, finishes in seconds even on a transcript of hundreds of megabytes, and logs each check so--reportshows the trend. Setup: the README's "Checking the summary's sources"; details: docs/agent-workflow.md.
Fixed:
- An idle session compacted since its turn end is left alone. When an agent's queued compaction ran through the Claude Code plugin, the idle watch armed at that same turn end could still offer to compact the freshly compacted session before its cache expired, and compact it again once the offer was put off. The watch now stands down once the session has been compacted since its turn end, whether by the agent, by a
/compactyou typed or automatically.
Validation: the Windows suite passes from the release's own files (2,959 passed; 7 skipped: no git checkout, or POSIX-only), as does the plugin's own suite through Claude Code's test host (128 passed), with strict plugin validation. The wheel and source archive are built from the tagged commit; the wheel was installed in a fresh environment and its command-line help checked. Linux and macOS were last run in full before 1.3.0.
conPACT 1.3.2
conPACT 1.3.2 is the first public release. conPACT lets a coding agent compact its own context when a piece of work is finished, in Claude Code and in ChatGPT Desktop's Codex, after its final answer and without clearing the visible conversation.
What it does:
- Agent-initiated compaction. The agent calls
queue_compaction(MCP) at the end of verified work, optionally with a focus for the summary and a minimum context size. The session is compacted after the turn ends, exactly once. - Claude Code. A Claude Code plugin compacts the session in process: in the terminal through the same operation
/compactuses, and in the Desktop app's Code tab by running/compact. A row above the prompt follows the request: queued (with cancel), compacting, then before and after, with a meter, the saving and the time. Where the plugin cannot load, a Stop hook sends/compactover Remote Control. - Idle toast. Before an idle session's prompt cache expires, a small notification offers to compact it, or does so automatically if you ask.
- ChatGPT Desktop (Codex). A sidecar compacts live Codex threads on Windows, macOS and Linux, and confirms each compaction from the thread's own record before reporting success.
This release changes no behaviour from 1.3.1. It tidies the repository for publication: the records and test data no longer name private sessions or projects, and real thread ids are replaced with placeholders. The project's earlier history is folded into this one commit; CHANGES.md keeps every change since the first version.
Thanks to @LanceSandino for the macOS support, Codex CLI compaction and the read-only doctor, the macOS sidecar's move to ChatGPT Desktop's new layout, and confirming compactions with very large history records.
Validation: the Windows suite passes on this tree, as does the plugin's own suite through Claude Code's test host, with strict plugin validation. The wheel and source archive are built from the tagged commit; the wheel was installed in a fresh environment and its command-line help checked. Linux and macOS were last run in full before 1.3.0.