aiterm-mcp 0.61.0 → 0.61.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -1
- package/README.ja.md +1 -1
- package/README.md +1 -1
- package/dist/core.js +11 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.61.2] - 2026-10-22
|
|
11
|
+
|
|
12
|
+
### 修正
|
|
13
|
+
|
|
14
|
+
- tmuxがまだ起動しておらず、対象ソケットが存在しない時、新規実行の登録が`EXECUTION_UNCONFIRMED`で止まっていた。実行世代の観測でもソケット未作成を空状態として扱い、初回の席を起動できるようにした。別ソケットや権限・接続の異常は引き続き不明として止める。
|
|
15
|
+
|
|
16
|
+
## [0.61.1] - 2026-10-22
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- A first stop request before tmux has ever started now returns `idle` when the selected socket reports its exact ENOENT diagnostic. Permission errors, other sockets, malformed listings and conflicting output remain unconfirmed. No server, CLI, key, or graph checkpoint is created for this cold stop.
|
|
21
|
+
|
|
10
22
|
## [0.61.0] - 2026-10-22
|
|
11
23
|
|
|
12
24
|
### Added
|
|
@@ -2703,7 +2715,9 @@ prototype (preserved under `prototype/python/` as the porting source and referen
|
|
|
2703
2715
|
`ubuntu-latest` for Node 18/20/22, publishing to npm on `v*` tags with
|
|
2704
2716
|
provenance.
|
|
2705
2717
|
|
|
2706
|
-
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.61.
|
|
2718
|
+
[Unreleased]: https://github.com/kitepon/aiterm-mcp/compare/v0.61.2...HEAD
|
|
2719
|
+
[0.61.2]: https://github.com/kitepon/aiterm-mcp/compare/v0.61.1...v0.61.2
|
|
2720
|
+
[0.61.1]: https://github.com/kitepon/aiterm-mcp/compare/v0.61.0...v0.61.1
|
|
2707
2721
|
[0.61.0]: https://github.com/kitepon/aiterm-mcp/compare/v0.60.1...v0.61.0
|
|
2708
2722
|
[0.60.1]: https://github.com/kitepon/aiterm-mcp/compare/v0.60.0...v0.60.1
|
|
2709
2723
|
[0.60.0]: https://github.com/kitepon/aiterm-mcp/compare/v0.59.1...v0.60.0
|
package/README.ja.md
CHANGED
|
@@ -209,7 +209,7 @@ runtime-error store は canonical dotagents config の `collection.enabled: true
|
|
|
209
209
|
場合だけ収集し、既定OFF、network送信は行いません。tag起点CIのnpm provenance(OIDC Trusted
|
|
210
210
|
Publishing)で公開し、GitHub Release が Official MCP Registry を再登録します。
|
|
211
211
|
|
|
212
|
-
**状態:** 開発継続中 · 現行公開版 **v0.61.
|
|
212
|
+
**状態:** 開発継続中 · 現行公開版 **v0.61.2** · 動作対象は Linux · WSL2 · macOS · Windows ネイティブ · MIT · [変更履歴](CHANGELOG.md)。
|
|
213
213
|
|
|
214
214
|
### 更新と巻き戻し
|
|
215
215
|
|
package/README.md
CHANGED
|
@@ -227,7 +227,7 @@ collection is off by default and performs no network I/O. It ships via
|
|
|
227
227
|
tag-triggered CI with npm provenance (OIDC Trusted Publishing); the GitHub
|
|
228
228
|
Release re-registers the Official MCP Registry entry.
|
|
229
229
|
|
|
230
|
-
**Status:** actively maintained · current public release **v0.61.
|
|
230
|
+
**Status:** actively maintained · current public release **v0.61.2** · runs on Linux · WSL2 · macOS · native Windows (tmux on POSIX, the tmux-CLI-compatible [psmux](https://github.com/psmux/psmux) on native Windows — no WSL required) · MIT · see the [CHANGELOG](CHANGELOG.md).
|
|
231
231
|
|
|
232
232
|
### Update and rollback
|
|
233
233
|
|
package/dist/core.js
CHANGED
|
@@ -25,7 +25,7 @@ import { unfinishedDeliveriesOwnedBy } from "./parent-delivery-owners.js";
|
|
|
25
25
|
import { readRuntimeProcesses, readProcessIdentities, processSubtree, parentProcess, processIdentity, backgroundProcesses, lazyRelayProcess, aitermProcessProbe, windowsConsoleHost, processElapsedSeconds } from "./process-runtime.js";
|
|
26
26
|
import { liveNodeExecutable } from "./live-node.js";
|
|
27
27
|
import { AitermError, telemetryOwnedFailure, ownTelemetryFailure } from "./errors.js";
|
|
28
|
-
import { isWin, SOCKDIR, tmuxCommand, sendPsmuxPayload, loadPtyBufferChunk, pasteBufferBaseArgs, tmuxNewSession, openPsmuxServerToDesktop, registeredSessionEnvironment, attachCommand, normalizePaneCommand, atomicShellMultiline, appendMarkSentinel, markShellCommand, settlePaneLog, paneCwdArgument, sessionEnvironmentLaunch, } from "./tmux-runtime.js";
|
|
28
|
+
import { isWin, SOCKDIR, SOCK, tmuxCommand, sendPsmuxPayload, loadPtyBufferChunk, pasteBufferBaseArgs, tmuxNewSession, openPsmuxServerToDesktop, registeredSessionEnvironment, attachCommand, normalizePaneCommand, atomicShellMultiline, appendMarkSentinel, markShellCommand, settlePaneLog, paneCwdArgument, sessionEnvironmentLaunch, } from "./tmux-runtime.js";
|
|
29
29
|
import { AGENT_DEFAULT_PREFACE, sleep, currentUid, runtimeStateBase, safeStatSize, readFileRange, writeJson0600, createEmpty0600, shq, LAUNCH_ID_RE, AGENT_DONE_POLL_MS, AGENT_RATE_LIMIT_POLL_MS, pollGate, AGENT_EVENT_MAX_BYTES, assertSessionName, agentsDir, agentEventPath, agentMetadataPath, writeAgentMetadata, AGENT_EVENT_TAIL_BYTES, agentLabel, agentHarness, subagentInstruction, agentLineageFields, } from "./agent-shared.js";
|
|
30
30
|
import { catalogUnavailable } from "./model-catalog.js";
|
|
31
31
|
import { FastModeError, fastModeFailure } from "./fast-mode.js";
|
|
@@ -1905,6 +1905,14 @@ export function closeSessionResult(name) {
|
|
|
1905
1905
|
outcome: existed ? "closed" : "already_closed",
|
|
1906
1906
|
};
|
|
1907
1907
|
}
|
|
1908
|
+
// A never-started POSIX server has no socket yet. Only the exact scoped tmux
|
|
1909
|
+
// absence diagnostics prove that no native session exists.
|
|
1910
|
+
function absentExecutionServer(result) {
|
|
1911
|
+
const diagnostic = result.stderr.trim();
|
|
1912
|
+
return result.code === 1 && result.stdout.trim() === ""
|
|
1913
|
+
&& (diagnostic === `no server running on ${SOCK}`
|
|
1914
|
+
|| (!isWin && diagnostic === `error connecting to ${SOCK} (No such file or directory)`));
|
|
1915
|
+
}
|
|
1908
1916
|
/** Cascade-stop adapter only: caller must already own the shared issued close
|
|
1909
1917
|
* slot across every serving mutation path. No graceful idle wait, name-only
|
|
1910
1918
|
* kill, cleanup of a replacement's metadata, or retry. Not publicly mounted.
|
|
@@ -1913,8 +1921,7 @@ export function observeExecutionNativeSessions() {
|
|
|
1913
1921
|
const result = tmux("list-sessions", "-F", "#{session_id}\t#{session_name}");
|
|
1914
1922
|
if (result.code === 0)
|
|
1915
1923
|
return parseExecutionNativeSessions(result.stdout);
|
|
1916
|
-
|
|
1917
|
-
if (/^no server running on /i.test(result.stderr.trim()))
|
|
1924
|
+
if (absentExecutionServer(result))
|
|
1918
1925
|
return { state: "known", sessions: [] };
|
|
1919
1926
|
return { state: "unknown" };
|
|
1920
1927
|
}
|
|
@@ -1928,7 +1935,7 @@ export function observeExecutionNativeCreationScope() {
|
|
|
1928
1935
|
const read = () => tmux("list-sessions", "-F", "#{pid}\t#{session_id}\t#{session_name}");
|
|
1929
1936
|
const first = read();
|
|
1930
1937
|
if (first.code !== 0)
|
|
1931
|
-
return
|
|
1938
|
+
return absentExecutionServer(first)
|
|
1932
1939
|
? { state: "known", sessions: [], server: null } : { state: "unknown" };
|
|
1933
1940
|
const rows = first.stdout.trim().split(/\r?\n/).filter(Boolean).map(line => line.split("\t"));
|
|
1934
1941
|
if (!rows.length)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiterm-mcp",
|
|
3
|
-
"version": "0.61.
|
|
3
|
+
"version": "0.61.2",
|
|
4
4
|
"mcpName": "io.github.kitepon/aiterm-mcp",
|
|
5
5
|
"description": "Persistent terminal MCP with one harness-based launcher for Claude Code, Codex CLI, Grok CLI, and Cursor Agent CLI, plus durable PTYs for SSH, containers, and REPLs.",
|
|
6
6
|
"keywords": [
|