Release v0.9.0 → main - #751
Merged
Merged
Conversation
Guides new users from zero to productive in one command: - Detects install (binary on PATH, existing store) - Asks which AI agent they use (Hermes/Claude/Cursor/Pi/OpenCode) - Picks integration mode (tool vs memory-provider) - Toggles features on/off (Aging, Auto-maintenance, Graph rerank, Salience/Recency boost, Server mode) - Writes uteke.toml config with selections - Runs uteke init with selected agent automatically - Prints a full feature showcase (all commands grouped by category) Non-interactive mode: uteke onboard --yes --agent hermes --namespace default Docs updated: getting-started.md, cli-reference.md, AGENT.md, CHANGELOG.md New dep: which crate for PATH detection
Add a prominent "🚀 Onboarding" section right after install, before "Why Uteke?". Includes an agent-readable callout so when a user drops the GitHub link to an AI agent (Hermes, Claude, etc.), the agent reads the README and knows to run `uteke onboard.
🔴 Must Fix: - AGENT.md: correct schema version v13 → v15 (room↔document junction, #689) - onboard.rs: remove misleading get_stats() placeholder, drop count claim - onboard.rs: write_config() now backs up existing uteke.toml to .bak and prompts for confirmation before overwriting (prevents credential loss) 🟡 Should Fix: - prompt_integration_mode(): print message for custom agents (no longer silent) - validate_agent(): now warns on unrecognized agents instead of being a no-op - Banner boxes: replace misaligned Unicode box drawing with consistent ASCII print_banner() helper (fixes off-by-1 alignment, ambiguous em-dash width) - --json flag: intentionally ignored in onboard to avoid mixing ASCII banners with parseable JSON output 🟢 Nice to Have: - Install URL: main → develop (matches repo default branch convention) - Add 7 unit tests for pure functions (get_toggle, validate_agent, print_banner, write_config TOML structure) All tests pass: cargo fmt --check ✅, cargo clippy -D warnings ✅, cargo test (50 passed) ✅ Co-authored-by: ajianaz <reviewer>
BREAKING: The room summary document endpoint is renamed from POST /room/document to POST /room/summary to eliminate confusion with the room↔document junction routes (/room/document/add, /room/document/list, /room/document/remove). Changes: - Server: POST /room/summary is the new primary endpoint - Server: POST /room/document retained as deprecated alias with warn! log - Core: room_document() → room_summary_document() across all crates - CLI: 'uteke room document' command unchanged (help text updated) - MCP: uteke_room_document tool updated to use new function - Docs: cli-reference, docker, mcp, rooms updated Closes #735
…om/summary Clippy caught unreachable pattern: POST /room/summary already used by room_summary() (tag clustering). Renamed to POST /room/summary-document to eliminate ambiguity with both junction routes AND the clustering endpoint. Refs #735
…room-summary refactor(api): rename POST /room/document → POST /room/summary (#735)
Adds API versioning middleware to uteke-server.
Changes:
- ApiVersion enum (V1, V2) with path prefix parser
- /api/v1/* routes return v1 format (flat recall results for backward compat)
- /api/v2/* routes return current v2 format (wrapped UnifiedSearchResult)
- Unversioned routes (/recall, /remember, etc.) continue to work (→ latest)
- Health endpoint now includes api_versions and api_latest fields
- to_v1_flat() adapter converts UnifiedSearchResult → v1 flat format
v1 vs v2 differences:
- v1 recall: [{id, content, score, namespace, tags, ...}] (flat)
- v2 recall: [{memory: {id, content, ...}, score}] (wrapped)
Routes affected:
- /recall → /api/v1/recall (flat) or /api/v2/recall (wrapped)
- /remember, /memory, /forget, /list, /search, /stats, etc.
- /room/*, /doc/* — all sub-routes versioned
- /health — unversioned, includes version info
feat(api): URL prefix versioning /api/v1 and /api/v2 (#737)
Replaces hardcoded dream pipeline constants with configurable values. Changes: - DreamConfig struct (uteke-core + uteke-cli config) - contradict_similarity_threshold: 0.6 (cosine > this → NOT contradiction) - contradict_tag_jaccard_min: 0.4 (up from 0.3, reduces false positives) - contradict_max_memories: 200 (O(n²) scan limit) - dedup_threshold: 0.92 (cosine > this → merge candidate) - orphan_importance_threshold: 0.15 (safer than old 0.3) - MaintenanceConfig defaults changed to safer values: - auto_aging_enabled: true → false (opt-in) - auto_aging_interval_hours: 6 → 24 (daily) - auto_dream_interval_days: 3 → 7 (weekly) - DreamConfig wired into CLI main.rs and server main.rs via set_dream_config() - dream.rs reads from self.dream_config instead of const values - DEFAULT_ORPHAN_THRESHOLD updated 0.3 → 0.15 - Server reads [dream] section from uteke.toml Config example: [dream] contradict_similarity_threshold = 0.6 contradict_tag_jaccard_min = 0.4 contradict_max_memories = 200 dedup_threshold = 0.92 orphan_importance_threshold = 0.15 Closes #731
- consolidate() expects f32 not f64 — remove incorrect cast - Server dream config: unwrap_or_default() for Option<usize> returns 0 (wrong), use unwrap_or(DreamConfig::default().*) instead - Format: restructure server dream config block for rustfmt compliance
…sholds feat(config): configurable dream pipeline thresholds (#731)
- Remove unused 'toggles' vec in test_write_config_generates_valid_toml - Replace useless format! with raw string literal - Remove stray closing parenthesis
feat: add — interactive onboarding wizard
…ming (#740) - Add connect timeout (30s) and read timeout (300s) to prevent infinite hangs on slow/unstable connections - Retry up to 3 attempts on transient failures with cleanup - Stream download to disk via 64KB chunks instead of buffering entire 187MB model_data file in RAM - Add progress indicator (file size + percentage milestones) - Add human-readable byte formatting (KB/MB/GB) - Verify content-length matches downloaded bytes
fix(core): robust embedding model download (#740)
- SECURITY.md: supported versions, vulnerability reporting process, SLA - PULL_REQUEST_TEMPLATE.md: type checklist, CI verification, conventional commits
Cora caught that instructing reporters to open a public issue with [SECURITY] prefix contradicts the 'do not open a public issue' policy. GitHub issues are public by default — only Private Vulnerability Reporting provides proper confidentiality.
docs: add SECURITY.md and PR template
…om locked file handle
fix(core): prevent os error 33 on Windows by reading usearch index from locked file handle
recall() vector search path was missing a deprecated filter, causing deprecated memories to appear in search results (61.7% in reported case). FTS5 path already filters at SQL level (m.deprecated = 0). recall_at_time() already filters in post-filter. Adding the filter in recall() fixes all downstream paths: - Vector strategy - Hybrid RRF (calls recall()) - Graph rerank (calls recall_rrf -> recall())
fix(core): filter deprecated memories in recall() (#748)
uteke-cli, uteke-mcp, and uteke-server had hardcoded uteke-core/mcp version = "0.8.0" instead of using workspace version. Updated all to 0.9.0 to match workspace.package.version.
chore: release v0.9.0 — version bump, CHANGELOG
🔍 Cora AI Code ReviewReview powered by cora-cli · BYOK · MIT |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v0.9.0
Merge develop into main for v0.9.0 release.
Added
uteke onboardinteractive onboarding wizard (feat: add — interactive onboarding wizard #743)Changed
Fixed
Stats