agentwheel 0.20.8 → 0.20.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -396,6 +396,37 @@ current directory, then fallback to the current directory. `--all-detected` is a
396
396
  for applying to every runtime marker found in the current directory or `--target-root`; `--all` remains
397
397
  reserved for configured agents.
398
398
 
399
+ ### Target state identity
400
+
401
+ Graph-backed installs keep two target fingerprints with different purposes:
402
+
403
+ - The full target fingerprint records rendering inputs in the graph lock. Adapter code, adapter
404
+ configuration, and adapter module changes therefore remain visible and can produce a real update.
405
+ - The stable state fingerprint selects the graph lock, install manifest, source lock, and apply
406
+ journal. It is derived from the contribution scope and effective destination, including the
407
+ normalized install root and a structured local or SSH endpoint. Adapter implementation evolution
408
+ that resolves to the same destination reuses the installed state instead of orphaning it.
409
+
410
+ Changing an artifact destination within the same effective install root is handled as a planned
411
+ transition from the old path to the new path. Changing the effective install root, local/SSH kind, or
412
+ SSH endpoint selects a different target state. SSH state identity requires an explicit host; a display
413
+ label is not endpoint identity.
414
+
415
+ State created by an older Agentwheel release may be named with the full target fingerprint. For a
416
+ local target, Agentwheel adopts that state only when one canonical graph lock, its v2 install
417
+ manifest, the contribution owner, target details, and graph-lock digest all agree. A supported
418
+ install or uninstall carries an explicit migration and revalidates the old and new state under the
419
+ shared apply lock before replacing the legacy paths. An explicit `stateKey` remains the manifest and
420
+ source-lock key while its legacy graph-lock path moves. Ownership handoff and retirement require a
421
+ full install to migrate first. Status, dependency inspection, uninstall, and journal commands use
422
+ the same discovery rules.
423
+
424
+ Agentwheel refuses ambiguous candidates, a graph lock without its correlated manifest, or
425
+ disagreeing stable and legacy state, and preserves those files for manual reconciliation. A pending
426
+ apply journal that embeds and exactly correlates the missing manifest and graph state remains
427
+ discoverable for recovery. Legacy SSH state is also preserved and refused because the old records do
428
+ not prove which endpoint owned it.
429
+
399
430
  ## Core Ideas
400
431
 
401
432
  **Three places, one direction:**
@@ -5,8 +5,8 @@ import {
5
5
  commitManifestMetadataJournal,
6
6
  recoverPendingApply,
7
7
  uninstall
8
- } from "./chunk-4AM3LNUQ.js";
9
- import "./chunk-JXX6EDIP.js";
8
+ } from "./chunk-P2JK34W7.js";
9
+ import "./chunk-J7DKPDS7.js";
10
10
  import "./chunk-7VPI5J5Y.js";
11
11
  export {
12
12
  applyCombinedInstallPlan,