@ai-matrx/vault 0.1.52 → 0.1.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,21 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.52
3
+ ## 0.1.54
4
4
 
5
5
  UNVERIFIED: this release has no Unreleased entry and the package-input comparison could not be made (the caller supplied no source comparison). Whether package inputs changed is unknown; consumer action is unknown.
6
6
  Check the package's gitHead on npm against this version's gitHead: `git diff <previous gitHead> <this gitHead> -- apps/shared/vault`.
7
7
 
8
+ ## 0.1.53
9
+
10
+ - Added the shared Password health view, durable scan recovery, explicit unchecked breach lookup, current-result accounting and existing editor remediation. Consumer action: adopt the compatible generated API with health stream types and runtime follower before this Vault package, and verify server support. Breach checks require explicit selection; unknown coverage remains visible. Installed and native acceptance remain separate.
11
+ - Web workspace lifecycle now retires account/context caches and pending findings while same-user token refresh preserves in-place confirmation. Durable runtime notes restore progress counts. Consumer action: retire the complete host workspace on actor/context changes without keying it to ordinary bearer refresh.
12
+
13
+ ## 0.1.52
14
+
15
+ - Added Password health with confirmed scans, address-backed recovery, count-only progress, current-result validation and links into the existing item editor. Breach lookup starts unchecked and requires explicit selection. The optional `VaultPort.health` supplies scan, resume, read, identify and follow operations; older custom ports show the view as unavailable.
16
+
17
+ Consumer action: upgrade `@ai-matrx/api` to the current latest before adopting this package, including the account health endpoints, health stream types and runtime-operation follower, and verify that the server supports them. API-backed hosts receive the health port automatically. Custom hosts enabling it must supply the optional port and preserve `healthRequestId` and `healthExecutionId` through their location round trip. Keep the existing confirmation flow and explicit breach selection.
18
+
8
19
  ## 0.1.51
9
20
 
10
21
  - Recorded two-factor methods now show Not recorded for unsupported or duplicate metadata, in both draft and saved-item views. Existing `sms` and `push_or_other` values keep their meaning. Consumer action: none; no new stored value or choice is introduced.
@@ -348,6 +359,8 @@ Changed shipped source files (8):
348
359
  ## 0.1.7
349
360
  ### Unreleased
350
361
 
362
+ - Saved health recovery shows Checking status while its read is pending. A missing execution or failed initial recovery read settles as Unavailable and keeps Retry available. Consumer action: none; the existing request/execution handle round trip is unchanged.
363
+
351
364
  - Host-held lock: `host.lock` (`VaultLock`: `locked`, `subscribe`, `unlock`, optional `lock` and
352
365
  `unlockLabel`). While locked the vault shows only "Vault locked" with Unlock, and every port call
353
366
  (areas included) is refused at call time (`guardPort`, `VaultLockedError`). "Lock" joins the
package/dist/index.cjs CHANGED
@@ -682,7 +682,7 @@ function PasswordHealthView(props) {
682
682
  const latest = (0, import_react4.useRef)(props);
683
683
  latest.current = props;
684
684
  const [result, setResult] = (0, import_react4.useState)(null);
685
- const [status, setStatus] = (0, import_react4.useState)("No report");
685
+ const [status, setStatus] = (0, import_react4.useState)(requestId || executionId ? "Checking status" : "No report");
686
686
  const [error, setError] = (0, import_react4.useState)(null);
687
687
  const [progress, setProgress] = (0, import_react4.useState)(null);
688
688
  const [busy, setBusy] = (0, import_react4.useState)(false);
@@ -734,6 +734,7 @@ function PasswordHealthView(props) {
734
734
  if (!owns(controller)) return;
735
735
  id = known.operations[0]?.execution_id;
736
736
  if (!id) {
737
+ setStatus("Unavailable");
737
738
  setError("Status unavailable");
738
739
  return;
739
740
  }
@@ -770,10 +771,12 @@ function PasswordHealthView(props) {
770
771
  const own = ownedAddress.current;
771
772
  if (own && own.request === requestId && own.execution === executionId && own.items === items && own.retry === retry && active.current && !active.current.signal.aborted) return;
772
773
  const controller = fresh();
774
+ setStatus(requestId || executionId ? "Checking status" : "No report");
773
775
  void recover(requestId, executionId, controller).catch((e) => {
774
776
  if (owns(controller)) {
775
777
  setResult(null);
776
778
  setError(problem(e));
779
+ setStatus((value) => value === "Checking status" ? "Unavailable" : value);
777
780
  }
778
781
  }).finally(() => {
779
782
  if (owns(controller)) setBusy(false);
@@ -861,6 +864,7 @@ function PasswordHealthView(props) {
861
864
  }
862
865
  setResult(null);
863
866
  setError(problem(e));
867
+ setStatus((value) => value === "Checking status" ? "Unavailable" : value);
864
868
  } finally {
865
869
  starting.current = false;
866
870
  if (owns(controller)) {
@@ -9683,7 +9687,7 @@ var import_account = require("@ai-matrx/api/account");
9683
9687
  var import_architecture = require("@ai-matrx/api/architecture");
9684
9688
  function createHealthPort(api) {
9685
9689
  return {
9686
- start: (requestId, signal, body) => (0, import_account.startPasswordHealthScan)(api, { body }, { requestId, signal, totalTimeoutMs: null }),
9690
+ start: (requestId, signal, options) => (0, import_account.startPasswordHealthScan)(api, { body: options.check_breaches ? { check_breaches: true } : {} }, { requestId, signal, totalTimeoutMs: null }),
9687
9691
  resume: (executionId, requestId, signal) => (0, import_account.resumePasswordHealthScan)(api, { path: { execution_id: executionId } }, { requestId, signal, totalTimeoutMs: null }),
9688
9692
  read: (executionId, signal) => (0, import_account.getPasswordHealthScan)(api, { path: { execution_id: executionId } }, { signal }),
9689
9693
  identify: (requestId, signal) => (0, import_architecture.operationStatus)(api, { path: { request_id: requestId } }, { signal }),