@ai-matrx/vault 0.1.37 → 0.1.38

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,9 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.38
4
+
5
+ - **Website vault walk fixes** (2026-10-23): a row with an authenticator copies its one-time code from the hover quick actions ("One-time code copied"); "Add authenticator" shows the setup-key box first and starts the camera by itself only when the device has one, with the preview and any camera failure UNDER the box as a small note (no window over it; `hasCameraDevice()` in `authenticator/qr.ts`, `QrScanInline` replaces `QrScanPanel`); the first-code window closes when the person moves to another view, item, edit or panel (`useShownUntilMove`); the Vault switcher, Move to and Copy to list organizations recently used and non-empty first, then by name (`orderOrganizations`), tell same-named ones apart by short id (`organizationHints`) and show a search from `vault.organization_search_at` (new knob, default 8, read through `host.knobs`; `host.organizationSearchAt` overrides); after "Copy made in …" the panel offers Open copy (`ItemPanelProps.onOpenItem`); the load reads every organization vault in ONE request (`GET /vault/organization-items`) instead of one per organization, own items still first. Proof: `src/review-0-1-37.test.tsx`. Consumer action: needs `@ai-matrx/api` with `account.organizationItems` and `@ai-matrx/design-system` with Select `hint`/`searchAt` (the release train publishes all three); nothing else.
6
+
3
7
  ## 0.1.37
4
8
 
5
- UNVERIFIED: this release has no Unreleased entry and the source comparison could not be made (the caller supplied no source comparison). Whether source changed is unknown; consumer action is unknown.
6
- Check the package's gitHead on npm against this version's gitHead: `git diff <previous gitHead> <this gitHead> -- apps/shared/vault/src`.
9
+ SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
10
+ so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
11
+ Diff: `git diff de2b958734 f00b99c3df -- apps/shared/vault/src`
12
+
13
+ Changed shipped source files (12):
14
+ - `apps/shared/vault/src/ItemList.tsx`
15
+ - `apps/shared/vault/src/Sidebar.tsx`
16
+ - `apps/shared/vault/src/VaultApp.tsx`
17
+ - `apps/shared/vault/src/area-props.ts`
18
+ - `apps/shared/vault/src/authenticator/Setup.tsx`
19
+ - `apps/shared/vault/src/authenticator/qr.ts`
20
+ - `apps/shared/vault/src/knobs.ts`
21
+ - `apps/shared/vault/src/organizations.ts`
22
+ - `apps/shared/vault/src/port.ts`
23
+ - `apps/shared/vault/src/sharing/MovePanel.tsx`
24
+ - `apps/shared/vault/src/sharing/logic.ts`
25
+ - `apps/shared/vault/src/shown-until-move.ts`
7
26
 
8
27
  ## 0.1.36
9
28
 
package/dist/index.cjs CHANGED
@@ -10072,6 +10072,8 @@ function createApiVaultPort(hostApi, options = {}) {
10072
10072
  const sharedP = retrying(() => account9.sharedWithMe(api));
10073
10073
  const quiet = (p) => void p.catch(() => void 0);
10074
10074
  [catalogP, authP, userP, sharedP].forEach(quiet);
10075
+ const orgItemsP = retrying(() => account9.organizationItems(api));
10076
+ quiet(orgItemsP);
10075
10077
  const raw = {
10076
10078
  orgLists: [],
10077
10079
  orgsKnown: options.organizations !== void 0,
@@ -10119,6 +10121,26 @@ function createApiVaultPort(hostApi, options = {}) {
10119
10121
  raw.orgLists = orgs.map(() => void 0);
10120
10122
  raw.orgsKnown = true;
10121
10123
  progress();
10124
+ const one = await orgItemsP.then(
10125
+ (r) => r,
10126
+ (e) => {
10127
+ if (e?.status === 404) return null;
10128
+ return "failed";
10129
+ }
10130
+ );
10131
+ if (one) {
10132
+ const byOrg = one === "failed" ? /* @__PURE__ */ new Map() : new Map(one.views.map((v) => [v.organization_id, v.items]));
10133
+ const failed = one === "failed" ? new Set(orgs.map((o) => o.id)) : new Set(one.unavailable);
10134
+ const settled = orgs.map((o, i) => {
10135
+ if (failed.has(o.id)) return Promise.reject(new Error(`${o.name} is unavailable`));
10136
+ const items = byOrg.get(o.id) ?? [];
10137
+ raw.orgLists[i] = { items, count: items.length };
10138
+ return Promise.resolve(raw.orgLists[i]);
10139
+ });
10140
+ settled.forEach(quiet);
10141
+ progress();
10142
+ return settled;
10143
+ }
10122
10144
  return orgs.map((o, i) => {
10123
10145
  const p = retrying(() => account9.listItems(api, { query: { principal_type: "organization", organization_id: o.id } }, { organizationId: o.id }));
10124
10146
  const arrived = p.then((l) => {