mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 12:39:42 +02:00
chore: version packages
This commit is contained in:
@@ -1,22 +0,0 @@
|
||||
---
|
||||
'aicodeman': patch
|
||||
---
|
||||
|
||||
fix(web): stop the Claude response viewer from following another session's conversation
|
||||
|
||||
The viewer re-derived a pane's live conversation by taking the newest
|
||||
`~/.claude/history.jsonl` entry for the pane's cwd. A cwd is shared with every
|
||||
other Codeman tab on it, with tabs long since closed, and with any plain
|
||||
`claude` run in the user's own terminal, so the eye followed whichever of those
|
||||
was typed into last — and the adoption was written back to the session, so the
|
||||
mispin persisted. Entries are now credited to a pane only when they land within
|
||||
10s of that pane's own Enter and no other pane on the cwd submitted closer, the
|
||||
same last-submit correlation the Codex locator already uses.
|
||||
|
||||
That correlation also has to survive a restart. `start()` resets
|
||||
`claudeSessionId` to the launch id even when re-attaching to a mux session whose
|
||||
CLI has since moved on via `/clear`, so a recovered pane pointed the viewer at
|
||||
its pre-`/clear` transcript — and with the anchor itself living only in memory,
|
||||
nothing corrected it until the user happened to type again. `lastSubmitAt` is
|
||||
now persisted in `SessionState` and restored on boot recovery, so the viewer
|
||||
re-derives the live conversation on its first poll.
|
||||
@@ -1,5 +1,69 @@
|
||||
# aicodeman
|
||||
|
||||
## 1.11.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- fix(history): Past Sessions data quality, and gate the phone run picker on CLI availability
|
||||
|
||||
**Past Sessions data quality (#215).** Three bugs in the transcript scanner behind
|
||||
the Cmd+K Session Manager and the phone overview's PAST SESSIONS list:
|
||||
- Automated/SDK-driven transcripts (CI review bots and other tooling, which Claude
|
||||
Code stamps with a non-`cli` `entrypoint`) were listed alongside real interactive
|
||||
sessions even though they were never resumable. They are now excluded. Detection
|
||||
scans every entrypoint-bearing message rather than stopping at the first, so a
|
||||
transcript that began under an older Claude Code build and only later picked up a
|
||||
non-`cli` entrypoint is no longer wrongly hidden.
|
||||
- A resumed session could show a same-directory sibling's preview text as its own.
|
||||
The `workingDir` backfill in `mergeUnifiedSessions()` now only ever applies to rows
|
||||
that have no history entry of their own, so it can no longer overwrite a row's real
|
||||
content with another conversation's.
|
||||
- Sessions restarted many times accumulated enough bookkeeping lines to push the real
|
||||
first prompt past the scanner's 16KB head-read window, leaving a blank row. The read
|
||||
is now two-tier: 16KB first, escalating to 128KB only when that was not enough, which
|
||||
is both correct and cheaper than reading 128KB unconditionally (measured on a real
|
||||
transcript tree: 36% fewer bytes read, roughly 17.5% faster than the unconditional
|
||||
version). Also restores the tail-read fallback for a file whose head read failed
|
||||
outright (for example `EMFILE` while scanning hundreds of files), which had been
|
||||
silently dropping the session from history.
|
||||
|
||||
Follow-up hardening on top of the above: the automated-transcript exclusion now
|
||||
blocklists the SDK entrypoint shape (`sdk`, `sdk-cli`, `sdk-py`) instead of allowlisting
|
||||
the exact value `cli`. Because the check hides rows, an allowlist failed closed on any
|
||||
value Claude Code has not shipped yet: a future rename of the interactive entrypoint,
|
||||
or a second interactive host, would have blanked the entire Past Sessions list with
|
||||
nothing in the UI to explain it. An unrecognized automated entrypoint now costs a few
|
||||
noisy rows instead, which is the annoyance this filter set out to fix rather than a
|
||||
broken feature.
|
||||
|
||||
**Phone overview run picker (#214).** The "C" logo home screen's Run picker listed all
|
||||
six backends regardless of what was installed, so tapping an uninstalled one produced a
|
||||
failed launch instead of the entry simply not being offered. It is now gated on
|
||||
`isCliAvailable()` exactly like the desktop toolbar's run-mode dropdown (shell exempt,
|
||||
since it has no external CLI dependency and keeps the menu from ever being empty). The
|
||||
picker is a hardcoded duplicate of the toolbar menu rather than a shared render, which
|
||||
is why it never picked up the earlier gating work; a test now asserts that every mode
|
||||
the picker offers is gated, so a newly added backend cannot silently drift again.
|
||||
|
||||
- 73315bc: fix(web): stop the Claude response viewer from following another session's conversation
|
||||
|
||||
The viewer re-derived a pane's live conversation by taking the newest
|
||||
`~/.claude/history.jsonl` entry for the pane's cwd. A cwd is shared with every
|
||||
other Codeman tab on it, with tabs long since closed, and with any plain
|
||||
`claude` run in the user's own terminal, so the eye followed whichever of those
|
||||
was typed into last — and the adoption was written back to the session, so the
|
||||
mispin persisted. Entries are now credited to a pane only when they land within
|
||||
10s of that pane's own Enter and no other pane on the cwd submitted closer, the
|
||||
same last-submit correlation the Codex locator already uses.
|
||||
|
||||
That correlation also has to survive a restart. `start()` resets
|
||||
`claudeSessionId` to the launch id even when re-attaching to a mux session whose
|
||||
CLI has since moved on via `/clear`, so a recovered pane pointed the viewer at
|
||||
its pre-`/clear` transcript — and with the anchor itself living only in memory,
|
||||
nothing corrected it until the user happened to type again. `lastSubmitAt` is
|
||||
now persisted in `SessionState` and restored on boot recovery, so the viewer
|
||||
re-derives the live conversation on its first poll.
|
||||
|
||||
## 1.11.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -74,7 +74,7 @@ When user says "COM":
|
||||
|
||||
CI runs `npm run check:lockfile` on every push/PR, so lockfile drift fails the build even if the `version-packages` script is bypassed.
|
||||
|
||||
**Version**: 1.11.0 (must match `package.json`)
|
||||
**Version**: 1.11.1 (must match `package.json`)
|
||||
|
||||
## Project Overview
|
||||
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "aicodeman",
|
||||
"version": "1.11.0",
|
||||
"version": "1.11.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "aicodeman",
|
||||
"version": "1.11.0",
|
||||
"version": "1.11.1",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"workspaces": [
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "aicodeman",
|
||||
"version": "1.11.0",
|
||||
"version": "1.11.1",
|
||||
"description": "Mission control for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
|
||||
Reference in New Issue
Block a user