|
UnENVerse 0.42.6
Local-first desktop secrets manager — TypeScript frontend
|
import st;Functions | |
| function export | memberRef (e:VaultEntry) |
The identity fields entry_ck needs, and nothing else. | |
| function async | renderPoolsPane () |
| A label that distinguishes members of one pool. | |
Variables | |
| const | invoke = invokeTauri |
| const | DEFAULT_COOLDOWN_MIN = 15 |
Default cooldown offered by the button, matching the CLI's --for default. | |
| uses | __pad0__ |
| cooling | __pad1__ |
| cooling_until | __pad2__ |
| last_used_at | __pad3__ |
| null | |
| try | |
| const | cooling = rows.filter((r) => r.cooling).length |
| return { ready: rows.length - cooling, cooling } | |
| catch | |
| function export memberRef | ( | e:VaultEntry | ) |
The identity fields entry_ck needs, and nothing else.
Deliberately not the whole entry: pool_state and pool_set_cooldown have no use for a secret, so none crosses the IPC boundary. The key itself is computed in Rust by the same entry_ck version history and audit attribution use — recomputing it here would be a second identity scheme that agrees until it does not.
| function async renderPoolsPane | ( | ) |
A label that distinguishes members of one pool.
Mirrors Member::label. Pool name → its entries, in vault order. remote_base for the Rust commands, so a remote session does not read the local vault's cursors.
The same mistake the LAN gate exists to prevent: acting on this machine's vault while the screen shows someone else's. Where the state file lives, cached after the first successful lookup. Ready/cooling counts for one pool, for the card grid's collapsed pool card (Phase 24.2). null outside Tauri or on any IPC failure — the caller shows the plain member count instead of a stale or fabricated split.
| const invoke = invokeTauri |
| const DEFAULT_COOLDOWN_MIN = 15 |
Default cooldown offered by the button, matching the CLI's --for default.
| uses __pad0__ |
| cooling __pad1__ |
| cooling_until __pad2__ |
| last_used_at __pad3__ |
| null |
| try |
| const cooling = rows.filter((r) => r.cooling).length |
| catch |