Skip to content

Comments

feat(meridia): multi-factor memory relevance scoring system#10

Merged
dgarson merged 824 commits intomainfrom
autodev-memory-relevance-scoring
Feb 7, 2026
Merged

feat(meridia): multi-factor memory relevance scoring system#10
dgarson merged 824 commits intomainfrom
autodev-memory-relevance-scoring

Conversation

@dgarson
Copy link
Owner

@dgarson dgarson commented Feb 7, 2026

Summary

Implement a comprehensive multi-factor memory relevance scoring system for Meridia that evaluates whether experiences should become long-term memories.

Scoring Factors

Factor Weight Description
Novelty 0.25 Is this new information or repetition?
Impact 0.30 Does this change understanding/behavior/state?
Relational 0.15 Connects to known entities/people/projects?
Temporal 0.10 Time-sensitive vs evergreen?
User Intent 0.20 Explicitly marked as important?

Features

  • Configurable weights — normalized to sum to 1.0
  • Named threshold profiles: balanced, aggressive, conservative, minimal
  • Override rules for specific tools (glob-pattern matching, min/max/fixed scores)
  • Primary API: evaluateMemoryRelevance(ctx, config?)
  • Threshold helpers: shouldCapture(), shouldPersistToGraph(), shouldUseLlmEval()
  • Backward compatible: existing evaluateHeuristic() now delegates to scoring
  • New: evaluateHeuristicDetailed() returns full factor breakdown
  • 37 comprehensive tests — all passing

Files

  • extensions/meridia/src/meridia/scoring/types.ts — Type definitions
  • extensions/meridia/src/meridia/scoring/config.ts — Defaults, profiles, resolution
  • extensions/meridia/src/meridia/scoring/factors.ts — Individual factor scorers
  • extensions/meridia/src/meridia/scoring/index.ts — Entry point + scoring engine
  • extensions/meridia/src/meridia/scoring/scoring.test.ts — Tests
  • extensions/meridia/src/meridia/evaluate.ts — Updated to use scoring system

Testing

pnpm build  # ✅ passes
vitest run extensions/meridia/src/meridia/scoring/scoring.test.ts  # ✅ 37 tests pass

Work queue item: EXP-7

dgarson and others added 30 commits February 4, 2026 20:54
…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.
* 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
dgarson and others added 25 commits February 6, 2026 14:53
* 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)
@github-actions
Copy link

github-actions bot commented Feb 7, 2026

⚠️ Formal models conformance drift detected

The formal models extracted constants (generated/*) do not match this openclaw PR.

This check is informational (not blocking merges yet).
See the formal-models-conformance-drift artifact for the diff.

If this change is intentional, follow up by updating the formal models repo or regenerating the extracted artifacts there.

@dgarson dgarson merged commit 086be0a into main Feb 7, 2026
10 of 40 checks passed
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.