memhouse 0.20.0 → 0.20.2

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 (37) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/bin/memhouse.js +209 -30
  3. package/docs/guides/install.md +3 -0
  4. package/docs/guides/invite.md +7 -0
  5. package/docs/guides/search-and-resume.md +30 -0
  6. package/docs/guides/share.md +5 -0
  7. package/docs/releases/README.md +2 -0
  8. package/docs/releases/v0.20.1.md +114 -0
  9. package/docs/releases/v0.20.2.md +134 -0
  10. package/memhouse/codex-plugin.js +194 -0
  11. package/memhouse/delivery/INVITATION.md.tpl +1 -1
  12. package/memhouse/delivery/codex/AGENTS-BLOCK.md +11 -0
  13. package/memhouse/delivery/codex/SKILL.md +50 -0
  14. package/memhouse/delivery/plugin/reference/HOUSE.md +7 -9
  15. package/memhouse/delivery/plugin/skills/access/SKILL.md +1 -1
  16. package/memhouse/flags.js +1 -1
  17. package/memhouse/help.js +37 -0
  18. package/memhouse/house/q-cli.js +14 -1
  19. package/memhouse/house/records-to-profile.js +14 -3
  20. package/memhouse/house/schema-choice.js +15 -6
  21. package/memhouse/house/schema-profile-views.sql.tpl +53 -0
  22. package/memhouse/house/schema-profile.js +46 -6
  23. package/memhouse/house/schema-profile.sql.tpl +8 -1
  24. package/memhouse/invitation.js +8 -2
  25. package/memhouse/plugin-copies.js +13 -1
  26. package/memhouse/release-hint.js +24 -0
  27. package/memhouse/share.js +36 -4
  28. package/memhouse/shipper/capture.js +39 -9
  29. package/memhouse/shipper/log-adapter.js +18 -7
  30. package/memhouse/shipper/normalise-run.js +8 -2
  31. package/memhouse/version-notice.js +66 -0
  32. package/package.json +3 -3
  33. package/public/assets/{index-CQSJ3nhV.js → index-CcNnhfM3.js} +1 -1
  34. package/public/index.html +1 -1
  35. package/ui/package-lock.json +264 -318
  36. package/ui/package.json +5 -4
  37. package/ui/src/lib/dashboard-token.js +7 -2
package/ui/package.json CHANGED
@@ -23,17 +23,18 @@
23
23
  "tailwindcss": "^4.2.1"
24
24
  },
25
25
  "devDependencies": {
26
- "@eslint/js": "^9.39.1",
26
+ "@eslint/js": "^10.0.1",
27
27
  "@types/react": "^19.2.7",
28
28
  "@types/react-dom": "^19.2.3",
29
29
  "@vitejs/plugin-react": "^5.1.1",
30
- "eslint": "^9.39.1",
31
- "eslint-plugin-react-hooks": "^7.0.1",
30
+ "eslint": "^10.14.0",
31
+ "eslint-plugin-react-hooks": "^7.1.1",
32
32
  "eslint-plugin-react-refresh": "^0.4.24",
33
33
  "globals": "^16.5.0",
34
34
  "vite": "^8.0.0-beta.13"
35
35
  },
36
36
  "overrides": {
37
- "vite": "^8.0.0-beta.13"
37
+ "vite": "^8.0.0-beta.13",
38
+ "minimatch": "^11.0.1"
38
39
  }
39
40
  }
@@ -3,19 +3,24 @@
3
3
  // puts in no Referer. On load it moves to sessionStorage, which is scoped to this exact origin
4
4
  // (port included) and this tab, and the address bar loses it. Every /api request then carries it
5
5
  // as `Authorization: Bearer`. No cookie is set: the server accepts none.
6
+ //
7
+ // sessionStorage can refuse (a browser setting, a sandboxed frame). The token is then kept in
8
+ // memory for this page load only: the page works until it is reloaded.
6
9
 
7
10
  const KEY = 'memhouse_dashboard_token';
11
+ let inMemory = null;
8
12
 
9
13
  /** Take the token from the URL's fragment, keep it for this tab, and remove it from the URL. */
10
14
  export function adoptTokenFromHash() {
11
15
  const m = /(?:^#|&)token=([0-9a-f]{64})(?:&|$)/.exec(window.location.hash || '');
12
16
  if (!m) return;
13
- try { window.sessionStorage.setItem(KEY, m[1]); } catch { /* storage refused: this load still works below */ }
17
+ inMemory = m[1];
18
+ try { window.sessionStorage.setItem(KEY, m[1]); } catch { /* refused: kept in memory for this load */ }
14
19
  window.history.replaceState(null, '', window.location.pathname + window.location.search);
15
20
  }
16
21
 
17
22
  export function dashboardToken() {
18
- try { return window.sessionStorage.getItem(KEY); } catch { return null; }
23
+ try { return window.sessionStorage.getItem(KEY) || inMemory; } catch { return inMemory; }
19
24
  }
20
25
 
21
26
  /** Every same-origin /api request gets the Bearer header. Installed once, before the app renders. */