feat(meridia): multi-factor memory relevance scoring system#10
Merged
feat(meridia): multi-factor memory relevance scoring system#10
Conversation
…tartupcommands-modification Gateway: add startupCommands RPCs (list / append / remove)
…openclaw#9363) When thinkingDefault is set to "xhigh" but the configured model does not support it (e.g. Claude), the cron isolated-agent path throws a hard error causing the job to fail. The interactive chat path already handles this by silently downgrading to "high". Apply the same graceful downgrade in the cron path: log a warning and fall back to "high" instead of crashing. Co-authored-by: hyf0-agent <[email protected]>
Adds comprehensive unit tests for Windows ACL inspection utilities: - resolveWindowsUserPrincipal: username resolution with fallback - parseIcaclsOutput: icacls output parsing - summarizeWindowsAcl: ACL entry classification (trusted/world/group) - inspectWindowsAcl: async ACL inspection with mocked exec - formatWindowsAclSummary: summary string formatting - formatIcaclsResetCommand: reset command string generation - createIcaclsResetCommand: structured reset command generation All 26 tests passing. Co-Authored-By: Claude Opus 4.5 <[email protected]>
When receiving messages in Telegram DM topics (Topics in Private Chats), the threadId was not saved in the session's deliveryContext, causing replies to go to General chat instead of the topic. Now we pass threadId to updateLastRoute for DM topics. Fixes openclaw#8891
…aw#8891 Verifies that threadId is passed to updateLastRoute for DM topics. Test fails on main branch, passes with the fix.
…g-tool clean up agent runner hooks
* docs(start): streamline getting started flow * docs(nav): reorganize start and install sections * docs(style): move custom css to style.css * docs(navigation): align zh-CN ordering * docs(navigation): localize zh-Hans labels
* Review landing UX plan * Review landing UX documentation
* Web: redesign nodes/permissions UI with sleek collapsible sections, agent permissions sheet, and inherited value indicators * Web: add approvals target selector and per-agent node binding rows to nodes view * Web: replace stacked sections with tab layout + master-detail split for nodes page * Web: polish nodes UI (fix hooks ordering, unused imports, add 60 unit tests) --------- Co-authored-by: Claude <[email protected]>
* docs: add landing page implementation plan synthesizing all UI/UX design docs * feat(web): implement /landing public product tour page - Add /landing route with full guard bypass (Gateway, Onboarding, Unlock) - Create scoped .landing-theme CSS with decorative tokens (aurora, glass, glow) - Build 10 section components: Hero, HowItWorks, Personalization, AlwaysOn, Control, Capabilities, Examples, FAQ, SocialProof, FinalCTA - Build reusable primitives: LandingSection, SectionHeader, Card, Button, StatusChip, DeliverablePreviewCard - Implement motion hooks: useRevealOnScroll (IntersectionObserver), useParallaxLite (desktop-only rAF), useReducedMotion - Add landing-specific animations with full prefers-reduced-motion support - Include sticky header with mobile menu, skip-to-content, and anchor navigation - Add LandingFooter with anchor links - Performance: content-visibility auto, transform/opacity-only animations, glass fallback via @supports --------- Co-authored-by: Claude <[email protected]>
…filters - New /decisions/ route with full-featured Overseer Decision Audit Log - DecisionCard: timeline entry with outcome badges, type icons, metadata - DecisionDetailPanel: expanded view with options, response, reasoning, dispatched actions - DecisionTimeline: grouped-by-date timeline with staggered animations - DecisionStats: summary cards (total, approved, rejected, expired, pending, avg response time) - Filtering: outcome, type, date range, and text search with debounce - API client and hooks wired to gateway decision.list / decision.get RPC - Transforms DecisionRecord to UI-friendly DecisionAuditEntry format Part of BACKLOG P2: Decision Audit Log for Overseer
Restructure the command palette with drill-down sub-menus: - Navigate to... — Full list of all pages (Home, Conversations, Agents, Goals, Memories, Rituals, Automations, Workstreams, Settings, Dashboard) - Agents — Chat with or view any agent (shows all, not just top 5) - Appearance — Theme toggle, dark/light selection, power user mode, sidebar toggle - Settings & Config — Profile, Gateway config, Nodes, Keyboard shortcuts, Power user mode Navigation UX: - Breadcrumb header shows current sub-menu with back button - Backspace on empty search returns to root menu - Escape from sub-menu returns to root (doesn't close dialog) - ChevronRight indicator on category items signals drill-down - Root page still shows quick-access items (top 5 nav, top 3 agents) for power users who know what they want Also marks goal templates as complete in BACKLOG.md (PR openclaw#184).
- Add GoalTemplatePicker component with category tabs (Development, Operations, Research, Maintenance) and 13 preset templates - Enhance CreateGoalModal with a two-step flow: pick a template first, then customize the pre-filled form - Templates pre-fill title and milestones for faster goal creation - 'Start from scratch' option skips templates for custom goals - Back button in form step to return to template picker - Animated transitions between template and form steps - Template badge shown in form when using a template - All types and components exported from goals/index.ts
* docs: add implementation plan for console/login entry UX redesign * feat(web): implement console/login entry UX redesign - Add /landing public marketing route (fullscreen, no guards, no gateway) - Update guards (OnboardingGuard, UnlockGuard) to skip /landing - Disable gateway auto-connect and streaming hooks on /landing - Restructure __root.tsx to bypass all guards for public routes - Redesign /unlock as 2-column Console Access page with stepper flow - Add ConnectionStep with gateway URL, status, troubleshooting help - Add StepIndicator visual stepper (Connect -> Unlock -> Enter) - Create ModeToggle (Simple/Advanced) component using existing powerUserMode - Add SuggestedStarters with 9 outcome-oriented template tiles - Add RecentWork component merging workstreams + conversations - Add ApprovalsInbox prominent card for pending agent approvals - Add StatusIndicator showing gateway/unlock/approvals status - Redesign home page with mode-aware layout (Simple vs Advanced) - Restructure sidebar: primary nav (Home/Chat/Approvals/Activity), Explore section (collapsed in Simple mode), Power User section https://claude.ai/code/session_01Cg4qpNaXVuG4GCHKQuaom2 --------- Co-authored-by: Claude <[email protected]>
…ers, and detail panel (openclaw#192) - New /decisions/ route with full-featured Overseer Decision Audit Log - DecisionCard: timeline entry with outcome badges, type icons, metadata - DecisionDetailPanel: expanded view with options, response, reasoning, dispatched actions - DecisionTimeline: grouped-by-date timeline with staggered animations - DecisionStats: summary cards (total, approved, rejected, expired, pending, avg response time) - Filtering: outcome, type, date range, and text search with debounce - API client and hooks wired to gateway decision.list / decision.get RPC - Transforms DecisionRecord to UI-friendly DecisionAuditEntry format Part of BACKLOG P2: Decision Audit Log for Overseer
…ion (openclaw#193) Restructure the command palette with drill-down sub-menus: - Navigate to... — Full list of all pages (Home, Conversations, Agents, Goals, Memories, Rituals, Automations, Workstreams, Settings, Dashboard) - Agents — Chat with or view any agent (shows all, not just top 5) - Appearance — Theme toggle, dark/light selection, power user mode, sidebar toggle - Settings & Config — Profile, Gateway config, Nodes, Keyboard shortcuts, Power user mode Navigation UX: - Breadcrumb header shows current sub-menu with back button - Backspace on empty search returns to root menu - Escape from sub-menu returns to root (doesn't close dialog) - ChevronRight indicator on category items signals drill-down - Root page still shows quick-access items (top 5 nav, top 3 agents) for power users who know what they want Also marks goal templates as complete in BACKLOG.md (PR openclaw#184).
* feat: work queue overhaul * Web: add agents dashboard * Web: add core files editor * UI: add agent skills, channels, and cron tabs * Build: prepare vercel ai agent * feat: work queue CLI commands, graph view * Web: add full web dev script * Update a2ui bundle * Work Queue: implement schema migration system with Umzug Adds proper database schema migration support to work queue backend using Umzug migration library. This fixes the "no such column: workstream" error that occurred when the gateway started with an existing database. Changes: - Add umzug dependency for schema migrations - Create migrations directory with two migrations: - 001_baseline.ts: Initial schema (work_queues + work_items) - 002_workstream_and_tracking.ts: Workstream and execution tracking - Update SqliteWorkQueueBackend to run migrations on initialization - Remove old ensureSchema() and migrateSchema() methods - Add comprehensive migration tests for all scenarios The migration system: - Tracks migration history in umzug_migrations table - Runs pending migrations automatically on initialization - Is idempotent (safe to run multiple times) - Provides a foundation for future schema changes All tests passing (7/7). Fixes startup errors with existing databases. Co-Authored-By: Claude Sonnet 4.5 (1M context) <[email protected]> --------- Co-authored-by: Claude Sonnet 4.5 (1M context) <[email protected]>
…aw#197) Add useGatewayEnabled() and useGatewayModeKey() shared hooks that centralize the gateway mode logic: - Production: always returns true (gateway is the primary data source) - Development: returns true only when user has toggled 'Live Gateway' on Migrated all 9 files that had inline import.meta.env.DEV && useLiveGateway checks to use the shared hook instead: - useAgentMutations.ts (4 mutation hooks) - useConversationMutations.ts (useLiveMode helper) - useAgentStatus.ts (dashboard hook) - useConversations.ts (4 query hooks) - useAgents.ts (3 query hooks) - useNodes.ts (3 query hooks) - __root.tsx (gateway auth guard) - main.tsx (gateway provider) This makes production web builds fully functional by inverting the dev-only gating that previously made the gateway always disabled in production.
…invalid-skills-rpcs chore: remove invalid skill RPCs, add install/uninstall metadata to all skills
…startup fix: schema migrations not being discovered properly
Implement a comprehensive scoring system that evaluates whether experiences should become long-term memories based on five weighted factors: - **Novelty**: Is this new information or repetition? - **Impact**: Does this change understanding, behavior, or system state? - **Relational**: Does this connect to known entities/people/projects? - **Temporal**: Is this time-sensitive or evergreen? - **User Intent**: Was this explicitly marked as important? Features: - Configurable weights for each factor (normalized to sum to 1.0) - Named threshold profiles: balanced, aggressive, conservative, minimal - Override rules for specific tools (glob-pattern matching) - evaluateMemoryRelevance() as primary entry point - shouldCapture(), shouldPersistToGraph(), shouldUseLlmEval() helpers - Backward-compatible evaluateHeuristic() now delegates to scoring system - New evaluateHeuristicDetailed() returns full scoring breakdown - 37 comprehensive tests covering all factors and edge cases Files: - extensions/meridia/src/meridia/scoring/types.ts - extensions/meridia/src/meridia/scoring/config.ts - extensions/meridia/src/meridia/scoring/factors.ts - extensions/meridia/src/meridia/scoring/index.ts - extensions/meridia/src/meridia/scoring/scoring.test.ts - extensions/meridia/src/meridia/evaluate.ts (updated)
|
The formal models extracted constants ( This check is informational (not blocking merges yet). If this change is intentional, follow up by updating the formal models repo or regenerating the extracted artifacts there. |
dgarson
added a commit
that referenced
this pull request
Feb 7, 2026
…aeMYE Add search, filtering, and sorting to sessions table
dgarson
added a commit
that referenced
this pull request
Feb 7, 2026
…#208) * feat: added work-queue workflow workers and a worker manager, integrate w/cron * fix: address 12 logic flaws in workflow engine, adapter, phases, and cron types - engine: capture phase before clobbering in catch handler (#1) - engine: remove dead `state.plan ?? plan` fallback (#2) - engine: mark workflow failed when all execution nodes fail (#6) - adapter: fix retry count off-by-one (attemptNumber vs retryCount) (#3) - adapter: clean up abort listener in sleep on timeout (#10) - discover: fix batch/entries index mismatch when spawns fail (#4) - execute: add cycle detection to topological sort (#5) - review: add autoApproved flag to distinguish fallback approvals (#7) - plan: add comment clarifying sessionKey reuse across repair attempts (#8) - decompose: remove unused model/maxPhases/maxTasksPerPhase/maxSubtasksPerTask opts (#9) - types: add autoApproved to ReviewIteration (#7) - cron/state: use discriminated union for CronEvent (CronJobEvent | CronHealthEvent) (#12) - tests: add WorkflowWorkerAdapter test suite (8 tests) (#11) https://claude.ai/code/session_01L8kquwpmUh5zmU9S4MHgPu --------- Co-authored-by: Claude <[email protected]>
dgarson
added a commit
that referenced
this pull request
Feb 7, 2026
…cron types (openclaw#217) - engine: capture phase before clobbering in catch handler (#1) - engine: remove dead `state.plan ?? plan` fallback (#2) - engine: mark workflow failed when all execution nodes fail (#6) - adapter: fix retry count off-by-one (attemptNumber vs retryCount) (#3) - adapter: clean up abort listener in sleep on timeout (#10) - discover: fix batch/entries index mismatch when spawns fail (#4) - execute: add cycle detection to topological sort (#5) - review: add autoApproved flag to distinguish fallback approvals (#7) - plan: add comment clarifying sessionKey reuse across repair attempts (#8) - decompose: remove unused model/maxPhases/maxTasksPerPhase/maxSubtasksPerTask opts (#9) - types: add autoApproved to ReviewIteration (#7) - cron/state: use discriminated union for CronEvent (CronJobEvent | CronHealthEvent) (#12) - tests: add WorkflowWorkerAdapter test suite (8 tests) (#11) https://claude.ai/code/session_01L8kquwpmUh5zmU9S4MHgPu Co-authored-by: Claude <[email protected]>
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.
Summary
Implement a comprehensive multi-factor memory relevance scoring system for Meridia that evaluates whether experiences should become long-term memories.
Scoring Factors
Features
evaluateMemoryRelevance(ctx, config?)shouldCapture(),shouldPersistToGraph(),shouldUseLlmEval()evaluateHeuristic()now delegates to scoringevaluateHeuristicDetailed()returns full factor breakdownFiles
extensions/meridia/src/meridia/scoring/types.ts— Type definitionsextensions/meridia/src/meridia/scoring/config.ts— Defaults, profiles, resolutionextensions/meridia/src/meridia/scoring/factors.ts— Individual factor scorersextensions/meridia/src/meridia/scoring/index.ts— Entry point + scoring engineextensions/meridia/src/meridia/scoring/scoring.test.ts— Testsextensions/meridia/src/meridia/evaluate.ts— Updated to use scoring systemTesting
Work queue item: EXP-7