cd /news/developer-tools/signet-strategy-split-desktop-embedd… · home topics developer-tools article
[ARTICLE · art-33355] src=signetai.sh ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Signet Strategy Split: Desktop Embeddings + OpenClaw Contributions

Signet is splitting its strategy into two plans: a desktop-first embedding architecture with three quality tiers and a contribution plan to OpenClaw. The desktop plan ships Tier 0 (transformers.js) as default, with fallback behavior for higher tiers. The OpenClaw plan focuses on small, low-risk PRs to build trust, starting with content normalization and importance-aware scoring.

read7 min views1 publishedJun 18, 2026

Plan A: Desktop Embedding Dependency Tiers (Signet-wide) #

Objective

Ship a reliable desktop-first embedding architecture with clear quality tiers while keeping the librarian tied to the user’s existing LLM provider/runtime.

Scope

This plan is for Signet desktop installs and is independent of OpenClaw upstream PR waves.

Tier Model

Librarian rule (all tiers):

  • The librarian always uses the user’s existing runtime/provider LLM (OpenClaw/Claude Code/OpenCode/Ollama-hosted chat model, etc.).
  • Tiering applies to embeddings only.

Tier definitions:

  • Tier 0 (default): transformers.js

local embeddings- No external process

  • No API key required
- Best out-of-box reliability for desktop installs

- Tier 1: Ollama embeddings (example:
`nomic-embed-text`

)- Local model server required
  • Better quality than Tier 0 on many setups
  • No external API cost
- Tier 3: Remote API embeddings (example: OpenAI
`text-embedding-3-large`

)- API key required
  • Highest quality target
  • Network dependency and usage cost

Selection + Fallback Behavior

  • Respect explicit user config if set.
  • If unset, default to Tier 0.
  • If Tier 1 is selected but Ollama is unavailable, fail over to Tier 0.
  • If Tier 3 is selected but API key/network check fails, fail over to Tier 1 when available, else Tier 0.

Rollout Order

  • Ship Tier 0 as stable default for desktop.
  • Add Tier 1 with health check + connectivity diagnostics.
  • Add Tier 3 with key validation, budget/telemetry guardrails, and clear degraded-mode messaging.

Plan B: OpenClaw Contribution Plan #

Primary Objective

Earn trust with steipete through consistently useful upstream contributions so Signet is a credible option when OpenClaw converges on its long-term memory path.

Context

We reviewed 60+ memory-related OpenClaw PRs and studied the memory-lancedb

plugin (671 lines) plus `memory-core`

(38 lines).

Current pattern:

  • Small, focused, low-risk memory improvements are merged more often
  • Large redesigns, dependency-heavy changes, and broad rewrites are usually rejected or stalled
  • PRs under ~500 lines with clear test coverage and no migration impact are the highest-probability path

Strategy

Do not lead with “use our plugin.” Lead with concrete improvements that help OpenClaw regardless of whether Signet is adopted.

Guiding posture:

  • Helpful and technically precise
  • No sales framing inside PRs
  • Credit OpenClaw maintainers and existing design decisions
  • Keep each PR independently valuable and easy to review

What Stays Differentiated in Signet

  • Secret store and vault workflow
  • Cross-platform identity portability ( SOUL.md

,IDENTITY.md

,USER.md

) - Full pipeline orchestration (extraction -> decision -> graph -> retention -> summarization)

  • Daemon/connectors/harness config synchronization layer

Micro-PR Campaign (ranked by acceptance probability)

Selection criteria: small scope, low coupling, no new dependencies, clear tests, explicit rollback.

Wave 1: Highest probability

PR 1: Content normalization + stronger dedup hash

  • Files: extensions/memory-lancedb/index.ts

  • What: normalize whitespace and casing/punctuation edge cases before hash generation; skip near-duplicates

  • Why: reduces duplicate growth from formatting-only variance

- Size target: ~50 lines
- Migration: none
- Signet source:

platform/daemon/src/content-normalization.ts

PR 2: Importance-aware score calibration

  • Files: extensions/memory-lancedb/index.ts

(MemoryDB.search

) - What: incorporate importance

into final ranking (for examplescore = (1 / (1 + distance)) * (0.5 + 0.5 * importance) ) - Why: importance is stored but currently does not affect ordering

- Size target: ~20-30 lines
- Migration: none
- Signet source:

platform/core/src/search.ts

(ranking normalization patterns)

**PR 3: Provider availability tracker (ring buffer)**
  • Files: new small utility + integration point in embedding call path
- What: fixed-size ring buffer for embedding outcomes
(

success|failure|timeout

) - Why: adds operational visibility without persistent storage changes

- Size target: ~80 lines
- Migration: none
- Signet source:

platform/daemon/src/diagnostics.ts

Wave 2: Medium complexity, still low-risk

**PR 4: Configurable recall threshold ( minScore)**

- Files:

extensions/memory-lancedb/index.ts

  • What: expose optional minScore

inmemory_recall

, validate range, and keep current default when omitted - Why: lets operators tune precision/recall without changing code

- Size target: ~20-40 modified lines
- Migration: none

**PR 5: Token-aware recall budget (optional parameter)**

- Files:

extensions/memory-lancedb/index.ts

  • What: optional contextTokenBudget

; stop adding recalls when budget is reached; default behavior remains current limit-based recall - Why: better context-size control with backward compatibility

- Size target: ~40 lines
- Migration: none

PR 6: Degraded-mode error signaling when embeddings fail

  • Files: extensions/memory-lancedb/index.ts

  • What: on embedding failure, return explicit degraded-mode status and actionable guidance in tool details/logs (instead of generic/no-result behavior)

  • Why: memory availability failures should be diagnosable and not look like “no memories exist”

- Size target: ~40-60 lines
- Migration: none in initial PR scope
  • Note: if lexical fallback is desired later, ship it as a separate PR with isolated indexing scope

Wave 3: Submit only after trust is established

PR 7: TTL support for temporary memories

  • Files: extensions/memory-lancedb/index.ts

  • What: optional expiresAt

, filter expired rows, cleanup path - Size target: ~60 lines

- Migration: likely yes (new column)
- Signet source:

platform/daemon/src/pipeline/retention-worker.ts

**PR 8: Rate-limited repair actions**

- Files: new utility + minimal call-site integration
  • What: cooldown + hourly budget for maintenance actions
- Size target: ~100 lines
- Migration: none
- Signet source:

platform/daemon/src/repair-actions.ts

PR 9: Optional reranking with timeout guard

  • Files: new utility + search integration
  • What: rerank top-N with strict timeout and fallback to original order
- Size target: ~120 lines
- Migration: none
- Signet source:

platform/daemon/src/pipeline/reranker.ts

PR Quality Bar (required for every submission)

Each PR must use OpenClaw’s canonical PR template sections (.github/pull_request_template.md

) with complete, concrete answers:

  • Problem statement
  • Scope (what is intentionally out of scope)
  • Test plan
  • Rollback plan
  • Risk notes
  • Security impact
  • Repro + verification
  • Human verification
  • Compatibility / migration
  • Failure recovery

Minimum test expectations:

  • Unit test for new behavior
  • Regression test covering the bug/path fixed
  • No behavior change in default path unless explicitly intended
  • Local validation command succeeds: pnpm build && pnpm check && pnpm test

Rollback requirement:

  • Each PR should be reversible with a small, isolated revert
  • Avoid touching multiple subsystems in one PR

AI-assisted disclosure requirement:

  • Mark PR as AI-assisted in title or description
  • State testing level (untested / lightly tested / fully tested)
  • Include prompts/session notes when possible

Signet Plugin Improvements (parallel track)

While contributing upstream, improve @signetai/adapter-openclaw in parallel:

  • Finalize openclaw.plugin.json

(kind: "memory" , completeconfigSchema

, clearuiHints

) - Enforce token budget cap for injected memories

  • Verify identity injection ( SOUL.md

/IDENTITY.md

/USER.md

) at session start - Integrate health reporting with OpenClaw doctor flow

  • Tight README: 3-command setup + architecture diagram
  • Ensure librarian/provider bridge follows OpenClaw provider settings

Community Engagement Plan

GitHub (after Wave 1 PRs are live)

  • Comment on issue #12880

with implementation notes from identity file handling - Comment on PR #24154

with concrete interoperability learnings - Open one technical discussion: cross-platform identity portability (non-promotional)

X/Twitter (after positive review signal)

  • Post concise engineering updates tied to shipped upstream improvements
  • Highlight contribution intent first, Signet second
  • Keep tone factual and collaborative

Demo (after initial trust is established)

  • Same agent persona/context across Claude Code and OpenClaw
  • Same memory continuity with no manual reconfiguration
  • Short recording showing portability and operational stability

Anti-Patterns

  • PRs over ~500 lines
  • New core dependencies without prior maintainer buy-in
  • Architecture rewrites framed as “replacement”
  • Marketing language in technical review threads
  • Giving away core Signet differentiators prematurely

Execution Timeline

  • Now: finalize Wave 1 specs, exact target functions/files, and tests
- Week 1: submit Wave 1 PRs (small, independent, reversible)
- Week 1-2: continue adapter hardening in parallel
- Week 2-3: submit Wave 2 PRs based on review feedback
- Week 3-4: technical engagement in issues/discussions
  • Week 4+: demo and public narrative once upstream trust is visible

Success Metrics

Primary success metric:

  • steipete sees Signet as a high-signal contributor and includes us in memory-path shortlist discussions

Leading indicators (measurable):

  • Wave 1 merge rate
  • Median time to first maintainer response
  • Number of requested rework cycles per PR
  • Number of follow-up PR invitations or direct maintainer pings
  • OpenClaw discussion references to Signet work (technical, not promotional)
── more in #developer-tools 4 stories · sorted by recency
── more on @signet 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/signet-strategy-spli…] indexed:0 read:7min 2026-06-18 ·