blun-king-cli 9.1.536 → 9.1.561
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/LIESMICH.txt +13 -869
- package/README.md +41 -833
- package/bin/assistant-message-offload-policy.cjs +3 -1
- package/bin/compaction-transaction-policy.cjs +122 -0
- package/bin/context-performance-policy.cjs +2 -5
- package/bin/context-pressure-policy.cjs +20 -0
- package/bin/cron-run-output.cjs +45 -0
- package/bin/cron-run-store.cjs +145 -0
- package/bin/default-model-output-budget-policy.cjs +28 -0
- package/bin/durable-task-resume-policy.cjs +130 -0
- package/bin/durable-task-resume-runtime.cjs +117 -0
- package/bin/durable-task-resume-store.cjs +88 -0
- package/bin/editable-tool-approval-policy.cjs +540 -0
- package/bin/editable-tool-approval-runtime.cjs +99 -0
- package/bin/file-observation-policy.cjs +133 -0
- package/bin/html-to-research-markdown.cjs +146 -0
- package/bin/launcher-runtime.js +0 -1
- package/bin/micro-compaction-policy.cjs +64 -0
- package/bin/mnemo-connect-heartbeat.cjs +1 -3
- package/bin/programmatic-tool-runtime.mjs +330 -4
- package/bin/read-continuation-policy.cjs +36 -5
- package/bin/retry-checkpoint-policy.cjs +13 -0
- package/bin/scoped-cron-run-policy.cjs +358 -0
- package/bin/session-checkpoint-policy.cjs +25 -0
- package/bin/startup-preferences.cjs +4 -3
- package/bin/structured-agent-swarm-output.cjs +325 -0
- package/bin/subagent-context-fork-policy.cjs +155 -0
- package/bin/subagent-skill-policy.cjs +204 -0
- package/bin/telegram-approval-relay.cjs +2 -1
- package/bin/tool-file-persistence.cjs +141 -0
- package/bin/tool-result-offload-policy.cjs +25 -33
- package/bin/turn-thinking-policy.cjs +2 -26
- package/bin/update-notice.js +30 -18
- package/bin/user-message-offload-policy.cjs +3 -1
- package/blun.mjs +1564 -640
- package/codebase-index/README.md +12 -0
- package/codebase-index/codebase_index.py +129 -18
- package/package.json +23 -58
- package/telegram-plugin/bin/telegram-mnemo-capture.cjs +1 -3
- package/telegram-plugin/bin/telegram-typing-keepalive.cjs +89 -0
- package/telegram-plugin/dist/bridge.mjs +8 -1
- package/CHANGELOG.md +0 -321
- package/agent-spine-plugin/CHANGELOG.md +0 -406
- package/agent-spine-plugin/CONTRIBUTING.md +0 -52
- package/agent-spine-plugin/README.md +0 -344
- package/agent-spine-plugin/SECURITY.md +0 -47
- package/agent-spine-plugin/docs/acceptance.md +0 -61
- package/agent-spine-plugin/docs/architecture.md +0 -183
- package/agent-spine-plugin/docs/attention.md +0 -121
- package/agent-spine-plugin/docs/automatic-continuity.md +0 -79
- package/agent-spine-plugin/docs/channel-runtime.md +0 -92
- package/agent-spine-plugin/docs/coordination.md +0 -138
- package/agent-spine-plugin/docs/feed-transport.md +0 -99
- package/agent-spine-plugin/docs/gateway-runtime.md +0 -116
- package/agent-spine-plugin/docs/harness-reference.md +0 -45
- package/agent-spine-plugin/docs/host-integration.md +0 -129
- package/agent-spine-plugin/docs/https-transport.md +0 -116
- package/agent-spine-plugin/docs/learning.md +0 -133
- package/agent-spine-plugin/docs/object-transport.md +0 -93
- package/agent-spine-plugin/docs/peer-transport.md +0 -88
- package/agent-spine-plugin/docs/preflight-recall.md +0 -69
- package/agent-spine-plugin/docs/preservation-contract.md +0 -53
- package/agent-spine-plugin/docs/quality-gates.md +0 -50
- package/agent-spine-plugin/docs/relationships.md +0 -73
- package/agent-spine-plugin/docs/releasing.md +0 -83
- package/agent-spine-plugin/docs/roadmap.md +0 -307
- package/agent-spine-plugin/docs/selfstarter.md +0 -88
- package/agent-spine-plugin/docs/session-briefing.md +0 -74
- package/agent-spine-plugin/docs/shared-memory.md +0 -259
- package/agent-spine-plugin/docs/source-roots.md +0 -86
- package/agent-spine-plugin/docs/sqlite-transport.md +0 -76
- package/agent-spine-plugin/scripts/check-hosts.js +0 -195
- package/agent-spine-plugin/scripts/check-install.js +0 -569
- package/agent-spine-plugin/scripts/check-syntax.js +0 -29
- package/agent-spine-plugin/scripts/github-actions.js +0 -11
- package/agent-spine-plugin/scripts/release-check.js +0 -128
- package/agent-spine-plugin/scripts/run-acceptance.js +0 -19
- package/agent-spine-plugin/scripts/run-checks.js +0 -46
- package/agent-spine-plugin/scripts/run-tests-hermetic.js +0 -73
- package/agent-spine-plugin/spine-example/1-identity.md +0 -12
- package/agent-spine-plugin/spine-example/2-voice.md +0 -6
- package/agent-spine-plugin/spine-example/3-conduct.md +0 -8
- package/agent-spine-plugin/spine-example/4-history.md +0 -4
- package/bin/empty-response-retry-policy.cjs +0 -29
- package/bin/fredrik-glm-provider.cjs +0 -256
- package/bin/package-regression-policy.cjs +0 -77
- package/fredrik-glm-profile.toml.example +0 -26
- package/release-planned-removals.json +0 -15
- package/scripts/check-active-profile-plugin-startup.js +0 -36
- package/scripts/check-active-work-steer-regression.js +0 -46
- package/scripts/check-approval-observability-regression.js +0 -111
- package/scripts/check-approval-queue-shortcuts-regression.js +0 -65
- package/scripts/check-bundled-agent-spine-regression.js +0 -48
- package/scripts/check-codebase-search-packaging-regression.js +0 -92
- package/scripts/check-copy-command-regression.js +0 -74
- package/scripts/check-current-turn-read-pin-mutation-regression.js +0 -72
- package/scripts/check-current-turn-read-pin-regression.js +0 -94
- package/scripts/check-deepseek-native-max-regression.js +0 -49
- package/scripts/check-empty-response-effort-downgrade-regression.js +0 -48
- package/scripts/check-fredrik-glm-mutation-regression.js +0 -18
- package/scripts/check-fredrik-glm-regression.js +0 -169
- package/scripts/check-historical-tool-result-preview-regression.js +0 -77
- package/scripts/check-history-pressure-offload-regression.js +0 -77
- package/scripts/check-mcp-startup-wait-budget.js +0 -48
- package/scripts/check-package-regression.js +0 -38
- package/scripts/check-plugin-startup-regression.js +0 -53
- package/scripts/check-programmatic-context-isolation-regression.js +0 -193
- package/scripts/check-programmatic-tool-regression.js +0 -294
- package/scripts/check-queue-controls-regression.js +0 -189
- package/scripts/check-release-metadata.js +0 -103
- package/scripts/check-reload-agent-spine-regression.js +0 -76
- package/scripts/check-resume-replay-regression.js +0 -102
- package/scripts/check-session-cancel-regression.js +0 -43
- package/scripts/check-session-picker-resume-metrics-regression.js +0 -97
- package/scripts/check-session-start-hook-context-regression.js +0 -228
- package/scripts/check-shell-terminal-isolation-regression.js +0 -81
- package/scripts/check-slash-escape-regression.js +0 -89
- package/scripts/check-startup-swarm-command-regression.js +0 -24
- package/scripts/check-structured-subagent-output-regression.js +0 -331
- package/scripts/check-telegram-bridge-watchdog.js +0 -60
- package/scripts/check-telegram-direct-work-resume-regression.js +0 -53
- package/scripts/check-telegram-loop-exactly-once-regression.js +0 -71
- package/scripts/check-todo-loop-regression.js +0 -78
- package/scripts/check-todo-progress-regression.js +0 -416
- package/scripts/check-todo-recovery-catalog-regression.js +0 -50
- package/scripts/check-tool-schema-capacity-regression.js +0 -40
- package/scripts/programmatic-tool-runtime.test.mjs +0 -365
- package/scripts/structured-subagent-output.test.cjs +0 -170
- /package/{scripts → bin}/fix-node-pty-perms.js +0 -0
|
@@ -1,406 +0,0 @@
|
|
|
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
|
-
## [0.11.4] - 2026-09-01
|
|
8
|
-
|
|
9
|
-
### Fixed
|
|
10
|
-
|
|
11
|
-
- Nonexistent descendants inherit the canonical identity of their nearest existing ancestor, preventing macOS aliases and Windows namespace normalization from misclassifying an internal state directory as external before its first write.
|
|
12
|
-
|
|
13
|
-
## [0.11.3] - 2026-09-01
|
|
14
|
-
|
|
15
|
-
### Fixed
|
|
16
|
-
|
|
17
|
-
- Scanner exclusion roots are canonicalized before comparison, so macOS `/var` → `/private/var` aliases and Windows path normalization cannot reintroduce private AgentSpine state into a home-root catalog.
|
|
18
|
-
|
|
19
|
-
## [0.11.2] - 2026-09-01
|
|
20
|
-
|
|
21
|
-
### Fixed
|
|
22
|
-
|
|
23
|
-
- Exact user-home working directories may keep authenticated AgentSpine state below the home only when that state root is explicitly excluded from source discovery; the installed hook no longer deadlocks on its own signing identity.
|
|
24
|
-
- Generic catalog discovery now prunes the configured AgentSpine state subtree before opening Markdown, so signing keys, persona rosters, receipts, and generated state cannot become project context.
|
|
25
|
-
|
|
26
|
-
### Security
|
|
27
|
-
|
|
28
|
-
- The exception is limited to an exact OS/`HOME`/`USERPROFILE` home root. State inside an ordinary nested project remains fail-closed, symlinks remain untraversed, and user Markdown remains byte-preserved.
|
|
29
|
-
|
|
30
|
-
## [0.11.1] - 2026-09-01
|
|
31
|
-
|
|
32
|
-
### Fixed
|
|
33
|
-
|
|
34
|
-
- Installed hooks reuse the already bounded host-source catalog throughout scope, continuity, learning, attention, persona, relationship, and briefing reads instead of recursively rebuilding it from the active working directory.
|
|
35
|
-
- Windows profile homes are recognized through canonical OS, `USERPROFILE`, `HOME`, and `HOMEDRIVE`/`HOMEPATH` identities, including case-insensitive paths and homes that contain a project marker; their recursive project tree is never enumerated.
|
|
36
|
-
|
|
37
|
-
### Security
|
|
38
|
-
|
|
39
|
-
- Direct host-native `CLAUDE.md` and `AGENTS.md` chain files remain fully injected and byte-preserved while unrelated home descendants are excluded from context and indexing.
|
|
40
|
-
|
|
41
|
-
## [0.11.0] - 2026-08-31
|
|
42
|
-
|
|
43
|
-
### Added
|
|
44
|
-
|
|
45
|
-
- Provider-neutral `agentspine.learning-outcome/v1` receipts for content-free, normalized fixed-task before/after measurements bound to exact persona, user, tenant, project, group, task, metric, and evaluator scopes
|
|
46
|
-
- Default-off outcome-gated `behavior` candidates with independent-evaluator thresholds, objective-evidence requirements, bounded canary application, measured validation, contradiction detection, staleness gates, and read-only MCP diagnostics
|
|
47
|
-
- Local CLI commands for recording outcome receipts and inspecting promotion, canary, regression, and expiry state
|
|
48
|
-
|
|
49
|
-
### Changed
|
|
50
|
-
|
|
51
|
-
- Session briefings project outcome-gated behavior only into the exact matching scope and exclude expired canaries with a visible degraded diagnostic
|
|
52
|
-
- Learning-state upgrades add outcome configuration and receipts without rewriting existing candidates or user-authored Markdown
|
|
53
|
-
|
|
54
|
-
### Security
|
|
55
|
-
|
|
56
|
-
- Model suggestions are retained separately but never count toward automatic promotion or canary validation
|
|
57
|
-
- Any blocking defect overrides aggregate scores and immediately rolls back the canary; regressions, insufficient improvement, and expiry also fail closed through rollback
|
|
58
|
-
- Outcome receipts contain no prompts, answers, transcripts, credentials, rights, delegation, tool access, production, payment, or policy authority
|
|
59
|
-
- Codex plugin metadata omits the validator-rejected `hooks` field; the separate versioned Codex host adapter remains packaged and independently validated
|
|
60
|
-
|
|
61
|
-
## [0.10.1] - 2026-08-31
|
|
62
|
-
|
|
63
|
-
### Changed
|
|
64
|
-
|
|
65
|
-
- Claude mandatory instructions retain the 8 KiB standard budget but may use one explicit, receipt-bound overflow up to 16 KiB; Codex and generic instruction hosts remain capped at 8 KiB
|
|
66
|
-
- Relationship deadlines return a visible `degraded` context and abort the active graph read instead of aborting the turn
|
|
67
|
-
|
|
68
|
-
### Fixed
|
|
69
|
-
|
|
70
|
-
- Relationship CLI and MCP reads no longer rebuild the complete project catalog before reading the bounded graph state
|
|
71
|
-
- An unmarked home-directory working directory no longer becomes a recursive project scan; known user rules are still loaded through their exact host-native paths
|
|
72
|
-
- Dropbox, OneDrive, dependency, build and embedded repository directories are excluded from bounded project source traversal
|
|
73
|
-
- Oversized mandatory instructions now block immediately with the measured and allowed byte counts instead of an opaque budget message
|
|
74
|
-
|
|
75
|
-
### Security
|
|
76
|
-
|
|
77
|
-
- Automatic group neighborhoods continue to exclude explicit cross-group edges, inactive personas, private records and every entity outside the exact authenticated group audience
|
|
78
|
-
- The Claude overflow mode, byte usage and hard limit are HMAC-receipt-bound and revalidated immediately before one-time consumption
|
|
79
|
-
|
|
80
|
-
## [0.10.0] - 2026-08-30
|
|
81
|
-
|
|
82
|
-
### Added
|
|
83
|
-
|
|
84
|
-
- Self-healing authenticated persona-to-graph reconciliation on every roster sync, including unchanged replays after partial graph failure
|
|
85
|
-
- Automatic context-only group materialization for exact locally approved roster group IDs
|
|
86
|
-
- Exact group-scoped team neighborhoods so a persona briefing can include current visible co-members without explicit pairwise edges
|
|
87
|
-
- Separate roster-change and graph-repair diagnostics with deterministic counts for created groups, updated entities, and added or removed memberships
|
|
88
|
-
|
|
89
|
-
### Changed
|
|
90
|
-
|
|
91
|
-
- Active `person`, `agent`, and `bot` bindings now retain user-authored non-authority graph attributes while authenticated display name, status, source binding, privacy, and membership are reconciled
|
|
92
|
-
- Package, lockfile, Claude Code, Codex, marketplace, BLUN and hook-bundle versions advance together to `0.10.0`
|
|
93
|
-
|
|
94
|
-
### Fixed
|
|
95
|
-
|
|
96
|
-
- An unchanged roster now repairs missing persona entities, groups, and membership edges instead of remaining permanently classified as a duplicate
|
|
97
|
-
- Left and deactivated personas retain append-only identity history but no longer appear in current relationship neighborhoods
|
|
98
|
-
- Missing roster groups no longer cause membership edges to be silently skipped
|
|
99
|
-
- Relationship reads now fail visibly after a five-second local state deadline instead of waiting indefinitely
|
|
100
|
-
|
|
101
|
-
### Security
|
|
102
|
-
|
|
103
|
-
- Group peer expansion requires one exact group audience and filters inactive, private, and other-group entities before returning context
|
|
104
|
-
- Conflicting non-group IDs and private groups fail visibly instead of weakening group-scope isolation
|
|
105
|
-
- Persona, group, and relationship context remains incapable of granting rights, delegation, tools, execution, access, or policy changes
|
|
106
|
-
|
|
107
|
-
## [0.9.0] - 2026-08-30
|
|
108
|
-
|
|
109
|
-
### Added
|
|
110
|
-
|
|
111
|
-
- Mandatory `agentspine.preflight/v2` before-answer receipts bound to the exact prompt, hook delivery, host, agent, user, tenant, profile, session, project, working directory, task, group, instruction identities, retrieval queries, and briefing
|
|
112
|
-
- Provider-neutral `agentspine.retrieval-query/v1` and `agentspine.retrieval-result/v1` contracts with a bounded shell-free `mnemo-command/v1` reference adapter and environment-only credential names
|
|
113
|
-
- Explicitly confirmed, scoped Must-Remember candidates with append-only activation, supersession, rollback, permanent local-user purge, checksums, retention, and reserved briefing priority
|
|
114
|
-
- Local preflight policy, status, Must-Remember CLI and Doctor/Audit diagnostics; none of these administration surfaces are exposed through MCP
|
|
115
|
-
- Claude Code `InstructionsLoaded` observability alongside the blocking `UserPromptSubmit` gate
|
|
116
|
-
- 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
|
|
117
|
-
|
|
118
|
-
### Changed
|
|
119
|
-
|
|
120
|
-
- Prompt turns now carry a compact ordinary briefing plus a separately budgeted mandatory instruction and recall section, avoiding silent source truncation
|
|
121
|
-
- Package, lockfile, Claude Code, Codex, marketplace, BLUN, hook-bundle, worker and preflight versions advance together to `0.9.0`
|
|
122
|
-
|
|
123
|
-
### Fixed
|
|
124
|
-
|
|
125
|
-
- 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
|
|
126
|
-
- 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
|
|
127
|
-
- BLUN lifecycle hooks now index large real workspaces without absorbing embedded test profiles or failing at the smaller host-rule limit
|
|
128
|
-
- 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
|
|
129
|
-
- 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
|
|
130
|
-
- 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
|
|
131
|
-
|
|
132
|
-
### Security
|
|
133
|
-
|
|
134
|
-
- Controlled preflight failures return the host's blocking decision and exit code 2 instead of the previous fail-open informational packet
|
|
135
|
-
- Mandatory instructions are reopened without following symlinks, checked through one filehandle before and after reading, SHA-256 bound, fully injected, and rejected on replacement, deletion, scope escape, size overflow, stale identity or second receipt consumption
|
|
136
|
-
- Required recall distinguishes a verified empty result from no invocation or failure; provider output is scope-bound, content-filtered and incapable of changing policy or authority
|
|
137
|
-
- Receipts are short-lived, HMAC-authenticated in private external state, one-time consumable, and contain no prompt text, rule content, memory claims, credentials or transcripts
|
|
138
|
-
- Receipt consumption revalidates the current instruction set, local policy revision, active critical-memory checksums and exact turn scope; aborted prepared turns are invalidated for safe retry while consumed deliveries remain replay-blocked
|
|
139
|
-
- Claude-only `InstructionsLoaded` registration is physically separated from Codex's documented lifecycle event set
|
|
140
|
-
|
|
141
|
-
## [0.8.0] - 2026-08-29
|
|
142
|
-
|
|
143
|
-
### Added
|
|
144
|
-
|
|
145
|
-
- Provider-neutral authenticated channel ingress with exact provider, tenant, account, chat, thread, sender, agent, project, group, and session bindings
|
|
146
|
-
- Durable per-agent event lanes with replay protection, atomic leases, expired-lease recovery, revocation cancellation, retained history, and integrity receipts
|
|
147
|
-
- Automatic `agentspine.voice-brief/v1` projection from exact visible persona, preference, correction, no-go, current-task, promise, and blocker context
|
|
148
|
-
- Installed-bundle proof that both Claude Code and Codex receive one exact authenticated channel event and voice profile with zero model-side MCP calls
|
|
149
|
-
- Pinned OpenClaw and Hermes harness reference study documenting adopted, adapted, and deliberately excluded behavior
|
|
150
|
-
- Authenticated external persona-roster synchronization with stable identities and append-only join, rename, leave, group-change, and rejoin events
|
|
151
|
-
- 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
|
|
152
|
-
- 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
|
|
153
|
-
- 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
|
|
154
|
-
- Transient German, English, Swedish, and Spanish response cues plus an advisory voice guard against fabricated attachment, emotion, or consciousness claims
|
|
155
|
-
- Empty- and populated-profile hermetic test execution so real user state cannot change test expectations
|
|
156
|
-
|
|
157
|
-
### Changed
|
|
158
|
-
|
|
159
|
-
- The shared hook document now uses only the documented `description` and `hooks` top-level fields; version/cache identity stays in the host manifests
|
|
160
|
-
- Host checks no longer report live Codex hook trust as proven merely because the shared hook entrypoint can execute directly
|
|
161
|
-
- 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
|
|
162
|
-
- Session briefings reserve a bounded voice section and report voice omissions in the same compact-JSON budget
|
|
163
|
-
- Channel policy and runtime inspection are available through local CLI commands while every channel administration and execution operation remains absent from MCP
|
|
164
|
-
- A configured roster file is reread before every worker reconciliation, so authenticated team additions and removals become visible without a new chat prompt
|
|
165
|
-
- Promise and resolved-blocker lifecycle events now enter the same durable wake queue as direct messages and owner-assigned goals
|
|
166
|
-
|
|
167
|
-
### Security
|
|
168
|
-
|
|
169
|
-
- Channel policy changes require explicit local owner confirmation; wildcard routes and senders, unknown agents/projects/groups, and invalid group membership fail closed
|
|
170
|
-
- HMAC secrets remain environment-only, signatures are never stored, secret-bearing messages are rejected, and event ID collisions cannot overwrite earlier payloads
|
|
171
|
-
- Current and retained events, policy history, payload digests, route bindings, receipt digests, and authority markers are replayed by the ten-gate audit
|
|
172
|
-
- Channel state and voice context cannot grant host, tool, file, network, send, delegation, production, or execution rights
|
|
173
|
-
- Persona events, roster receipts, gateway history, queue and delivery IDs, lanes, checkpoints, and receipts fail closed under structural or digest manipulation
|
|
174
|
-
- 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
|
|
175
|
-
- Provider and ingress credentials remain environment-only and are removed from the environment passed to the host runner
|
|
176
|
-
|
|
177
|
-
## [0.7.0] - 2026-08-29
|
|
178
|
-
|
|
179
|
-
### Added
|
|
180
|
-
|
|
181
|
-
- 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
|
|
182
|
-
- Explicit relevance markers for `always`, person, project, group, task, and prompt-keyword scopes; unproven fact files remain unopened and omitted
|
|
183
|
-
- Privacy-bounded indexed-memory diagnostics for indexed, relevant, loaded, cache-hit, cache-miss, missing, scope, path, symlink, size, and race outcomes
|
|
184
|
-
- Explicit `doctor --offline-memory-orphans` enumeration that reports counts only and remains outside every live lifecycle path
|
|
185
|
-
- 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
|
|
186
|
-
|
|
187
|
-
### Changed
|
|
188
|
-
|
|
189
|
-
- 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
|
|
190
|
-
- 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
|
|
191
|
-
|
|
192
|
-
### Security
|
|
193
|
-
|
|
194
|
-
- 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
|
|
195
|
-
- Missing targets, path escapes, symlinked paths, non-regular files, oversized sources, transitive links, stale cache records, and corrupt cache state cannot enter the briefing
|
|
196
|
-
- Cache and relevance remain context-only and cannot create identity, rights, delegation, trust, capabilities, network access, or self-starter policy
|
|
197
|
-
|
|
198
|
-
## [0.6.0] - 2026-08-28
|
|
199
|
-
|
|
200
|
-
### Added
|
|
201
|
-
|
|
202
|
-
- 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
|
|
203
|
-
- Explicit portable user-state binding with provenance, conflict detection, rollback, purge, and low-risk learning-only projection across repositories and hosts
|
|
204
|
-
- Installed production-hook RED/GREEN reproduction of the real zero-source failure from an AgentSpine checkout and foreign working directory
|
|
205
|
-
- `source-status`, `source-bind`, `source-rollback`, and `source-purge` CLI workflows plus host-aware Doctor and Audit diagnostics
|
|
206
|
-
|
|
207
|
-
### Changed
|
|
208
|
-
|
|
209
|
-
- Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.6.0`
|
|
210
|
-
- The lifecycle bundle declares `agentspine.source-roots/v1`; upgrade tests reject the cached `0.5.0` bundle
|
|
211
|
-
- Automatic briefing uses separate user, project, and project-memory bindings instead of treating the launch directory as one recursive source root
|
|
212
|
-
|
|
213
|
-
### Security
|
|
214
|
-
|
|
215
|
-
- 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
|
|
216
|
-
- Empty or damaged source resolution is visible and never reported as loaded personal continuity
|
|
217
|
-
- Source and migration bindings remain context-only and cannot create identities, roles, delegation, host trust, execution grants, capabilities, or self-starter rights
|
|
218
|
-
|
|
219
|
-
## [0.5.0] - 2026-08-28
|
|
220
|
-
|
|
221
|
-
### Added
|
|
222
|
-
|
|
223
|
-
- 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
|
|
224
|
-
- 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
|
|
225
|
-
- Installed-bundle acceptance for both fresh installation and upgrade from `0.4.0`
|
|
226
|
-
|
|
227
|
-
### Changed
|
|
228
|
-
|
|
229
|
-
- Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.5.0`
|
|
230
|
-
- The lifecycle bundle declares `agentspine.acceptance/v1`
|
|
231
|
-
- Safe direct style, correction, no-go, project-fact, promise, and blocker recognition covers the Swedish and Spanish acceptance paths
|
|
232
|
-
|
|
233
|
-
### Security
|
|
234
|
-
|
|
235
|
-
- Person and exact-group negative visibility, a denied foreign lease effect, complete person purge, and byte-for-byte source preservation are visible acceptance gates
|
|
236
|
-
- Acceptance state is synthetic, external, temporary, and transcript-free; its receipts create no identity, trust, approval, or authority
|
|
237
|
-
- Fresh-install and upgrade proofs require exactly one MCP server, exactly one hook set, and complete automatic behavior with `mcpCalls: 0`
|
|
238
|
-
|
|
239
|
-
## [0.4.0] - 2026-08-28
|
|
240
|
-
|
|
241
|
-
### Added
|
|
242
|
-
|
|
243
|
-
- Rights-bound self-starter for one exact waiting job with durable checkpoints, expiring leases, retry budget, backoff, crash recovery, audit receipts, cancellation, and purge
|
|
244
|
-
- 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
|
|
245
|
-
- Separate local execution policy binding actor, action set, job, task, target, project, optional group, host, and finite tool capabilities
|
|
246
|
-
- 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
|
|
247
|
-
|
|
248
|
-
### Changed
|
|
249
|
-
|
|
250
|
-
- Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.4.0`
|
|
251
|
-
- The lifecycle bundle declares `agentspine.selfstarter/v1` and resolves active jobs from the native host session
|
|
252
|
-
- Ten-gate audit includes external execution-policy and job-state integrity without reading either as context authority
|
|
253
|
-
|
|
254
|
-
### Security
|
|
255
|
-
|
|
256
|
-
- Every start, resume, and effect rechecks the current exact grant, task assignment, scope, host session, capability, lease, and content-bound workspace fingerprint
|
|
257
|
-
- Memory, Markdown, learning, relationships, attention, tasks, prior approvals, model claims, and MCP responses cannot create or widen execution rights
|
|
258
|
-
- Unknown effects, concurrent leases, revocation, expiry, workspace drift, uncheckpointed crash changes, retry exhaustion, malformed state, and protected-source writes fail closed
|
|
259
|
-
- MCP exposes no execution-policy grant, revoke, job registration, cancellation, or checkpoint administration
|
|
260
|
-
|
|
261
|
-
## [0.3.0] - 2026-08-28
|
|
262
|
-
|
|
263
|
-
### Added
|
|
264
|
-
|
|
265
|
-
- Provider-neutral heartbeat, promise, and blocker lifecycle events written by installed Claude Code and Codex hooks without a model-side MCP call
|
|
266
|
-
- Exact actor, group, project, and task binding with stable event identity, minimal SHA-256 provenance, idempotent receipts, occurrence counts, and retained prior versions
|
|
267
|
-
- Automatic current-task event injection at start, restart, prompt, and compaction boundaries, including stale-heartbeat, open-promise, and open-blocker handling
|
|
268
|
-
- CLI inspection and permanent event deletion plus entity purge across events, receipts, history, and presentation throttles
|
|
269
|
-
- Fresh-install and previous-version upgrade test that proves one MCP server, one hook set, automatic event capture, restart injection, and source-preserving uninstall
|
|
270
|
-
|
|
271
|
-
### Changed
|
|
272
|
-
|
|
273
|
-
- Package, lockfile, Claude Code, Codex, marketplace, and hook-bundle versions advance together to `0.3.0`
|
|
274
|
-
- Focus mode suppresses unrelated cues while permitting an active blocker, due promise, or stale heartbeat for the exact current task
|
|
275
|
-
- Parallel catalog replacement uses collision-free atomic temporary paths across concurrent lifecycle hooks
|
|
276
|
-
|
|
277
|
-
### Security
|
|
278
|
-
|
|
279
|
-
- 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
|
|
280
|
-
- Corrupt attention lifecycle state and unknown task scope fail closed; events remain context-only and can neither send messages nor create authority
|
|
281
|
-
|
|
282
|
-
## [0.2.0] - 2026-08-28
|
|
283
|
-
|
|
284
|
-
### Added
|
|
285
|
-
|
|
286
|
-
- 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
|
|
287
|
-
- 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
|
|
288
|
-
- Complete hook inventory for prompt, tool, compaction, stop, and subagent-stop boundaries plus reproducible fresh-install, stale-cache upgrade, and uninstall preservation checks
|
|
289
|
-
|
|
290
|
-
### Changed
|
|
291
|
-
|
|
292
|
-
- Claude Code explicitly registers the MCP file and loads exactly one hook bundle from its native `hooks/hooks.json` discovery path
|
|
293
|
-
- Package, lockfile, Claude Code, Codex, and marketplace cache versions advance together to `0.2.0`
|
|
294
|
-
- Session hooks now inject usable accepted context instead of counts and a suggestion to call `session_briefing`
|
|
295
|
-
|
|
296
|
-
### Security
|
|
297
|
-
|
|
298
|
-
- 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
|
|
299
|
-
- 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
|
|
300
|
-
|
|
301
|
-
### Added
|
|
302
|
-
|
|
303
|
-
- Executable Claude Code and Codex host-registration check with a real MCP `initialize` handshake
|
|
304
|
-
- 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
|
|
305
|
-
- 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
|
|
306
|
-
- 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
|
|
307
|
-
- Ten-gate `agentspine audit` command and MCP tool
|
|
308
|
-
- Privacy-scoped entities and relationships for people, agents, groups, channels, and projects
|
|
309
|
-
- Append-only history for superseded document annotations, document links, entities, and relationships
|
|
310
|
-
- Broken-link and competing-candidate findings in every catalog
|
|
311
|
-
- Large-tree, manifest-consistency, CLI-MCP, privacy, authority, and shell-guard tests
|
|
312
|
-
- Local sparse-attention state for unanswered questions, promises, check-ins, and meaningful changes
|
|
313
|
-
- Relationship-silence cues based on minimal interaction timestamps rather than conversation capture
|
|
314
|
-
- Attention CLI and MCP surfaces with quiet hours, focus suppression, throttling, disable, resolve, and permanent deletion controls
|
|
315
|
-
- Exact group-audience binding for group-scoped cues and activity timestamps
|
|
316
|
-
- Cross-process locking for concurrent local attention updates
|
|
317
|
-
- Evidence-backed learning candidates kept separate from accepted context
|
|
318
|
-
- Explicit review, low-risk opt-in promotion, supersession, rollback, and permanent learning deletion
|
|
319
|
-
- SHA-256 provenance capture for document evidence and serialized concurrent evidence appends
|
|
320
|
-
- Safe-learning CLI, MCP tools, hook metadata, audit checks, and full lifecycle tests
|
|
321
|
-
- Separate default-deny delegation policy with explicit actor, action, target, provenance, revision, and revocation history
|
|
322
|
-
- Context-only tasks, open threads, and handoffs with assignment snapshots and retained prior versions
|
|
323
|
-
- Coordination CLI, read/check MCP surfaces, privacy-filtered hook metadata, audit integration, and concurrency tests
|
|
324
|
-
- Provider-neutral shared-event contract and optional directory adapter with immutable event files
|
|
325
|
-
- Quarantined, idempotent shared-memory import with a second local review before context
|
|
326
|
-
- Shared supersession, rollback, exact group filtering, CLI administration, read-only MCP context, hooks, and audit coverage
|
|
327
|
-
- Optional Ed25519 manifest and event envelopes with strict public identities and retained verification proof
|
|
328
|
-
- Installation-local signer generation and rotation plus project-local trust, revocation, and audit replay
|
|
329
|
-
- Immutable signed HTTPS snapshot export and dependency-free provider-neutral pull transport
|
|
330
|
-
- DNS pinning, default SSRF blocking, redirect and compression rejection, bounded responses, optional environment-only bearer authentication, and explicit private-network opt-in
|
|
331
|
-
- Provider-neutral `session_briefing` across native sources, relationships, accepted learning, reviewed shared memory, coordination, and attention
|
|
332
|
-
- Current-task priority, local/shared deduplication, exact compact-JSON byte accounting, atomic omission, and group-safe metadata-only source handling
|
|
333
|
-
- Provider-neutral content-addressed HTTPS object publication with create-only preconditions
|
|
334
|
-
- Mandatory signed read-back verification and safe idempotent retry handling for immutable remote objects
|
|
335
|
-
- Tag-authorized GitHub release pipeline with CycloneDX SBOM, SHA-256 checksums, build provenance, and SBOM attestations
|
|
336
|
-
- Deterministic release metadata and package-boundary validator covering both host manifests and forbidden state/source material
|
|
337
|
-
- Pinned-action policy, release-sensitive CODEOWNERS, and isolated least-privilege publication jobs
|
|
338
|
-
|
|
339
|
-
### Changed
|
|
340
|
-
|
|
341
|
-
- 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
|
|
342
|
-
- `agentspine mcp` now starts the stdio server instead of returning immediately
|
|
343
|
-
- Discovery fingerprints files with bounded parallel reads
|
|
344
|
-
- Context resolution reuses catalogs and only follows confident overlay links
|
|
345
|
-
- Protected-source hooks recognize common mutating shell commands and refresh after tool writes
|
|
346
|
-
- Agent annotations cannot promote arbitrary Markdown into a constitution layer
|
|
347
|
-
- CI runs the repository's own ten-gate audit and uses the current maintained GitHub action majors
|
|
348
|
-
- Syntax checks and protected-path comparisons are portable across Linux, macOS, and Windows
|
|
349
|
-
- External-state auditing handles Windows project and state directories on different drives
|
|
350
|
-
- Session hooks expose only due attention counts and kinds; cue text remains behind an explicit privacy-filtered read
|
|
351
|
-
- The ten-gate audit now validates attention authority, privacy, configuration, and external-state placement
|
|
352
|
-
- Accepted learning must carry auditable manual-confirmation proof or an evidence-threshold policy snapshot
|
|
353
|
-
- Cross-entity coordination now requires a matching explicit local policy grant; relationship responsibility remains descriptive only
|
|
354
|
-
- Session hooks expose only counts and kinds of locally reviewed shared memory; pending claims remain hidden
|
|
355
|
-
- Session hooks point to one explicit scoped briefing without automatically injecting its content
|
|
356
|
-
|
|
357
|
-
### Security
|
|
358
|
-
|
|
359
|
-
- Relationship attributes recursively reject permissions, rights, authorization, credentials, secrets, tokens, and API keys
|
|
360
|
-
- Every relationship and history record is explicitly context-only
|
|
361
|
-
- Every attention cue and activity is context-only; corrupt attention policy fails closed
|
|
362
|
-
- Secret-shaped observations and authority assertions are rejected before learning storage
|
|
363
|
-
- Delegation policy mutation is excluded from MCP, and malformed policy or coordination state fails closed without overwrite
|
|
364
|
-
- Task coordination grants no host, tool, file, network, deployment, production, billing, or spending authority
|
|
365
|
-
- Private learning, source content, evidence text, tasks, policy, and credentials are excluded from shared events
|
|
366
|
-
- Adapter administration is excluded from MCP; malformed, oversized, symlinked, collided, or tampered exchange state fails closed
|
|
367
|
-
- Private signing keys remain outside projects and agent surfaces; unknown, revoked, swapped, or mismatched signers fail closed
|
|
368
|
-
- HTTPS snapshot transport validates TLS endpoints, every DNS answer, bundle integrity, strict schema, and all nested signatures before quarantine mutation
|
|
369
|
-
- Group briefings reject private reads, foreign membership, and unscoped source content; briefing output remains context-only and read-only
|
|
370
|
-
- HTTPS publishing is CLI-only, owner-confirmed, DNS-pinned, SSRF-restricted, overwrite-free, size-bounded, and credential-safe
|
|
371
|
-
- Release workflows accept tags only, verify containment in `main`, use short-lived OIDC for attestations, and expose no npm or AgentSpine secrets
|
|
372
|
-
|
|
373
|
-
### Planned
|
|
374
|
-
|
|
375
|
-
- Optional hosted database transports implementing the signed-envelope and shared-event contracts
|
|
376
|
-
|
|
377
|
-
## [0.1.0] - 2026-08-27
|
|
378
|
-
|
|
379
|
-
### Added
|
|
380
|
-
|
|
381
|
-
- Non-destructive Markdown discovery and SHA-256 provenance catalog
|
|
382
|
-
- Native Codex and Claude Code context resolution
|
|
383
|
-
- Exact ranged reads for sources outside the context budget
|
|
384
|
-
- Agent-authored overlay annotations and document graph links
|
|
385
|
-
- CLI, stdio MCP server, and lifecycle hooks
|
|
386
|
-
- Protected-source write guard for participating host tools
|
|
387
|
-
- Dual Claude Code and Codex plugin manifests
|
|
388
|
-
- Cross-platform preservation, hook, graph, and MCP tests
|
|
389
|
-
|
|
390
|
-
[Unreleased]: https://github.com/Maykbiletti/AgentSpine/compare/v0.11.4...HEAD
|
|
391
|
-
[0.11.4]: https://github.com/Maykbiletti/AgentSpine/compare/v0.11.3...v0.11.4
|
|
392
|
-
[0.11.3]: https://github.com/Maykbiletti/AgentSpine/compare/v0.11.2...v0.11.3
|
|
393
|
-
[0.11.2]: https://github.com/Maykbiletti/AgentSpine/compare/v0.11.1...v0.11.2
|
|
394
|
-
[0.11.1]: https://github.com/Maykbiletti/AgentSpine/compare/v0.11.0...v0.11.1
|
|
395
|
-
[0.11.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.10.1...v0.11.0
|
|
396
|
-
[0.10.1]: https://github.com/Maykbiletti/AgentSpine/compare/v0.10.0...v0.10.1
|
|
397
|
-
[0.10.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.9.0...v0.10.0
|
|
398
|
-
[0.9.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.8.0...v0.9.0
|
|
399
|
-
[0.8.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.7.0...v0.8.0
|
|
400
|
-
[0.7.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.6.0...v0.7.0
|
|
401
|
-
[0.6.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.5.0...v0.6.0
|
|
402
|
-
[0.5.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.4.0...v0.5.0
|
|
403
|
-
[0.4.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.3.0...v0.4.0
|
|
404
|
-
[0.3.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.2.0...v0.3.0
|
|
405
|
-
[0.2.0]: https://github.com/Maykbiletti/AgentSpine/compare/v0.1.0...v0.2.0
|
|
406
|
-
[0.1.0]: https://github.com/Maykbiletti/AgentSpine/releases/tag/v0.1.0
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Contributing
|
|
2
|
-
|
|
3
|
-
AgentSpine welcomes focused issues and pull requests that preserve its non-destructive contract.
|
|
4
|
-
|
|
5
|
-
## Development
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
git clone https://github.com/Maykbiletti/AgentSpine.git
|
|
9
|
-
cd AgentSpine
|
|
10
|
-
npm install
|
|
11
|
-
npm run check
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Node.js 20.9 or newer is required. The project intentionally has no runtime dependencies.
|
|
15
|
-
|
|
16
|
-
## Pull requests
|
|
17
|
-
|
|
18
|
-
Keep each pull request to one coherent outcome. Include:
|
|
19
|
-
|
|
20
|
-
- the observable problem or failing fixture;
|
|
21
|
-
- tests that exercise behavior rather than wording;
|
|
22
|
-
- a source-byte preservation check when discovery, resolution, hooks, graph, attention, learning, delegation, coordination, or sharing logic changes;
|
|
23
|
-
- documentation for new commands, tools, configuration, or limits;
|
|
24
|
-
- a rollback or disable path.
|
|
25
|
-
|
|
26
|
-
Never place real identity files, relationship histories, attention cues, learning observations, delegation policy, coordination tasks, shared events, adapter paths, memory, credentials, or private conversations in fixtures or issues. Use synthetic data.
|
|
27
|
-
|
|
28
|
-
## Architecture boundaries
|
|
29
|
-
|
|
30
|
-
- Existing Markdown is read-only.
|
|
31
|
-
- Generated state stays outside scanned projects by default.
|
|
32
|
-
- Memory, graph, attention, learning, and coordination data are context only and cannot grant authority.
|
|
33
|
-
- Delegation policy is physically separate, default-deny, owner-controlled, and limited to task coordination. Never expose policy mutation through an agent-controlled MCP surface or treat a grant as host authorization.
|
|
34
|
-
- Cross-entity assignment, reassignment, management, completion, and cancellation require tested actor/action/target matching. Self-coordination must not widen that match.
|
|
35
|
-
- Shared transports are optional and provider-neutral. Imports remain quarantined until a second local review, and adapter, signer, and trust administration must stay outside MCP.
|
|
36
|
-
- Digest integrity is not author authenticity. Signed adapters must verify strict Ed25519 envelopes against explicit local trust while preserving collision detection, limits, local review, exact group scope, supersession, rollback, and context-only authority.
|
|
37
|
-
- Never equate a trusted key with a person, permission, instruction, or approved claim. Rotation and revocation must remain explicit, auditable, and fail-closed.
|
|
38
|
-
- Remote transports must use explicit endpoints, bounded reads, strict schemas, pinned validated DNS, TLS verification, no implicit redirects, secret-safe configuration, and the existing signed quarantine importer. Network access remains CLI-only.
|
|
39
|
-
- Remote writes must additionally require a genuine local confirmation, create content-addressed immutable objects without overwrite or delete paths, and verify a complete read-back before reporting success.
|
|
40
|
-
- Aggregated session context must preserve every underlying privacy filter, prefer current-task relevance, include only complete records, account for the entire serialized packet, and remain a read-only context surface.
|
|
41
|
-
- Attention never sends messages or invokes tools; focus, privacy, quiet, throttle, disable, and deletion controls remain enforceable.
|
|
42
|
-
- Learning candidates never become accepted context implicitly; confirmation proof, evidence thresholds, privacy, rollback, and the authority boundary remain testable.
|
|
43
|
-
- Host-native precedence remains visible.
|
|
44
|
-
- A learned classification augments discovery hints; it never rewrites a source.
|
|
45
|
-
- Shared-memory backends are optional adapters.
|
|
46
|
-
|
|
47
|
-
Run both validators when changing package surfaces:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
python3 /path/to/plugin-creator/scripts/validate_plugin.py .
|
|
51
|
-
python3 /path/to/skill-creator/scripts/quick_validate.py skills/agent-spine
|
|
52
|
-
```
|