@einsia/agent-git 0.2.22 → 0.2.25

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 +127 -0
  2. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -8,6 +8,133 @@ its [GitHub Release](https://github.com/Einsia/agent-git/releases), and the
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.2.25] - 2026-10-25
12
+
13
+ ### Added
14
+
15
+ - `agit privacy mode OWNER/REPO@BRANCH plain` selects unencrypted publication before a session's
16
+ first remote registration. The choice follows the logical session across branches, keeps source
17
+ history unchanged, and is separate from repository visibility. Use `encrypted` to opt into
18
+ encryption before registration, or omit the mode to inspect the local choice and registered mode.
19
+
20
+ - `agit privacy policy tool [NAME] --omit true|false` controls calls and results together, with
21
+ exact tool-name and runtime-qualified overrides. `--reset` removes a named override.
22
+ - `agit privacy policy attachment omit|metadata|original` controls recorded attachments in
23
+ encrypted public views, privacy exports and shares. Plain push retains its existing path.
24
+
25
+ ### Changed
26
+
27
+ - New sessions, first imports and independent forks default to plain publication again.
28
+ 0.2.24 created them with encrypted publication by default, which its release notes did not
29
+ mention. Existing recorded and registered modes are preserved, including those of sessions
30
+ 0.2.24 created. Select `privacy mode OWNER/REPO@BRANCH encrypted` before registration to
31
+ enable encryption.
32
+ - Privacy projections default to visible tools and original attachments, including when an
33
+ existing policy omits the new fields. Configure omission explicitly to hide them. Captured
34
+ file-tool content no longer requires a workspace/include match; explicit and mandatory file
35
+ exclusions remain effective. Readable text remains sanitized; recorded binary carriers are retained.
36
+
37
+ ### Fixed
38
+
39
+ - A privacy dictionary upload that the Hub, or a network policy in front of it, refuses is no
40
+ longer sent again on every push, fetch, clone and login. agit retries it after a delay that
41
+ starts at 10 minutes and grows to 6 hours, and keeps downloading dictionaries from other
42
+ devices meanwhile. `agit push` and `agit doctor` say whether a network policy or the Hub
43
+ refused it; `agit login` retries at once.
44
+
45
+ - Publication notices distinguish configured hiding, attachment handling, unsupported formats
46
+ and unverifiable sources. Omitted tools preserve call/result classification instead of opening
47
+ user turns, and activity summaries exclude both legacy and specific omission notices.
48
+
49
+ - Encrypted publication restores originals against a frozen dictionary across all batches and
50
+ resolves evidence references independently of LOG order. Repeated events no longer fail with
51
+ "hydration has ambiguous evidence provenance" after partial foreground hydration or forward
52
+ evidence references; unavailable mappings stop preparation before upload.
53
+
54
+ - Raise the sanitized public projection budget to 64 MiB to match the private ciphertext budget,
55
+ so large session displays can be published alongside their encrypted originals. The complete
56
+ envelope remains bounded to 128 MiB.
57
+
58
+ - `agit push` previews session branches with a long plain history instead of failing with
59
+ "plain preview exceeds its content budget", and prepares them substantially faster. The
60
+ preview shows each distinct file version once and an append-only file as the bytes it adds.
61
+ - After a macOS restart, `agit rc status`, `agit upgrade` and daemon startup
62
+ recognize the control socket a stopped daemon left behind and reclaim it,
63
+ instead of asking for a manual `agit rc local recover`.
64
+ - Loading earlier messages of a remote conversation whose saved archive could not
65
+ be applied no longer fails as an expired history snapshot; the page kept
66
+ spinning on "Loading the latest conversation" while it retried.
67
+ - A conversation taken over from a registered runtime source keeps the name the
68
+ device shows for it, instead of appearing as an untitled session in its
69
+ project.
70
+ - Encrypted publication preserves Git authors, committers, timestamps, message encoding and
71
+ commit messages. Existing published snapshots remain compatible when history continues.
72
+
73
+ ## [0.2.24] - 2026-10-21
74
+
75
+ ### Added
76
+
77
+ - `agit activity` and its MCP tool query a person's saved user and assistant messages
78
+ over an explicit time range, with optional session selection and JSON pagination.
79
+ Results are grouped by saved commit, oldest first, and a cursor keeps working while
80
+ new work is saved. Existing clones are fetched once per query and read locally;
81
+ other repositories are queried on the Hub without cloning. Encrypted publications
82
+ use accepted account attribution and publication time, and incompleteness is
83
+ reported for the whole query. `--assistant last` keeps every user message but only the
84
+ final assistant reply to each. Requires a Hub supporting activity schema version 3.
85
+
86
+ ### Fixed
87
+
88
+ - The bundled Linux Git runtime uses the current Alpine builds of expat, c-ares
89
+ and the CA bundle; the previous builds are no longer published, so release
90
+ builds could not assemble the runtime.
91
+ - Remote control opens Codex conversations that have been idle long enough for
92
+ Codex to compress their transcript, and conversations Codex continued in a
93
+ new transcript segment. Such conversations stayed on "Restoring
94
+ conversation", returned history errors, and never archived their turns.
95
+ Restoring a compressed transcript no longer pauses other conversations on the
96
+ machine.
97
+ - A failed or timed-out remote resume releases the conversation once its
98
+ processes have exited, instead of keeping it busy until the daemon restarts.
99
+ A capture binding that cannot be resolved no longer blocks control: the
100
+ conversation runs, and its turns archive once the binding resolves again.
101
+ - Re-registering a runtime source, or upgrading or removing the Codex program it
102
+ was registered with, keeps existing conversations controllable and their
103
+ captures valid.
104
+ - Busy and refusal errors say whether they clear on their own, so clients retry
105
+ passing conditions silently and show the ones that need a person. A refused
106
+ cloud connection is answered with its reason instead of being dropped, and
107
+ subscribing to a paused conversation reports that it needs a resume.
108
+ - Opening history no longer copies the transcript and no longer fails while the
109
+ runtime is writing to it. Identical history requests share one read, and
110
+ history of a conversation whose folder was removed stays readable.
111
+ - Archive recovery backs off, parks failures that cannot succeed, and lets a
112
+ resume take the conversation. A conversation larger than the capture budget
113
+ is reported once instead of after every turn.
114
+ - The control channel keeps a slow or lagging reader connected, stops reads
115
+ whose requester has left, evicts idle clients before refusing new ones, and
116
+ reconnects within seconds after the machine wakes from sleep. A message sent
117
+ again while its first delivery is in flight reports that delivery as pending
118
+ and is never run twice.
119
+ - Claude Code conversations whose transcript Claude deleted, or that never
120
+ received a message, reopen under their own id; one whose archived turns no
121
+ longer have a transcript points to `agit resume`. Claude Code is found outside
122
+ the daemon's PATH, bypass mode is not offered where Claude refuses it as root,
123
+ transcript folders follow Claude's naming for long and non-BMP paths, and a
124
+ terminal Claude session that cannot be shared says why.
125
+ - A failed `agit clone` suggests asking for the owner's grant only when Git
126
+ reports an authentication failure; any other failed transfer suggests
127
+ retrying and, if it fails the same way again, reporting it with the output.
128
+ `agit fetch <owner/repo>` likewise offers the grant hint only when the Hub
129
+ refuses access. A reader who already had access was sent to check
130
+ collaborator grants after an interrupted transfer.
131
+ - `agit project bind --history all`, its `--dry-run` preview and `agit project sync`
132
+ include Claude Code conversations that open with a large prompt, such as a pasted
133
+ screenshot, instead of silently leaving them out of the project.
134
+ - `agit project bind --dry-run` refuses a directory that is already bound to
135
+ another repository, as the bind itself does, instead of previewing a bind that
136
+ would fail.
137
+
11
138
  ## [0.2.22] - 2026-10-07
12
139
 
13
140
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@einsia/agent-git",
3
- "version": "0.2.22",
3
+ "version": "0.2.25",
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.22",
53
- "@einsia/agent-git-linux-arm64": "0.2.22",
54
- "@einsia/agent-git-darwin-x64": "0.2.22",
55
- "@einsia/agent-git-darwin-arm64": "0.2.22",
56
- "@einsia/agent-git-win32-x64": "0.2.22"
52
+ "@einsia/agent-git-linux-x64": "0.2.25",
53
+ "@einsia/agent-git-linux-arm64": "0.2.25",
54
+ "@einsia/agent-git-darwin-x64": "0.2.25",
55
+ "@einsia/agent-git-darwin-arm64": "0.2.25",
56
+ "@einsia/agent-git-win32-x64": "0.2.25"
57
57
  }
58
58
  }