Repository navigation
ShellGuard v0.0.2.4
π¦ ShellGuard β Release v0.0.2.4
"The Reef Polish & Unified Ergonomics Molt" β Phase 22: Unified Zero-Knowledge Search Engine, Control Surface Consolidation & Ergonomics Verification
ClawStack Studios Β©β’ Β· 2026-09-23 Β· AGPL-3.0
The reef achieves unprecedented clarity and navigational velocity. ShellGuard v0.0.2.4 (Build 26) delivers a Robust Unified Client-Side Search Engine, prunes redundant global search bars across the header and sidebar, preserves high-speed local pod tree filtering, and re-verifies Eye-beside-Copy unmasking ergonomics across every secret field.
βββββββββββ ββββββββββββββ βββ βββββββ βββ βββ ββββββ βββββββ βββ βββ
βββββββββββ ββββββββββββββ βββ βββββββ βββ βββ ββββββββ ββββββββ βββ βββ
ββββββββββββββββββββββ βββ βββ βββ ββββ βββ βββ ββββββββ ββββββββ ββββββββ
ββββββββββββββββββββββ βββ βββ βββ βββ βββ βββ ββββββββ ββββββββ ββββββββ
βββββββββββ βββββββββββββββββββββββββββ βββββββββββββββββ βββ βββ βββ βββ βββ
βββββββββββ βββββββββββββββββββββββββββ βββββββ βββββββ βββ βββ βββ βββ βββ
~ **ClawStack StudiosΒ©β’** ~
π The Core Summary
Welcome to v0.0.2.4 (Build 26) of ShellGuard! This release delivers a streamlined, ergonomic control experience by eliminating UI clutter and powering the vault with a pure zero-knowledge search engine. Vault items are matched instantly in client memory across titles, usernames, primary and secondary URLs, decrypted note contents, custom field names and values, attachment filenames, and tagsβwith zero network leakage and automatic memory purge on lock.
π Key Themes & Highlights
π 1. Robust Unified Client-Side Search Engine (src/lib/vaultSearch.ts, Task 43)
- Deep In-Memory Search Corpus: Queries across the pre-decrypted in-memory corpus (
vaultItems) without triggering redundant decryption cycles or disk reads. - Multi-Field Matching:
- Item title (e.g., website, service, or server name)
- Username or identity handle
- Primary URL and secondary login URIs
- Pearl notes text
- Decrypted Secure Note markdown content (
secret) - Custom Fields: Matches both field names and field values across text, hidden, checkbox, and linked types
- Binary attachment filenames (
file_name) - Assigned bioluminescent tags
- Zero-Knowledge Invariant: Zero network requests. The search query never touches the wire, query parameters (
?q=), or server logs. The server cannot search what it cannot decrypt. - Lock Purge: When
isLockedflips totrueor upon logout, the activesearchQuerystate and in-memory filtered corpus are purged immediately.
π§Ή 2. Search Surface Consolidation & Clutter Elimination (Task 44)
- Header Simplification: Removed the top-right search input, search icon, and floating search dropdown from
Header.tsx(-64 lines). The header is restored to a clean utility cluster containing only the+Add Menu, Account Switcher, and Theme Toggle. - Sidebar Streamlining: Removed the redundant top search bar and duplicate dropdown under "Dashboard" in
Sidebar.tsx(-214 lines). - Pruned Dead Plumbing: Cleaned up 71 lines of orphaned search state, refs, keyboard shortcuts (
/andβK), and click-outside listeners insrc/App.tsx.
π² 3. Ergonomic Pod-Scoped Search Preserved
- Dedicated Pod Tree Filtering (
SidebarFolderTree.tsx): In accordance with ergonomic feedback, the dedicated "Search Pods..." input above the folder hierarchy was intentionally preserved. Users with extensive multi-tier pod structures can rapidly filter their folder tree without cluttering the global item feed.
ποΈ 4. Eye-beside-Copy Ergonomics Re-Verified
- Masked Field Consistency: Re-verified across all masked rows (passwords, SSH private keys, and hidden custom fields) that the Eye/EyeOff unmask toggle sits strictly immediately to the left of the Copy button in the action cluster.
- Mask Invariant: Masked fields maintain full
β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’β’masking without leaking character counts or exposing sensitive text on row hover.
π§ͺ 5. Comprehensive Unit Testing
- 10 Dedicated Test Cases (
tests/unit/vaultSearch.test.ts): Covers empty/whitespace queries, title matches, username matches, multi-URI array parsing, decrypted note content, custom fields, attachment filenames, tags (JSON array and comma-separated), and resilient malformed JSON handling.
π 6. Dedicated VitePress Search Documentation Portal
- Unified Vault & Pod Search Guide (
docs/vault-features/search.md): Comprehensive documentation detailing client-side zero-knowledge search mechanics (vaultSearch.ts), deep multi-field matching, in-memory lifecycle with lock purge, and the separation of concerns between Item List Pane search and Scoped Pod Tree filtering (SidebarFolderTree.tsx). - Portal Integration: Fully integrated into
docs/.vitepress/config.ts,docs/vault-features/index.md,docs/vault-features/the-grotto.md, anddocs/reference/design-system.md.
ποΈ Architectural Topology Map
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Client Layer (React 19 + Vite 6) β
β βββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββ β
β β SidebarFolderTree β β ItemListPane β β
β β (Pods, Tags, Pod Search)β β (Unified Master Search Bar) β β
β βββββββββββββ¬ββββββββββββββ ββββββββββββββββββββ¬ββββββββββββββββββββ β
β β β β
β βΌ βΌ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β vaultSearch Engine (RAM) β β
β β (Title, User, URIs, Decrypted Notes, Custom Fields, Tags) β β
β β Zero-Knowledge β’ Purged on Lock β β
β βββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββ β
β β ItemDetailPane β β
β β (Eye-beside-Copy Unmask Cluster, Decrypted Inline Content) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π¦ Verification Receipts
- Unit Test Oracle: 27 test suites, 323 passing tests (1 skipped).
- TypeScript Strict Check:
tsc --noEmitpassed with 0 errors. - Production Build: Built cleanly via Vite in 54.75s.
- Documentation Portal: Built cleanly via VitePress in 94.89s.
- Live Server Handshake: Ports
:6464(Web Shell) and:6565(API Server) verified live and operational.