blun-king-cli 9.1.486 → 9.1.488

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 (97) hide show
  1. package/LIESMICH.txt +26 -7
  2. package/README.md +14 -3
  3. package/agent-spine-plugin/.claude-plugin/marketplace.json +20 -0
  4. package/agent-spine-plugin/.claude-plugin/plugin.json +14 -0
  5. package/agent-spine-plugin/.codex-plugin/plugin.json +34 -0
  6. package/agent-spine-plugin/.mcp.json +8 -0
  7. package/agent-spine-plugin/CHANGELOG.md +277 -0
  8. package/agent-spine-plugin/LICENSE +186 -0
  9. package/agent-spine-plugin/README.md +342 -0
  10. package/agent-spine-plugin/assets/agentspine-banner.svg +32 -0
  11. package/agent-spine-plugin/bin/agentspine-mcp.js +4 -0
  12. package/agent-spine-plugin/bin/agentspine.js +7 -0
  13. package/agent-spine-plugin/blun.plugin.json +33 -0
  14. package/agent-spine-plugin/docs/acceptance.md +61 -0
  15. package/agent-spine-plugin/docs/architecture.md +183 -0
  16. package/agent-spine-plugin/docs/attention.md +121 -0
  17. package/agent-spine-plugin/docs/automatic-continuity.md +79 -0
  18. package/agent-spine-plugin/docs/channel-runtime.md +92 -0
  19. package/agent-spine-plugin/docs/coordination.md +138 -0
  20. package/agent-spine-plugin/docs/feed-transport.md +99 -0
  21. package/agent-spine-plugin/docs/gateway-runtime.md +109 -0
  22. package/agent-spine-plugin/docs/harness-reference.md +45 -0
  23. package/agent-spine-plugin/docs/host-integration.md +129 -0
  24. package/agent-spine-plugin/docs/https-transport.md +116 -0
  25. package/agent-spine-plugin/docs/learning.md +98 -0
  26. package/agent-spine-plugin/docs/object-transport.md +93 -0
  27. package/agent-spine-plugin/docs/peer-transport.md +88 -0
  28. package/agent-spine-plugin/docs/preservation-contract.md +53 -0
  29. package/agent-spine-plugin/docs/quality-gates.md +50 -0
  30. package/agent-spine-plugin/docs/relationships.md +67 -0
  31. package/agent-spine-plugin/docs/releasing.md +83 -0
  32. package/agent-spine-plugin/docs/roadmap.md +307 -0
  33. package/agent-spine-plugin/docs/selfstarter.md +88 -0
  34. package/agent-spine-plugin/docs/session-briefing.md +74 -0
  35. package/agent-spine-plugin/docs/shared-memory.md +259 -0
  36. package/agent-spine-plugin/docs/source-roots.md +86 -0
  37. package/agent-spine-plugin/docs/sqlite-transport.md +76 -0
  38. package/agent-spine-plugin/hooks/hooks.json +95 -0
  39. package/agent-spine-plugin/hooks/version.json +5 -0
  40. package/agent-spine-plugin/package.json +69 -0
  41. package/agent-spine-plugin/scripts/check-hosts.js +193 -0
  42. package/agent-spine-plugin/scripts/check-install.js +551 -0
  43. package/agent-spine-plugin/scripts/check-syntax.js +29 -0
  44. package/agent-spine-plugin/scripts/github-actions.js +11 -0
  45. package/agent-spine-plugin/scripts/release-check.js +127 -0
  46. package/agent-spine-plugin/scripts/run-acceptance.js +19 -0
  47. package/agent-spine-plugin/scripts/run-checks.js +46 -0
  48. package/agent-spine-plugin/scripts/run-tests-hermetic.js +73 -0
  49. package/agent-spine-plugin/skill/SKILL.md +76 -0
  50. package/agent-spine-plugin/skills/agent-spine/SKILL.md +84 -0
  51. package/agent-spine-plugin/spine-example/1-identity.md +12 -0
  52. package/agent-spine-plugin/spine-example/2-voice.md +6 -0
  53. package/agent-spine-plugin/spine-example/3-conduct.md +8 -0
  54. package/agent-spine-plugin/spine-example/4-history.md +4 -0
  55. package/agent-spine-plugin/src/cli.js +950 -0
  56. package/agent-spine-plugin/src/hook.js +646 -0
  57. package/agent-spine-plugin/src/index.js +84 -0
  58. package/agent-spine-plugin/src/lib/acceptance.js +294 -0
  59. package/agent-spine-plugin/src/lib/attention.js +755 -0
  60. package/agent-spine-plugin/src/lib/audit.js +308 -0
  61. package/agent-spine-plugin/src/lib/authentication.js +513 -0
  62. package/agent-spine-plugin/src/lib/briefing.js +305 -0
  63. package/agent-spine-plugin/src/lib/catalog.js +142 -0
  64. package/agent-spine-plugin/src/lib/channel-runtime.js +665 -0
  65. package/agent-spine-plugin/src/lib/context.js +154 -0
  66. package/agent-spine-plugin/src/lib/continuity.js +333 -0
  67. package/agent-spine-plugin/src/lib/coordination.js +577 -0
  68. package/agent-spine-plugin/src/lib/documents.js +199 -0
  69. package/agent-spine-plugin/src/lib/feed-transport.js +497 -0
  70. package/agent-spine-plugin/src/lib/filesystem-retry.js +27 -0
  71. package/agent-spine-plugin/src/lib/gateway-runtime.js +760 -0
  72. package/agent-spine-plugin/src/lib/graph.js +284 -0
  73. package/agent-spine-plugin/src/lib/https-transport.js +392 -0
  74. package/agent-spine-plugin/src/lib/indexed-memory-offline.js +40 -0
  75. package/agent-spine-plugin/src/lib/indexed-memory.js +281 -0
  76. package/agent-spine-plugin/src/lib/learning.js +645 -0
  77. package/agent-spine-plugin/src/lib/object-transport.js +206 -0
  78. package/agent-spine-plugin/src/lib/paths.js +60 -0
  79. package/agent-spine-plugin/src/lib/peer-transport.js +283 -0
  80. package/agent-spine-plugin/src/lib/persona-runtime.js +503 -0
  81. package/agent-spine-plugin/src/lib/runtime.js +13 -0
  82. package/agent-spine-plugin/src/lib/selfstarter.js +819 -0
  83. package/agent-spine-plugin/src/lib/sharing.js +969 -0
  84. package/agent-spine-plugin/src/lib/source-roots.js +451 -0
  85. package/agent-spine-plugin/src/lib/sqlite-transport.js +501 -0
  86. package/agent-spine-plugin/src/lib/telegram-adapter.js +119 -0
  87. package/agent-spine-plugin/src/lib/voice-runtime.js +39 -0
  88. package/agent-spine-plugin/src/mcp.js +526 -0
  89. package/agent-spine-plugin/src/version.js +1 -0
  90. package/agent-spine-plugin/src/worker.js +178 -0
  91. package/bin/identity-context-policy.cjs +51 -1
  92. package/bin/launcher-runtime.js +9 -1
  93. package/bin/plugin-bootstrap.js +68 -27
  94. package/bin/turn-thinking-policy.cjs +5 -4
  95. package/bin/turn-tool-performance-policy.cjs +15 -2
  96. package/blun.mjs +96 -31
  97. package/package.json +2 -1
package/LIESMICH.txt CHANGED
@@ -1,5 +1,5 @@
1
- BLUN King für macOS und Windows
2
- ===============================
1
+ BLUN King für macOS, Linux und Windows
2
+ ======================================
3
3
 
4
4
  Voraussetzung
5
5
  -------------
@@ -9,7 +9,7 @@ Installation
9
9
  ------------
10
10
  Die geprüfte Version exakt global installieren:
11
11
 
12
- npm install -g blun-king-cli@9.1.108
12
+ npm install -g blun-king-cli@9.1.488
13
13
 
14
14
  Start
15
15
  -----
@@ -44,13 +44,32 @@ abweichende MCP-Befehle bleiben unverändert.
44
44
  /mcp zeigt den Betriebszustand ohne internen Konfigurationspfad. In der
45
45
  Detailansicht bleibt der Pfad für die Fehlersuche verfügbar.
46
46
 
47
+ Ab BLUN King 9.1.487 gehört AgentSpine fest zum ausgelieferten Paket. Beim
48
+ normalen Start wird die geprüfte Pluginfassung in einem inhaltsadressierten
49
+ Verzeichnis installiert, aktiviert und mit ihrem MCP-Server verbunden. Eine
50
+ vorhandene GitHub- oder lokale AgentSpine-Installation wird auf die gebündelte
51
+ Fassung umgeschaltet, ohne andere Plugins oder deren Einstellungen zu löschen.
52
+ Unveränderte Inhalte werden wiederverwendet; ein beschädigter Digest-Pfad
53
+ stoppt die Aktualisierung, bevor die Plugin-Registry geändert wird. Dieser
54
+ Lieferweg gilt unter macOS, Linux und Windows.
55
+
47
56
  Telegram-Nachrichten werden in Eingangsreihenfolge verarbeitet. Im Leerlauf
48
- startet die Warteschlange selbstständig; während eines Werkzeuglaufs erfolgt
49
- die Zustellung am nächsten geschützten Übergabepunkt. Strg+C und Esc brechen
50
- einen aktiven Zug ab, ohne den geschriebenen Entwurf zu löschen. Das gilt auch
51
- bei Autovervollständigung, Geistervorschlägen, Bash-Eingabe und einer offenen
57
+ startet die Warteschlange selbstständig. Während eines aktiven Laufs gibt
58
+ Strg+S alle zu diesem Zeitpunkt wartenden Konsolen- und Chatnachrichten genau
59
+ einmal frei. Jeder Druck auf Esc gibt genau eine weitere wartende Nachricht
60
+ frei; erst bei leerer Warteschlange bricht Esc den aktuellen Lauf ab. Die
61
+ Warteschlange wird dabei nicht gelöscht. Strg+C bricht den aktiven Zug direkt
62
+ ab, ohne den geschriebenen Entwurf zu löschen. Das gilt auch bei
63
+ Autovervollständigung, Geistervorschlägen, Bash-Eingabe und einer offenen
52
64
  Mehrzeileneingabe.
53
65
 
66
+ Version 9.1.488 stellt außerdem die interne Todo-Liste wieder her. Deutsche
67
+ Aufgabenlisten-Befehle wählen wieder TodoList statt der getrennten TaskList für
68
+ Hintergrundprozesse. Lesen, Ersetzen, Aktualisieren und Leeren funktionieren in
69
+ derselben Sitzung; eine vollständig erledigte Liste wird aus der Anzeige
70
+ entfernt. Adressierte Telegram-Nachrichten erscheinen nicht mehr gleichzeitig
71
+ im Fokusbereich und in der Warteschlange.
72
+
54
73
  Telegram-Nachrichten, die bei bereits aktivem Kernzug eintreffen, werden ohne
55
74
  konkurrierenden Start zurückgewiesen und bleiben an der Spitze der
56
75
  FIFO-Warteschlange. Für diesen normalen Wartestatus erscheint kein
package/README.md CHANGED
@@ -9,7 +9,7 @@ Voraussetzung ist Node.js 24.15 oder neuer. Die geprüfte Version wird exakt
9
9
  installiert:
10
10
 
11
11
  ```powershell
12
- npm install -g blun-king-cli@9.1.106
12
+ npm install -g blun-king-cli@9.1.488
13
13
  ```
14
14
 
15
15
  ## Reproduzierbares Staging und Packen
@@ -68,13 +68,24 @@ blun tools enable context7
68
68
  ```
69
69
 
70
70
  Telegram-Nachrichten werden in Eingangsreihenfolge verarbeitet. Trifft eine
71
- Nachricht im Leerlauf ein, startet die Warteschlange selbstständig; während
72
- eines Werkzeuglaufs wird sie am nächsten geschützten Übergabepunkt eingefügt.
71
+ Nachricht im Leerlauf ein, startet die Warteschlange selbstständig. Während
72
+ eines aktiven Laufs gibt Strg+S alle zu diesem Zeitpunkt wartenden Konsolen-
73
+ und Chatnachrichten genau einmal frei. Jeder Druck auf Esc gibt genau eine
74
+ weitere wartende Nachricht frei; erst bei leerer Warteschlange bricht Esc den
75
+ aktuellen Lauf ab. Die Warteschlange wird dabei nicht gelöscht. Strg+C bricht
76
+ den aktiven Zug direkt ab, ohne den geschriebenen Entwurf zu löschen.
73
77
  Telegram-Nachrichten, die bei bereits aktivem Kernzug eintreffen, werden ohne
74
78
  konkurrierenden Start zurückgewiesen und bleiben an der Spitze der
75
79
  FIFO-Warteschlange. Für diesen normalen Wartestatus erscheint kein
76
80
  `turn.agent_busy`-Fehler.
77
81
 
82
+ Version 9.1.488 stellt außerdem die interne Todo-Liste wieder her. Deutsche
83
+ Aufgabenlisten-Befehle wählen wieder TodoList statt der getrennten TaskList für
84
+ Hintergrundprozesse. Lesen, Ersetzen, Aktualisieren und Leeren funktionieren in
85
+ derselben Sitzung; eine vollständig erledigte Liste wird aus der Anzeige
86
+ entfernt. Adressierte Telegram-Nachrichten erscheinen nicht mehr gleichzeitig
87
+ im Fokusbereich und in der Warteschlange.
88
+
78
89
  Ab BLUN King 9.1.416 bleiben alle Ergebnisse des jüngsten Werkzeugaufrufs bis
79
90
  zur nächsten Assistentenantwort vollständig im Modellkontext. Das gilt auch für
80
91
  große parallele Read-, Grep- und Bash-Aufrufe sowie für nachträglich
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "agent-spine",
3
+ "description": "Non-destructive identity and memory infrastructure for AI agents.",
4
+ "owner": {
5
+ "name": "Mayk Biletti"
6
+ },
7
+ "plugins": [
8
+ {
9
+ "name": "agent-spine",
10
+ "source": ".",
11
+ "description": "Map existing rules, soul, and memory without rewriting source files.",
12
+ "version": "0.8.0",
13
+ "author": {
14
+ "name": "Mayk Biletti"
15
+ },
16
+ "category": "development",
17
+ "tags": ["agents", "identity", "memory", "mcp"]
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "agent-spine",
3
+ "version": "0.8.0",
4
+ "description": "A non-destructive identity and memory spine for Claude Code agents.",
5
+ "author": {
6
+ "name": "Mayk Biletti",
7
+ "url": "https://github.com/Maykbiletti"
8
+ },
9
+ "homepage": "https://github.com/Maykbiletti/AgentSpine",
10
+ "repository": "https://github.com/Maykbiletti/AgentSpine",
11
+ "license": "Apache-2.0",
12
+ "keywords": ["identity", "memory", "mcp", "agents"],
13
+ "mcpServers": "./.mcp.json"
14
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "agent-spine",
3
+ "version": "0.8.0",
4
+ "description": "A non-destructive identity and memory spine for Codex agents.",
5
+ "author": {
6
+ "name": "Mayk Biletti",
7
+ "url": "https://github.com/Maykbiletti"
8
+ },
9
+ "homepage": "https://github.com/Maykbiletti/AgentSpine",
10
+ "repository": "https://github.com/Maykbiletti/AgentSpine",
11
+ "license": "Apache-2.0",
12
+ "keywords": ["identity", "memory", "mcp", "agents"],
13
+ "skills": "./skills/",
14
+ "mcpServers": {
15
+ "agent-spine": {
16
+ "command": "node",
17
+ "args": ["${PLUGIN_ROOT}/src/mcp.js"]
18
+ }
19
+ },
20
+ "interface": {
21
+ "displayName": "AgentSpine",
22
+ "shortDescription": "Identity and memory without rewriting your files.",
23
+ "longDescription": "Maps existing rules, soul, memory, and linked Markdown into a verifiable context spine while preserving every source byte.",
24
+ "developerName": "Mayk Biletti",
25
+ "category": "Developer Tools",
26
+ "capabilities": ["Read", "MCP", "Hooks", "Worker"],
27
+ "websiteURL": "https://github.com/Maykbiletti/AgentSpine",
28
+ "defaultPrompt": [
29
+ "Map this project's existing agent identity.",
30
+ "Show the active rules, soul, and memory layers.",
31
+ "Verify that protected sources are unchanged."
32
+ ]
33
+ }
34
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "agent-spine": {
4
+ "command": "node",
5
+ "args": ["${CLAUDE_PLUGIN_ROOT}/src/mcp.js"]
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,277 @@
1
+ # Changelog
2
+
3
+ All notable changes to AgentSpine will be documented here. The project follows [Semantic Versioning](https://semver.org/).
4
+
5
+ ## [Unreleased]
6
+
7
+ ### Added
8
+
9
+ - BLUN King can now install AgentSpine as a native plugin with the same lifecycle hooks, MCP server, isolated app-home source resolution, and explicit plugin-install trust step as the existing Claude Code and Codex hosts
10
+
11
+ ### Fixed
12
+
13
+ - Routine BLUN hook results now render as one short human-readable status line instead of exposing compact internal JSON in the TUI, while actionable attention, self-starter, channel, and failure details remain available immediately
14
+ - BLUN hooks now inject a compact runtime status instead of the complete session briefing on every prompt; detailed continuity remains available on demand while active attention, self-starter, and authenticated channel signals remain immediate
15
+ - BLUN lifecycle hooks now index large real workspaces without absorbing embedded test profiles or failing at the smaller host-rule limit
16
+ - Windows Node 24 state writes now treat transient lock access errors as contention across every lock-backed store, retry atomic replacements with a bounded backoff, and tolerate briefly retained handles during hermetic cleanup
17
+ - The gateway worker now canonicalizes its state directory before opening the native file watcher, avoiding the Windows libuv path assertion on differently cased or short paths
18
+ - CI now identifies the failing check phase and annotates the exact hermetic test file or runner error, so public Windows failures can be diagnosed without access to private job logs
19
+
20
+ ## [0.8.0] - 2026-08-29
21
+
22
+ ### Added
23
+
24
+ - Provider-neutral authenticated channel ingress with exact provider, tenant, account, chat, thread, sender, agent, project, group, and session bindings
25
+ - Durable per-agent event lanes with replay protection, atomic leases, expired-lease recovery, revocation cancellation, retained history, and integrity receipts
26
+ - Automatic `agentspine.voice-brief/v1` projection from exact visible persona, preference, correction, no-go, current-task, promise, and blocker context
27
+ - Installed-bundle proof that both Claude Code and Codex receive one exact authenticated channel event and voice profile with zero model-side MCP calls
28
+ - Pinned OpenClaw and Hermes harness reference study documenting adopted, adapted, and deliberately excluded behavior
29
+ - Authenticated external persona-roster synchronization with stable identities and append-only join, rename, leave, group-change, and rejoin events
30
+ - Bounded native Claude Code and Codex agent-manifest discovery under one approved roster scope, including distinct deactivation, exact profile/tenant identity, rename stability, and immediate membership removal
31
+ - Optional `agentspine-worker` with Telegram polling and delivery, one absolute shell-free host runner, per-agent lanes, focused goals, checkpoints, retries, health state, and a local kill switch
32
+ - Event-driven desired-state wake, deadline reconciliation, restartable prepared outbox delivery, bounded host-failure retry, independent stale-heartbeat audit, and explicit dead-letter versus delivery-unknown terminal states
33
+ - Transient German, English, Swedish, and Spanish response cues plus an advisory voice guard against fabricated attachment, emotion, or consciousness claims
34
+ - Empty- and populated-profile hermetic test execution so real user state cannot change test expectations
35
+
36
+ ### Changed
37
+
38
+ - The shared hook document now uses only the documented `description` and `hooks` top-level fields; version/cache identity stays in the host manifests
39
+ - Host checks no longer report live Codex hook trust as proven merely because the shared hook entrypoint can execute directly
40
+ - Native Codex hook input is recognized from its Codex-specific `model` field or plugin environment even when no synthetic `host` field and no explicit `CODEX_HOME` override exist
41
+ - Session briefings reserve a bounded voice section and report voice omissions in the same compact-JSON budget
42
+ - Channel policy and runtime inspection are available through local CLI commands while every channel administration and execution operation remains absent from MCP
43
+ - A configured roster file is reread before every worker reconciliation, so authenticated team additions and removals become visible without a new chat prompt
44
+ - Promise and resolved-blocker lifecycle events now enter the same durable wake queue as direct messages and owner-assigned goals
45
+
46
+ ### Security
47
+
48
+ - Channel policy changes require explicit local owner confirmation; wildcard routes and senders, unknown agents/projects/groups, and invalid group membership fail closed
49
+ - HMAC secrets remain environment-only, signatures are never stored, secret-bearing messages are rejected, and event ID collisions cannot overwrite earlier payloads
50
+ - Current and retained events, policy history, payload digests, route bindings, receipt digests, and authority markers are replayed by the ten-gate audit
51
+ - Channel state and voice context cannot grant host, tool, file, network, send, delegation, production, or execution rights
52
+ - Persona events, roster receipts, gateway history, queue and delivery IDs, lanes, checkpoints, and receipts fail closed under structural or digest manipulation
53
+ - Persona activity and exact group membership plus revoked reply grants are rechecked at claim, run completion, and immediately before network effect; known no-effect exhaustion cannot enter a supervisor restart loop
54
+ - Provider and ingress credentials remain environment-only and are removed from the environment passed to the host runner
55
+
56
+ ## [0.7.0] - 2026-08-29
57
+
58
+ ### Added
59
+
60
+ - External, integrity-checked indexed-memory metadata/content cache with atomic multi-process updates, immediate link-removal pruning, and cache purge on source-binding rollback or purge
61
+ - Explicit relevance markers for `always`, person, project, group, task, and prompt-keyword scopes; unproven fact files remain unopened and omitted
62
+ - Privacy-bounded indexed-memory diagnostics for indexed, relevant, loaded, cache-hit, cache-miss, missing, scope, path, symlink, size, and race outcomes
63
+ - Explicit `doctor --offline-memory-orphans` enumeration that reports counts only and remains outside every live lifecycle path
64
+ - Real temporary 50,000-file acceptance with deterministic open-count instrumentation and a source-level ban on directory enumeration in the live indexed-memory module
65
+
66
+ ### Changed
67
+
68
+ - Claude project-memory resolution now treats `MEMORY.md` as the explicit index and opens only directly linked, relevant Markdown facts instead of walking the complete memory tree
69
+ - Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.7.0`; upgrade acceptance rejects the cached `0.6.0` bundle
70
+
71
+ ### Security
72
+
73
+ - Indexed memory targets are opened with no-follow semantics and validated through one filehandle before and after reading; file replacement races retry and then reject visibly
74
+ - Missing targets, path escapes, symlinked paths, non-regular files, oversized sources, transitive links, stale cache records, and corrupt cache state cannot enter the briefing
75
+ - Cache and relevance remain context-only and cannot create identity, rights, delegation, trust, capabilities, network access, or self-starter policy
76
+
77
+ ## [0.6.0] - 2026-08-28
78
+
79
+ ### Added
80
+
81
+ - Provider-neutral host-native source-root registry with bounded Claude profile, project-chain, project-memory, Codex home, root-marker, fallback-name, and nested-override resolution
82
+ - Explicit portable user-state binding with provenance, conflict detection, rollback, purge, and low-risk learning-only projection across repositories and hosts
83
+ - Installed production-hook RED/GREEN reproduction of the real zero-source failure from an AgentSpine checkout and foreign working directory
84
+ - `source-status`, `source-bind`, `source-rollback`, and `source-purge` CLI workflows plus host-aware Doctor and Audit diagnostics
85
+
86
+ ### Changed
87
+
88
+ - Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.6.0`
89
+ - The lifecycle bundle declares `agentspine.source-roots/v1`; upgrade tests reject the cached `0.5.0` bundle
90
+ - Automatic briefing uses separate user, project, and project-memory bindings instead of treating the launch directory as one recursive source root
91
+
92
+ ### Security
93
+
94
+ - Home-wide scans, foreign-repository discovery, symlink following, guessed Claude memory paths, blind root-hash state copying, and project-state flattening are prohibited and tested
95
+ - Empty or damaged source resolution is visible and never reported as loaded personal continuity
96
+ - Source and migration bindings remain context-only and cannot create identities, roles, delegation, host trust, execution grants, capabilities, or self-starter rights
97
+
98
+ ## [0.5.0] - 2026-08-28
99
+
100
+ ### Added
101
+
102
+ - Visible 14-gate cross-host acceptance using new synthetic people, separated groups, Swedish and Spanish prompts, real lifecycle restart and compaction boundaries, and zero model-side MCP calls
103
+ - Deterministic SHA-256 receipts for identity, multilingual continuity, attention, isolation, correction, rollback, purge, authorized resume, denied foreign effects, durable checkpoints, source preservation, and the final audit
104
+ - Installed-bundle acceptance for both fresh installation and upgrade from `0.4.0`
105
+
106
+ ### Changed
107
+
108
+ - Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.5.0`
109
+ - The lifecycle bundle declares `agentspine.acceptance/v1`
110
+ - Safe direct style, correction, no-go, project-fact, promise, and blocker recognition covers the Swedish and Spanish acceptance paths
111
+
112
+ ### Security
113
+
114
+ - Person and exact-group negative visibility, a denied foreign lease effect, complete person purge, and byte-for-byte source preservation are visible acceptance gates
115
+ - Acceptance state is synthetic, external, temporary, and transcript-free; its receipts create no identity, trust, approval, or authority
116
+ - Fresh-install and upgrade proofs require exactly one MCP server, exactly one hook set, and complete automatic behavior with `mcpCalls: 0`
117
+
118
+ ## [0.4.0] - 2026-08-28
119
+
120
+ ### Added
121
+
122
+ - Rights-bound self-starter for one exact waiting job with durable checkpoints, expiring leases, retry budget, backoff, crash recovery, audit receipts, cancellation, and purge
123
+ - Native Claude Code and Codex lifecycle path from `SessionStart` through `PreToolUse`, `PostToolUse`, `Stop`, and a new-session resume without a model-side MCP call or repeated job envelope
124
+ - Separate local execution policy binding actor, action set, job, task, target, project, optional group, host, and finite tool capabilities
125
+ - Fresh-install and `0.3.0` upgrade proof for exactly one MCP server, one hook set, an authorized effect, a durable checkpoint, and automatic resume
126
+
127
+ ### Changed
128
+
129
+ - Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.4.0`
130
+ - The lifecycle bundle declares `agentspine.selfstarter/v1` and resolves active jobs from the native host session
131
+ - Ten-gate audit includes external execution-policy and job-state integrity without reading either as context authority
132
+
133
+ ### Security
134
+
135
+ - Every start, resume, and effect rechecks the current exact grant, task assignment, scope, host session, capability, lease, and content-bound workspace fingerprint
136
+ - Memory, Markdown, learning, relationships, attention, tasks, prior approvals, model claims, and MCP responses cannot create or widen execution rights
137
+ - Unknown effects, concurrent leases, revocation, expiry, workspace drift, uncheckpointed crash changes, retry exhaustion, malformed state, and protected-source writes fail closed
138
+ - MCP exposes no execution-policy grant, revoke, job registration, cancellation, or checkpoint administration
139
+
140
+ ## [0.3.0] - 2026-08-28
141
+
142
+ ### Added
143
+
144
+ - Provider-neutral heartbeat, promise, and blocker lifecycle events written by installed Claude Code and Codex hooks without a model-side MCP call
145
+ - Exact actor, group, project, and task binding with stable event identity, minimal SHA-256 provenance, idempotent receipts, occurrence counts, and retained prior versions
146
+ - Automatic current-task event injection at start, restart, prompt, and compaction boundaries, including stale-heartbeat, open-promise, and open-blocker handling
147
+ - CLI inspection and permanent event deletion plus entity purge across events, receipts, history, and presentation throttles
148
+ - Fresh-install and previous-version upgrade test that proves one MCP server, one hook set, automatic event capture, restart injection, and source-preserving uninstall
149
+
150
+ ### Changed
151
+
152
+ - Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.3.0`
153
+ - Focus mode suppresses unrelated cues while permitting an active blocker, due promise, or stale heartbeat for the exact current task
154
+ - Parallel catalog replacement uses collision-free atomic temporary paths across concurrent lifecycle hooks
155
+
156
+ ### Security
157
+
158
+ - Automatic prompt events require the local continuity opt-in and reject group conversation content, secrets, identity claims, rights, roles, delegation, access, production, payment, and approval claims
159
+ - Corrupt attention lifecycle state and unknown task scope fail closed; events remain context-only and can neither send messages nor create authority
160
+
161
+ ## [0.2.0] - 2026-08-28
162
+
163
+ ### Added
164
+
165
+ - Native Claude Code and Codex lifecycle integration that automatically injects the actual scoped, byte-budgeted session briefing at start, resume, prompt, and compaction boundaries without a model-side MCP call
166
+ - Separate local opt-in for minimal high-confidence style, preference, no-go, correction, project-fact, and reference learning with digest provenance, deduplication, rollback, purge, and no transcript retention
167
+ - Complete hook inventory for prompt, tool, compaction, stop, and subagent-stop boundaries plus reproducible fresh-install, stale-cache upgrade, and uninstall preservation checks
168
+
169
+ ### Changed
170
+
171
+ - Claude Code explicitly registers the MCP file and loads exactly one hook bundle from its native `hooks/hooks.json` discovery path
172
+ - Package, lockfile, Claude Code, Codex, and marketplace cache versions advance together to `0.2.0`
173
+ - Session hooks now inject usable accepted context instead of counts and a suggestion to call `session_briefing`
174
+
175
+ ### Security
176
+
177
+ - Automatic learning rejects secrets, sensitive personal facts, identity merging, private group content, rights, roles, delegation, approvals, tool or file access, network or database access, production, payments, and policy claims
178
+ - Hook JSON input is bounded, state remains external and atomically locked, malformed state is visible and fail-closed, and source Markdown remains byte-for-byte unchanged
179
+
180
+ ### Added
181
+
182
+ - Executable Claude Code and Codex host-registration check with a real MCP `initialize` handshake
183
+ - Optional local SQLite snapshot transport with immutable signed-adapter binding, append-only hash-linked revisions, atomic head advancement, full integrity replay, quarantined pull, CLI integration, and no MCP database authority
184
+ - One-shot challenge-response peer transport over an owner-selected stdin/stdout carrier, with a fresh nonce, live Ed25519 proof, shell-free process execution, environment minimization, quarantine import, CLI integration, and no MCP process authority
185
+ - Provider-neutral signed HTTPS feed with strong ETag compare-and-swap publication, bounded hash-chain continuity, external rollback receipts, quarantined pull, CLI integration, audit coverage, and no MCP transport authority
186
+ - Ten-gate `agentspine audit` command and MCP tool
187
+ - Privacy-scoped entities and relationships for people, agents, groups, channels, and projects
188
+ - Append-only history for superseded document annotations, document links, entities, and relationships
189
+ - Broken-link and competing-candidate findings in every catalog
190
+ - Large-tree, manifest-consistency, CLI-MCP, privacy, authority, and shell-guard tests
191
+ - Local sparse-attention state for unanswered questions, promises, check-ins, and meaningful changes
192
+ - Relationship-silence cues based on minimal interaction timestamps rather than conversation capture
193
+ - Attention CLI and MCP surfaces with quiet hours, focus suppression, throttling, disable, resolve, and permanent deletion controls
194
+ - Exact group-audience binding for group-scoped cues and activity timestamps
195
+ - Cross-process locking for concurrent local attention updates
196
+ - Evidence-backed learning candidates kept separate from accepted context
197
+ - Explicit review, low-risk opt-in promotion, supersession, rollback, and permanent learning deletion
198
+ - SHA-256 provenance capture for document evidence and serialized concurrent evidence appends
199
+ - Safe-learning CLI, MCP tools, hook metadata, audit checks, and full lifecycle tests
200
+ - Separate default-deny delegation policy with explicit actor, action, target, provenance, revision, and revocation history
201
+ - Context-only tasks, open threads, and handoffs with assignment snapshots and retained prior versions
202
+ - Coordination CLI, read/check MCP surfaces, privacy-filtered hook metadata, audit integration, and concurrency tests
203
+ - Provider-neutral shared-event contract and optional directory adapter with immutable event files
204
+ - Quarantined, idempotent shared-memory import with a second local review before context
205
+ - Shared supersession, rollback, exact group filtering, CLI administration, read-only MCP context, hooks, and audit coverage
206
+ - Optional Ed25519 manifest and event envelopes with strict public identities and retained verification proof
207
+ - Installation-local signer generation and rotation plus project-local trust, revocation, and audit replay
208
+ - Immutable signed HTTPS snapshot export and dependency-free provider-neutral pull transport
209
+ - DNS pinning, default SSRF blocking, redirect and compression rejection, bounded responses, optional environment-only bearer authentication, and explicit private-network opt-in
210
+ - Provider-neutral `session_briefing` across native sources, relationships, accepted learning, reviewed shared memory, coordination, and attention
211
+ - Current-task priority, local/shared deduplication, exact compact-JSON byte accounting, atomic omission, and group-safe metadata-only source handling
212
+ - Provider-neutral content-addressed HTTPS object publication with create-only preconditions
213
+ - Mandatory signed read-back verification and safe idempotent retry handling for immutable remote objects
214
+ - Tag-authorized GitHub release pipeline with CycloneDX SBOM, SHA-256 checksums, build provenance, and SBOM attestations
215
+ - Deterministic release metadata and package-boundary validator covering both host manifests and forbidden state/source material
216
+ - Pinned-action policy, release-sensitive CODEOWNERS, and isolated least-privilege publication jobs
217
+
218
+ ### Changed
219
+
220
+ - Claude Code now receives an explicit manifest reference to the bundled `.mcp.json`, preventing the MCP server from disappearing in installations that do not apply implicit component discovery
221
+ - `agentspine mcp` now starts the stdio server instead of returning immediately
222
+ - Discovery fingerprints files with bounded parallel reads
223
+ - Context resolution reuses catalogs and only follows confident overlay links
224
+ - Protected-source hooks recognize common mutating shell commands and refresh after tool writes
225
+ - Agent annotations cannot promote arbitrary Markdown into a constitution layer
226
+ - CI runs the repository's own ten-gate audit and uses the current maintained GitHub action majors
227
+ - Syntax checks and protected-path comparisons are portable across Linux, macOS, and Windows
228
+ - External-state auditing handles Windows project and state directories on different drives
229
+ - Session hooks expose only due attention counts and kinds; cue text remains behind an explicit privacy-filtered read
230
+ - The ten-gate audit now validates attention authority, privacy, configuration, and external-state placement
231
+ - Accepted learning must carry auditable manual-confirmation proof or an evidence-threshold policy snapshot
232
+ - Cross-entity coordination now requires a matching explicit local policy grant; relationship responsibility remains descriptive only
233
+ - Session hooks expose only counts and kinds of locally reviewed shared memory; pending claims remain hidden
234
+ - Session hooks point to one explicit scoped briefing without automatically injecting its content
235
+
236
+ ### Security
237
+
238
+ - Relationship attributes recursively reject permissions, rights, authorization, credentials, secrets, tokens, and API keys
239
+ - Every relationship and history record is explicitly context-only
240
+ - Every attention cue and activity is context-only; corrupt attention policy fails closed
241
+ - Secret-shaped observations and authority assertions are rejected before learning storage
242
+ - Delegation policy mutation is excluded from MCP, and malformed policy or coordination state fails closed without overwrite
243
+ - Task coordination grants no host, tool, file, network, deployment, production, billing, or spending authority
244
+ - Private learning, source content, evidence text, tasks, policy, and credentials are excluded from shared events
245
+ - Adapter administration is excluded from MCP; malformed, oversized, symlinked, collided, or tampered exchange state fails closed
246
+ - Private signing keys remain outside projects and agent surfaces; unknown, revoked, swapped, or mismatched signers fail closed
247
+ - HTTPS snapshot transport validates TLS endpoints, every DNS answer, bundle integrity, strict schema, and all nested signatures before quarantine mutation
248
+ - Group briefings reject private reads, foreign membership, and unscoped source content; briefing output remains context-only and read-only
249
+ - HTTPS publishing is CLI-only, owner-confirmed, DNS-pinned, SSRF-restricted, overwrite-free, size-bounded, and credential-safe
250
+ - Release workflows accept tags only, verify containment in `main`, use short-lived OIDC for attestations, and expose no npm or AgentSpine secrets
251
+
252
+ ### Planned
253
+
254
+ - Optional hosted database transports implementing the signed-envelope and shared-event contracts
255
+
256
+ ## [0.1.0] - 2026-08-27
257
+
258
+ ### Added
259
+
260
+ - Non-destructive Markdown discovery and SHA-256 provenance catalog
261
+ - Native Codex and Claude Code context resolution
262
+ - Exact ranged reads for sources outside the context budget
263
+ - Agent-authored overlay annotations and document graph links
264
+ - CLI, stdio MCP server, and lifecycle hooks
265
+ - Protected-source write guard for participating host tools
266
+ - Dual Claude Code and Codex plugin manifests
267
+ - Cross-platform preservation, hook, graph, and MCP tests
268
+
269
+ [Unreleased]: https://github.com/Maykbiletti/AgentSpine/compare/v0.8.0...HEAD
270
+ [0.8.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.7.0...v0.8.0
271
+ [0.7.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.6.0...v0.7.0
272
+ [0.6.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.5.0...v0.6.0
273
+ [0.5.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.4.0...v0.5.0
274
+ [0.4.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.3.0...v0.4.0
275
+ [0.3.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.2.0...v0.3.0
276
+ [0.2.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.1.0...v0.2.0
277
+ [0.1.0]: https://github.com/Maykbiletti/AgentSpine/releases/tag/v0.1.0
@@ -0,0 +1,186 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction, and
10
+ distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by the
13
+ copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all other
16
+ entities that control, are controlled by, or are under common control with
17
+ that entity. For the purposes of this definition, "control" means (i) the
18
+ power, direct or indirect, to cause the direction or management of such
19
+ entity, whether by contract or otherwise, or (ii) ownership of fifty percent
20
+ (50%) or more of the outstanding shares, or (iii) beneficial ownership of
21
+ such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity exercising
24
+ permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation source, and
28
+ configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical transformation
31
+ or translation of a Source form, including but not limited to compiled object
32
+ code, generated documentation, and conversions to other media types.
33
+
34
+ "Work" shall mean the work of authorship, whether in Source or Object form,
35
+ made available under the License, as indicated by a copyright notice that is
36
+ included in or attached to the work (an example is provided in the Appendix
37
+ below).
38
+
39
+ "Derivative Works" shall mean any work, whether in Source or Object form,
40
+ that is based on (or derived from) the Work and for which the editorial
41
+ revisions, annotations, elaborations, or other modifications represent, as a
42
+ whole, an original work of authorship. For the purposes of this License,
43
+ Derivative Works shall not include works that remain separable from, or merely
44
+ link (or bind by name) to the interfaces of, the Work and Derivative Works
45
+ thereof.
46
+
47
+ "Contribution" shall mean any work of authorship, including the original
48
+ version of the Work and any modifications or additions to that Work or
49
+ Derivative Works thereof, that is intentionally submitted to Licensor for
50
+ inclusion in the Work by the copyright owner or by an individual or Legal
51
+ Entity authorized to submit on behalf of the copyright owner. For the purposes
52
+ of this definition, "submitted" means any form of electronic, verbal, or
53
+ written communication sent to the Licensor or its representatives, including
54
+ but not limited to communication on electronic mailing lists, source code
55
+ control systems, and issue tracking systems that are managed by, or on behalf
56
+ of, the Licensor for the purpose of discussing and improving the Work, but
57
+ excluding communication that is conspicuously marked or otherwise designated
58
+ in writing by the copyright owner as "Not a Contribution."
59
+
60
+ "Contributor" shall mean Licensor and any individual or Legal Entity on
61
+ behalf of whom a Contribution has been received by Licensor and subsequently
62
+ incorporated within the Work.
63
+
64
+ 2. Grant of Copyright License. Subject to the terms and conditions of this
65
+ License, each Contributor hereby grants to You a perpetual, worldwide,
66
+ non-exclusive, no-charge, royalty-free, irrevocable copyright license to
67
+ reproduce, prepare Derivative Works of, publicly display, publicly perform,
68
+ sublicense, and distribute the Work and such Derivative Works in Source or
69
+ Object form.
70
+
71
+ 3. Grant of Patent License. Subject to the terms and conditions of this
72
+ License, each Contributor hereby grants to You a perpetual, worldwide,
73
+ non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this
74
+ section) patent license to make, have made, use, offer to sell, sell, import,
75
+ and otherwise transfer the Work, where such license applies only to those
76
+ patent claims licensable by such Contributor that are necessarily infringed by
77
+ their Contribution(s) alone or by combination of their Contribution(s) with
78
+ the Work to which such Contribution(s) was submitted. If You institute patent
79
+ litigation against any entity (including a cross-claim or counterclaim in a
80
+ lawsuit) alleging that the Work or a Contribution incorporated within the Work
81
+ constitutes direct or contributory patent infringement, then any patent
82
+ licenses granted to You under this License for that Work shall terminate as of
83
+ the date such litigation is filed.
84
+
85
+ 4. Redistribution. You may reproduce and distribute copies of the Work or
86
+ Derivative Works thereof in any medium, with or without modifications, and in
87
+ Source or Object form, provided that You meet the following conditions:
88
+
89
+ (a) You must give any other recipients of the Work or Derivative Works a copy
90
+ of this License; and
91
+
92
+ (b) You must cause any modified files to carry prominent notices stating that
93
+ You changed the files; and
94
+
95
+ (c) You must retain, in the Source form of any Derivative Works that You
96
+ distribute, all copyright, patent, trademark, and attribution notices from the
97
+ Source form of the Work, excluding those notices that do not pertain to any
98
+ part of the Derivative Works; and
99
+
100
+ (d) If the Work includes a "NOTICE" text file as part of its distribution,
101
+ then any Derivative Works that You distribute must include a readable copy of
102
+ the attribution notices contained within such NOTICE file, excluding those
103
+ notices that do not pertain to any part of the Derivative Works, in at least
104
+ one of the following places: within a NOTICE text file distributed as part of
105
+ the Derivative Works; within the Source form or documentation, if provided
106
+ along with the Derivative Works; or, within a display generated by the
107
+ Derivative Works, if and wherever such third-party notices normally appear.
108
+ The contents of the NOTICE file are for informational purposes only and do not
109
+ modify the License. You may add Your own attribution notices within Derivative
110
+ Works that You distribute, alongside or as an addendum to the NOTICE text from
111
+ the Work, provided that such additional attribution notices cannot be
112
+ construed as modifying the License.
113
+
114
+ You may add Your own copyright statement to Your modifications and may provide
115
+ additional or different license terms and conditions for use, reproduction,
116
+ or distribution of Your modifications, or for any such Derivative Works as a
117
+ whole, provided Your use, reproduction, and distribution of the Work otherwise
118
+ complies with the conditions stated in this License.
119
+
120
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any
121
+ Contribution intentionally submitted for inclusion in the Work by You to the
122
+ Licensor shall be under the terms and conditions of this License, without any
123
+ additional terms or conditions. Notwithstanding the above, nothing herein
124
+ shall supersede or modify the terms of any separate license agreement you may
125
+ have executed with Licensor regarding such Contributions.
126
+
127
+ 6. Trademarks. This License does not grant permission to use the trade names,
128
+ trademarks, service marks, or product names of the Licensor, except as required
129
+ for reasonable and customary use in describing the origin of the Work and
130
+ reproducing the content of the NOTICE file.
131
+
132
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in
133
+ writing, Licensor provides the Work (and each Contributor provides its
134
+ Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
135
+ KIND, either express or implied, including, without limitation, any warranties
136
+ or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
137
+ PARTICULAR PURPOSE. You are solely responsible for determining the
138
+ appropriateness of using or redistributing the Work and assume any risks
139
+ associated with Your exercise of permissions under this License.
140
+
141
+ 8. Limitation of Liability. In no event and under no legal theory, whether in
142
+ tort (including negligence), contract, or otherwise, unless required by
143
+ applicable law (such as deliberate and grossly negligent acts) or agreed to in
144
+ writing, shall any Contributor be liable to You for damages, including any
145
+ direct, indirect, special, incidental, or consequential damages of any
146
+ character arising as a result of this License or out of the use or inability to
147
+ use the Work (including but not limited to damages for loss of goodwill, work
148
+ stoppage, computer failure or malfunction, or any and all other commercial
149
+ damages or losses), even if such Contributor has been advised of the
150
+ possibility of such damages.
151
+
152
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work
153
+ or Derivative Works thereof, You may choose to offer, and charge a fee for,
154
+ acceptance of support, warranty, indemnity, or other liability obligations
155
+ and/or rights consistent with this License. However, in accepting such
156
+ obligations, You may act only on Your own behalf and on Your sole
157
+ responsibility, not on behalf of any other Contributor, and only if You agree
158
+ to indemnify, defend, and hold each Contributor harmless for any liability
159
+ incurred by, or claims asserted against, such Contributor by reason of your
160
+ accepting any such warranty or additional liability.
161
+
162
+ END OF TERMS AND CONDITIONS
163
+
164
+ APPENDIX: How to apply the Apache License to your work.
165
+
166
+ To apply the Apache License to your work, attach the following boilerplate
167
+ notice, with the fields enclosed by brackets "[]" replaced with your own
168
+ identifying information. (Don't include the brackets!) The text should be
169
+ enclosed in the appropriate comment syntax for the file format. We also
170
+ recommend that a file or class name and description of purpose be included on
171
+ the same "printed page" as the copyright notice for easier identification
172
+ within third-party archives.
173
+
174
+ Copyright 2026 Mayk Biletti
175
+
176
+ Licensed under the Apache License, Version 2.0 (the "License");
177
+ you may not use this file except in compliance with the License.
178
+ You may obtain a copy of the License at
179
+
180
+ http://www.apache.org/licenses/LICENSE-2.0
181
+
182
+ Unless required by applicable law or agreed to in writing, software
183
+ distributed under the License is distributed on an "AS IS" BASIS,
184
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
185
+ See the License for the specific language governing permissions and
186
+ limitations under the License.