git-span 1.1.7 → 1.1.10

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/README.md CHANGED
@@ -36,6 +36,19 @@ The store is bounded by a count-based sweep: stale non-live generations are swep
36
36
 
37
37
  A configured filter driver's resolved executable (e.g. a `git-lfs` install) is content-hashed to prove its identity as part of every state-token capture. That hash is a fact about a file on the local machine, not about any one repository, so it is memoized in a *second*, small, per-user SQLite database — separate from the per-repo drift cache above — at `$GIT_SPAN_CACHE_HOME/exe-digest.db`, defaulting to `$HOME/.cache/git-span/exe-digest.db` (mirrors the workspace's `$HOME/.cache/git-span/cargo-target/` per-user build-artifact directory). Every repository on a machine that shares the same filter executable reuses the same memoized digest instead of re-hashing it per clone. `GIT_SPAN_EXE_DIGEST_DB` overrides the database file path directly (useful for CI isolation). `GIT_SPAN_CACHE=0` disables this store too, exactly like the drift cache. Implemented in `src/resolver/core/exe_digest_store.rs`; safe to delete at any time (it is rebuilt lazily, fail-closed on any error — a missing or broken database just means every executable is re-hashed).
38
38
 
39
+ ### The daily update check
40
+
41
+ On an interactive `git span` invocation, the CLI quietly notices whether the running binary or the installed Claude Code / Codex git-span plugin bundles have fallen behind the latest `git-span-v*` release from GitHub, and — at most once per 24 hours — prints a short informational note naming what is out of date plus the exact command to bring it current. Nothing blocks: the network fetch and plugin-cache scans run in a detached background child, the foreground command's latency and exit code are untouched, and the first run prints nothing (the reminder reports what the *previous* check stored). Check state lives in a third, per-user SQLite database beside the exe-digest store — `$GIT_SPAN_CACHE_HOME/update-check.db`, defaulting to `$HOME/.cache/git-span/update-check.db` — with the same path precedence and fail-closed bootstrap; an offline machine pays one failed fetch attempt per day. The note only informs, never updates. Every check run appends one diagnostic line to `update-check.log` beside the database — the audit trail that separates a clean check from a silently failing one.
42
+
43
+ Suppression is fail-closed and two-layered: any one of the following silences the check and the note.
44
+
45
+ - `GIT_SPAN_DISABLE_UPDATE_CHECK` — presence disables the check and the message entirely. Automated callers set it: the Claude Code and Codex hook plugins export it into every hook process, and future git-hook integrations should too.
46
+ - Machine-readable output — commands whose effective output format is machine-readable (`--porcelain`, `--oneline`, `--format` other than human, `context`, `merge-driver`) never engage the check.
47
+ - Non-TTY stdout — piped or scripted invocations (including the VS Code extension and the agent-hooks shell-outs) are silent regardless of the other layers.
48
+ - Hidden internal subcommands (`__context-service`, `__update-check`) never engage or remind.
49
+
50
+ The remaining vars are testing and isolation seams: `GIT_SPAN_UPDATE_CHECK_URL` overrides the releases-API endpoint the child fetches; `GIT_SPAN_UPDATE_CHECK_DB` overrides the `update-check.db` path directly (mirroring `GIT_SPAN_EXE_DIGEST_DB`); `GIT_SPAN_PLUGIN_CACHE_ROOT` overrides the base the Claude Code and Codex plugin-cache scans resolve under (`{root}/{claude,codex}/plugins/cache`), instead of `$HOME/.{claude,codex}/plugins/cache` (or `CLAUDE_CONFIG_DIR` / `CODEX_HOME` when set). Implemented in `src/update_check/`.
51
+
39
52
  ## Profiling
40
53
 
41
54
  Perf investigation tooling is documented in [Profiling `git span drift`](../../wiki/guides/profiling-git-span-drift.md):
package/man/git-span.1 CHANGED
@@ -1,7 +1,7 @@
1
1
  .\" GENERATED by gen-manpage. Do not edit by hand.
2
2
  .ie \n(.g .ds Aq \(aq
3
3
  .el .ds Aq '
4
- .TH git-span 1 "git-span 1.1.7"
4
+ .TH git-span 1 "git-span 1.1.10"
5
5
  .ie \n(.g .ds Aq \(aq
6
6
  .el .ds Aq '
7
7
  .SH NAME
@@ -145,7 +145,7 @@ Print this message or the help of the given subcommand(s)
145
145
  .ie \n(.g .ds Aq \(aq
146
146
  .el .ds Aq '
147
147
  .SH VERSION
148
- v1.1.7
148
+ v1.1.10
149
149
  .SH EXAMPLES
150
150
  Anchor a new span alongside a code change:
151
151
  .PP
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "git-span",
3
- "version": "1.1.7",
3
+ "version": "1.1.10",
4
4
  "bin": "bin/git-span.exe",
5
5
  "man": [
6
6
  "man/git-span.1"
@@ -27,11 +27,11 @@
27
27
  "scripts/postinstall.js"
28
28
  ],
29
29
  "optionalDependencies": {
30
- "git-span-darwin-arm64": "1.1.7",
31
- "git-span-darwin-x64": "1.1.7",
32
- "git-span-linux-arm64": "1.1.7",
33
- "git-span-linux-x64": "1.1.7",
34
- "git-span-win32-x64": "1.1.7"
30
+ "git-span-darwin-arm64": "1.1.10",
31
+ "git-span-darwin-x64": "1.1.10",
32
+ "git-span-linux-arm64": "1.1.10",
33
+ "git-span-linux-x64": "1.1.10",
34
+ "git-span-win32-x64": "1.1.10"
35
35
  },
36
36
  "repository": {
37
37
  "type": "git",