@einsia/agent-git 0.1.2 → 0.2.0

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 CHANGED
@@ -6,6 +6,61 @@ Every notable change to agit, the AgentGit CLI, by release. The format follows
6
6
  its [GitHub Release](https://github.com/Einsia/agent-git/releases), and the
7
7
  `@einsia/agent-git` npm package ships this file.
8
8
 
9
+ ## [0.2.0] - 2026-09-16
10
+
11
+ ### Added
12
+
13
+ - **Daemon peers and Cloud tunnels.** `agitd` manages local harness sessions while
14
+ independent SSH or Cloud tunnel workers transport peer messages. Controllers can
15
+ discover and operate sessions on another executor through the same peer protocol.
16
+ Peer hosting is available on Linux and macOS. Cloud connections require a Hub
17
+ with peer relay support enabled.
18
+ - **Independent control and inbound access.** A local controller can connect to
19
+ another device while its own inbound access stays disabled. Cloud admission and
20
+ executor session permissions are enforced separately. Adapters can constrain
21
+ requests to a lower role, enforced by the executor when a queued write runs.
22
+ - **More native conversation sources.** Discover and import OpenClaw, Hermes and
23
+ WorkBuddy sessions, with runtime-specific setup and transcript handling.
24
+ - **Large session files.** Stage binary deliverables with `agit file add --lfs`;
25
+ verify payloads during upload and download before publishing or materializing them.
26
+ - **Local and scoped search.** Search saved local history without Hub requests, or
27
+ limit remote session searches to an organization or the current code origin.
28
+ - **Optional automatic publishing.** Configure `push.auto` per user or repository
29
+ to publish settled turns, while keeping explicit publication available.
30
+ - **Usage statistics controls.** Inspect collection with `agit telemetry`, disable
31
+ it with `agit telemetry disable` or `DO_NOT_TRACK=1`, and preview the field policy.
32
+ Setup discloses the default-on choice; a recorded opt-out is preserved. See the
33
+ [collection and privacy details](docs/telemetry.md).
34
+
35
+ ### Changed
36
+
37
+ - **Use `agit run` for saved sources.** `agit open` is removed. Update scripts to
38
+ use `agit run owner/repo@ref`; `agit resume` still continues a selected session.
39
+ - Review a frozen publication in an interactive agent before pushing, including
40
+ explicit handling of credential findings.
41
+ - Status includes bounded native session details, shared files, merge progress and
42
+ project metadata without unbounded transcript scans.
43
+ - Interactive startup can offer to install an available update after confirmation.
44
+ Non-interactive update notices go to stderr and preserve JSON output.
45
+ - Repository secret dictionaries keep their encryption keys in local Git metadata,
46
+ avoiding repeated Keychain prompts after migration. Neither the dictionary nor
47
+ its key is uploaded by push.
48
+
49
+ ### Fixed
50
+
51
+ - Recover from expired CLI credentials and retry browser sign-in choices without
52
+ losing the selected Hub or repository.
53
+ - Keep session discovery and native watch preparation responsive, hide internal
54
+ runtime sessions, and preserve transcript identity across polling and replay.
55
+ - Correlate canonical Codex user history and prevent duplicate Claude prompts.
56
+ - Preserve native Codex session titles and recover remote session history reliably.
57
+ - Keep controller requests, tunnel failures and harness failures within their
58
+ ownership boundaries, with bounded queues and diagnostic logs for recovery.
59
+ - Support Hub SOCKS proxies and preserve Windows browser launch, process ownership
60
+ and named-pipe behavior.
61
+ - Scope installed AgentGit skills to explicit session operations and retire legacy
62
+ home-directory instructions without replacing unrelated user content.
63
+
9
64
  ## [0.1.2] - 2026-09-12
10
65
 
11
66
  ### Added
@@ -107,6 +162,7 @@ First public release.
107
162
  per-platform packages for Linux and macOS on x64 and arm64, and GitHub Release
108
163
  artifacts with `SHA256SUMS`.
109
164
 
165
+ [0.2.0]: https://github.com/Einsia/agent-git/releases/tag/agit-v0.2.0
110
166
  [0.1.2]: https://github.com/Einsia/agent-git/releases/tag/agit-v0.1.2
111
167
  [0.1.1]: https://github.com/Einsia/agent-git/releases/tag/agit-v0.1.1
112
168
  [0.1.0]: https://github.com/Einsia/agent-git/releases/tag/agit-v0.1.0
package/README.md CHANGED
@@ -18,13 +18,12 @@ agit import choose an existing runtime conversation to ado
18
18
  agit log choose a session and browse its history
19
19
  agit push choose a saved session to publish
20
20
  agit share choose a session and review link settings
21
- agit open owner/repo@ref open a saved source, forking when needed
21
+ agit run owner/repo@ref open a saved source, forking when needed
22
22
  ```
23
23
 
24
24
  These bare commands open their interfaces in a human terminal. `agit resume`
25
- continues the same session and never forks; `agit open` can start a new writable
26
- session from a tag, historical point or another author's source. `agit run`
27
- remains a compatibility alias for `open`.
25
+ continues the same session and never forks; `agit run` can start a new writable
26
+ session from a tag, historical point or another author's source.
28
27
 
29
28
  Inside an adopted agent session, `agit commit` saves completed turns and
30
29
  `agit push` publishes that session. For scripts, pass the target explicitly,
@@ -47,7 +46,7 @@ Inspecting lineage in an existing repository requires NUL-framed Git worktree ou
47
46
  normally available in Git 2.36 or newer. An unsupported Git reports `git_worktree_format`;
48
47
  explicit `--onto`, `--independent`, and `--link-only` imports retain their ordinary checks.
49
48
 
50
- `agit clone` fetches repository history locally. Use `agit open` or `agit resume`
49
+ `agit clone` fetches repository history locally. Use `agit run` or `agit resume`
51
50
  to start a runtime. A clone is **read-only by default** on the Hub: nothing is
52
51
  created in your name and `origin` points at the source. `agit clone --mine`
53
52
  creates your copy, repoints `origin` and remembers the source as `upstream`.
@@ -161,10 +160,15 @@ The section becomes the GitHub Release body (`scripts/release-notes.mjs` extract
161
160
  `release.yml`, with repository-relative links pinned to the release tag) and ships inside
162
161
  the `@einsia/agent-git` package.
163
162
 
164
- Pushing the tag runs the whole chain binaries first, npm right after:
163
+ After the source release commit passes CI and is synchronized to GitHub `main`,
164
+ verify the mirrored files and create the tag in that GitHub checkout. The mirror
165
+ rewrites commit IDs, so the source repository's SHA is not the release SHA.
166
+ Pushing the tag to GitHub runs the whole chain — binaries first, npm right after:
165
167
 
166
168
  ```sh
167
- git tag agit-v0.1.0 && git push origin agit-v0.1.0 # release.yml builds, smoke-tests, attaches artifacts
169
+ # Run from the verified Einsia/agent-git GitHub mirror checkout.
170
+ git tag agit-v0.1.0
171
+ git push git@github.com:Einsia/agent-git.git refs/tags/agit-v0.1.0
168
172
  ```
169
173
 
170
174
  Distribution to users runs through the npm registry: each target ships as a
package/npm/lib/run.js CHANGED
@@ -37,7 +37,10 @@ function run() {
37
37
  process.exit(127);
38
38
  }
39
39
 
40
- const r = spawnSync(bin, process.argv.slice(2), { stdio: 'inherit' });
40
+ const r = spawnSync(bin, process.argv.slice(2), {
41
+ stdio: 'inherit',
42
+ env: { ...process.env, AGIT_INSTALL_CHANNEL: 'npm_global' },
43
+ });
41
44
  if (r.error) {
42
45
  log.error(`failed to start ${bin}: ${r.error.message}`);
43
46
  process.exit(1);
@@ -42,15 +42,25 @@ function main() {
42
42
  }
43
43
  if (!bin) return; // unsupported platform: the shim gives full instructions on the next command.
44
44
 
45
- const check = spawnSync(bin, ['--version'], { encoding: 'utf8' });
45
+ const env = { ...process.env, AGIT_TELEMETRY_DEFER: '1', AGIT_INSTALL_CHANNEL: 'npm_global' };
46
+ const check = spawnSync(bin, ['--version'], { encoding: 'utf8', env });
46
47
  if (check.error || check.status !== 0) {
47
48
  log.warn(`installed binary does not run: ${bin}`);
48
49
  log.warn((check.stderr || check.error?.message || `exit ${check.status}`).trim());
49
50
  return;
50
51
  }
51
52
 
53
+ // npx create-agit owns its durable-copy receipt and passes the browser acquisition key.
54
+ if (process.env.npm_command !== 'exec') {
55
+ const receiptArgs = ['--internal-install-completed'];
56
+ if (!truthy(process.env.npm_config_foreground_scripts)) receiptArgs.push('--defer-notice');
57
+ spawnSync(bin, receiptArgs, {
58
+ stdio: ['ignore', 'inherit', 'inherit'],
59
+ env: { ...process.env, AGIT_INSTALL_CHANNEL: 'npm_global' },
60
+ });
61
+ }
52
62
  if (truthy(process.env.AGIT_SKIP_SETUP)) return;
53
- const setup = spawnSync(bin, ['setup'], { stdio: 'inherit' });
63
+ const setup = spawnSync(bin, ['setup'], { stdio: 'inherit', env });
54
64
  if (setup.status !== 0) {
55
65
  log.warn('`agit setup` did not fully succeed — re-run it any time; the CLI itself is installed.');
56
66
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@einsia/agent-git",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
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.1.2",
53
- "@einsia/agent-git-linux-arm64": "0.1.2",
54
- "@einsia/agent-git-darwin-x64": "0.1.2",
55
- "@einsia/agent-git-darwin-arm64": "0.1.2",
56
- "@einsia/agent-git-win32-x64": "0.1.2"
52
+ "@einsia/agent-git-linux-x64": "0.2.0",
53
+ "@einsia/agent-git-linux-arm64": "0.2.0",
54
+ "@einsia/agent-git-darwin-x64": "0.2.0",
55
+ "@einsia/agent-git-darwin-arm64": "0.2.0",
56
+ "@einsia/agent-git-win32-x64": "0.2.0"
57
57
  }
58
58
  }