@einsia/agent-git 0.2.15 → 0.2.17

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -8,6 +8,93 @@ its [GitHub Release](https://github.com/Einsia/agent-git/releases), and the
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.2.17] - 2026-10-02
12
+
13
+ ### Added
14
+
15
+ - Remote control on the web can send messages into a Claude Code session that is
16
+ running in another process, such as the Claude desktop app or the `claude` CLI,
17
+ through Claude Code's cross-session messaging (Claude Code 2.1.224 or later). The
18
+ running session stays the only writer of its transcript: a message sent during a
19
+ turn is read between tool calls, and an idle session starts a new turn with it.
20
+ In bypass-permissions mode, the device owner's messages go through a relay that
21
+ agit's Claude Code Stop hook (installed by `agit setup`) starts once a turn ends
22
+ in that mode; Claude Code holds everyone else's messages, and the owner's while
23
+ no relay runs, for approval on the machine. Only a workspace owner may send
24
+ messages to a session whose transcript shows it has ever run in
25
+ bypass-permissions mode, or records no permission mode at all.
26
+
27
+ ### Fixed
28
+
29
+ - `agit push <owner/repo@branch> --to <existing repository>` (and `agit project sync`
30
+ copies of sessions claimed elsewhere) no longer push the source repository's
31
+ `main` file line. The destination keeps its own `main`; before, the copy failed
32
+ as a rejected non-fast-forward, or fast-forwarded the destination's shared files
33
+ to the source's. A destination the push creates still receives the source's `main`.
34
+ - A Claude Code prompt whose record starts with a runtime-injected block, such as the
35
+ worktree reminder the desktop app puts ahead of a session's first message, is
36
+ kept as the turn's prompt instead of being dropped with the injection, whether
37
+ the reminder is a separate text block or leads the same string. Such a session
38
+ lost its opening prompt, and one with a single prompt had no turn to save or
39
+ upload.
40
+ - Remote control publishes a turn that finished while the device's sign-in had
41
+ lapsed as soon as authentication recovers, instead of waiting for the next turn.
42
+ - Opening a device from the web no longer stalls when the device's first discovery
43
+ reply is lost: the controller retries the read-only discovery once.
44
+
45
+ ## [0.2.16] - 2026-10-02
46
+
47
+ ### Added
48
+
49
+ - Each settled commit records the runtime's own name for the session in
50
+ `session/meta.json` as `title`: the latest Claude Code title (`custom-title`,
51
+ falling back to an older transcript's `summary`) or the Codex thread name from
52
+ `session_index.jsonl`. A rename appears from the next settlement on. The
53
+ `agit: unnamed` and `agit <owner/repo@branch>` placeholders that agit's own
54
+ SessionStart hook assigns are not recorded. The title is protected like other
55
+ metadata observations and is not part of encrypted metadata projection.
56
+
57
+ ### Changed
58
+
59
+ - Privacy processing runs in a bounded local worker. Detected secrets receive
60
+ reversible placeholders when their originals can be saved. Incomplete scans
61
+ keep completed replacements; unavailable storage, scan failures and timeouts
62
+ skip the affected privacy work and let conversation operations continue.
63
+ - Signed-in accounts obtain an automatically generated cloud dictionary key.
64
+ Without a usable key, mappings remain in private local pending storage. Push,
65
+ login and fetch schedule encrypted dictionary synchronization independently;
66
+ another signed-in device can restore mappings after synchronization succeeds.
67
+ - Local default, global user and repository user rules share one policy path.
68
+ Explicit blocks override allows, and allows override heuristic findings.
69
+ Recovery records survive rule changes without becoming permanent block rules.
70
+ - Uploads require no secret-finding review or cloud privacy-policy resolution.
71
+ Existing Git history is preserved. LFS payloads are outside privacy processing;
72
+ their authorization, availability and integrity checks remain in place.
73
+ - This release requires the matching backend update to remove older server
74
+ privacy gates. A skipped local transformation may retain original sensitive
75
+ content, and pending dictionaries become recoverable on other devices only
76
+ after successful encrypted synchronization.
77
+
78
+ - Project Stop hooks start session uploads in a background process and return
79
+ immediately. Project status reports the resulting upload state.
80
+
81
+ ### Fixed
82
+
83
+ - Automatic project binding installs hooks for available runtimes that support
84
+ them; other runtime sessions remain publishable through project sync.
85
+
86
+ - Live output preserves every emitted fragment and the remaining stream tail
87
+ when local privacy processing is unavailable.
88
+ - Legacy native message identifiers stored as secret placeholders can be restored
89
+ without changing unmasked carrier identities.
90
+
91
+ - `agit project sync` publishes a session that another repository already claims, such
92
+ as one started from a desktop RC project, as a separate copy of that claim's branch
93
+ in the project repository, instead of failing with "session already belongs to another
94
+ repository". The original claim and the RC project's own publication target are
95
+ unchanged; each later sync refreshes the copy. `--history none` keeps excluding such
96
+ earlier sessions.
97
+
11
98
  ## [0.2.15] - 2026-10-01
12
99
 
13
100
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@einsia/agent-git",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "Version control for agent sessions — the agit CLI plus skills/hooks/MCP wiring for Claude Code, Codex, OpenCode and Cursor. The AgentGit hub deploys separately.",
5
5
  "keywords": [
6
6
  "agit",
@@ -49,10 +49,10 @@
49
49
  "access": "public"
50
50
  },
51
51
  "optionalDependencies": {
52
- "@einsia/agent-git-linux-x64": "0.2.15",
53
- "@einsia/agent-git-linux-arm64": "0.2.15",
54
- "@einsia/agent-git-darwin-x64": "0.2.15",
55
- "@einsia/agent-git-darwin-arm64": "0.2.15",
56
- "@einsia/agent-git-win32-x64": "0.2.15"
52
+ "@einsia/agent-git-linux-x64": "0.2.17",
53
+ "@einsia/agent-git-linux-arm64": "0.2.17",
54
+ "@einsia/agent-git-darwin-x64": "0.2.17",
55
+ "@einsia/agent-git-darwin-arm64": "0.2.17",
56
+ "@einsia/agent-git-win32-x64": "0.2.17"
57
57
  }
58
58
  }