- Implement command palette (⌘K) using cmdk and Radix Dialog with a global action registry.
- Add a keyboard shortcut system with a capture-phase hotkey manager and scope stack.
- Integrate seed navigation actions for Home, Chat, Intelligence, Skills, and Settings.
- Improve chat UX with a `useStickToBottom` hook for auto-scroll and fixed hydration errors.
- Refactor command UI to display shortcuts inline and remove the redundant help overlay.
- Fix Vite HMR connection issues within the Tauri/CEF environment.
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
- Add ENVIRONMENT-CONTRACT-ROADMAP.md covering post-v1 trace persistence and operator feedback.
- Add HYPERNYM-COGNEE-SPIKE.md for trace compression and graph-based candidate-skill discovery.
- Add CREDENTIAL-PROXY-SPIKE.md detailing native Rust credential proxying and token handling.
- Update planning docs to align with current SKILL.md standards and deterministic matching.
- Fix internal module import for whitespace collapsing in threads/ops.
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
- Replace `execSync` with `execFileSync` in npm install script to prevent command injection.
- Pass PowerShell paths via environment variables to avoid shell metacharacter interpolation.
- Add `-NoProfile` and `-NonInteractive` flags to PowerShell extraction for cleaner installs.
- Upgrade `makeAccountId` to prioritize `crypto.getRandomValues` over `Math.random` for suffixes.
- Update internal thread title logic to import `collapse_whitespace` from the correct location.
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
- Add E2E smoke test for the /channels page to verify Telegram and Discord tile rendering.
- Validate that Telegram and Discord panels correctly display using fallback definitions.
- Ensure "Connect" affordances are accessible for both Telegram and Discord integrations.
- Apply Prettier formatting to the new channels smoke spec file.
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Two cleanups surfaced during a codebase review:
## Changes
- **Drop dead integration-token crypto** — `integrationTokensCrypto.ts` + helpers; no remaining consumers
- **Trim stale `.claude/rules`** — rules that contradict current CLAUDE.md
- **Windows doctor disk probe** — detect low-disk conditions on Windows
- **Refresh stale binary-size claim** in docs
Net: +82 / −3,596 (mostly dead-code removal).
## Test plan
- [ ] `yarn typecheck` green — no dangling imports to crypto module
- [ ] `cargo check` green
- [ ] Doctor runs on Windows host
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
- Add Skill::read_body to fetch SKILL.md instruction text during agent inference.
- Implement a skill matcher supporting explicit @ mentions and automatic keyword/tag heuristics.
- Create a rendering system for skill injection with an 8KB budget and truncation handling.
- Wire skill matching and instruction body injection into the Agent::turn execution path.
- Include 24 unit tests for skill matching, ranking logic, and size-cap enforcement.
Closes#781
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
## Summary
- Introduce an `EnvLookup` seam in `src/openhuman/config/schema/load.rs`.
- Route env-overlay reads through `EnvLookup`/`ProcessEnv` while preserving existing precedence and runtime behavior.
- Add focused parallel-safe unit coverage for config env overlay behavior without mutating process env.
## Problem
- `Config::apply_env_overrides` mixed environment access, override logic, and global side effects.
- That made precedence and parsing behavior harder to unit test in isolation and forced reliance on process-env mutation.
## Solution
- Add `pub(crate) trait EnvLookup` with `get`, `contains`, and `get_any`, plus a production `ProcessEnv` implementation.
- Delegate overlay logic through `apply_env_overlay_with(&ProcessEnv)` and keep side effects in the small wrapper.
- Add focused tests covering precedence, parsing, defaults, and legacy-migration interactions with no global env mutation.
## Submission Checklist
- [x] **Unit tests** — Targeted Rust config tests added and broader related module suites passed
- [ ] **E2E / integration** — Not applicable; this refactor preserves existing behavior and improves unit-level testability
- [x] **N/A** — E2E is not applicable because no user-visible or cross-process flow changed
- [ ] **Doc comments** — Not applicable; internal refactor in existing module only
- [ ] **Inline comments** — Not applicable; logic remains local and test coverage documents behavior
## Impact
- No intended runtime behavior change; refactor keeps config precedence intact.
- Improves maintainability and makes future config/workspace resolution seams easier to test safely.
## Related
- Issue(s):
- Follow-up PR(s)/TODOs: thread `EnvLookup` through runtime config directory resolution helpers
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
- Add JSON-RPC handlers for source, global, and topic-based memory retrieval.
- Integrate Ollama embeddings for semantic reranking of chunks and summaries.
- Implement 15 unit tests for RPC handlers covering parameter parsing and PII redaction.
- Redact PII from logs by removing raw source, entity, and node identifiers.
- Fix BFS traversal for drill-down and deduplicate results in topic queries.
- Add configuration for embedding endpoints, models, and strictness modes.
Co-authored-by: sanil-23 <sanil@vezures.xyz>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Dedicated narrow workflow that runs only agent-review.spec.ts under
tauri-driver + Xvfb and uploads app/test/e2e/artifacts/**. Gates on
spec presence so it can land before the spec itself. Intentionally does
not re-enable the broader commented E2E matrix in test.yml.
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>