singularity-forge/src/resources/extensions/sf
Mikael Hugo 44fcfb643c
Some checks are pending
CI / detect-changes (push) Waiting to run
CI / docs-check (push) Blocked by required conditions
CI / lint (push) Blocked by required conditions
CI / build (push) Blocked by required conditions
CI / integration-tests (push) Blocked by required conditions
CI / windows-portability (push) Blocked by required conditions
CI / rtk-portability (linux, blacksmith-4vcpu-ubuntu-2404) (push) Blocked by required conditions
CI / rtk-portability (macos, macos-15) (push) Blocked by required conditions
CI / rtk-portability (windows, blacksmith-4vcpu-windows-2025) (push) Blocked by required conditions
fix(sift): use bm25 only for repo-root — phrase retriever hangs on full scope
Root cause: the sift binary's phrase retriever hangs indefinitely when
queried against the full repo-root scope (57K+ files). Earlier tests
mistook this for a general slowness, but isolated testing confirms:

- bm25 alone on repo root: works (1m 30s cold, instant warm)
- phrase alone on repo root: hangs forever
- bm25+phrase on repo root: hangs forever (phrase path blocks)
- all retrievers on scoped subdirs: work correctly

The earlier Rust panic was from a corrupted cache state left by killing
a mid-build vector process. After clearing the cache, bm25 alone works.

Fix: chooseSiftRetrievers now returns retrievers: "bm25" (not "bm25,phrase")
for repo-root scope. Scoped subdirs still get bm25+phrase+vector with
position-aware reranking.

Tests: updated 3 assertions in sift-retriever-scope.test.mjs.
Full suite: 183 files / 1958 tests pass.
Type check: clean.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-15 14:28:23 +02:00
..
agents
auto
bootstrap
cmux
commands
docs
ecosystem
guards
learning
migrate
notifications
permissions
prompts
safety
schedule
schemas
sf-db
shared
skills
subagent
templates
tests fix(sift): use bm25 only for repo-root — phrase retriever hangs on full scope 2026-05-15 14:28:23 +02:00
tools
ui
uok fix(sift): use bm25 only for repo-root — phrase retriever hangs on full scope 2026-05-15 14:28:23 +02:00
watch
workflow-templates
abandon-detect.js
activity-log.js
agentic-docs-scaffold.d.ts
agentic-docs-scaffold.js
ai-memory-tools.js
atomic-write.js
auto-artifact-paths.js
auto-bootstrap-context.js
auto-budget.js
auto-completion-nudge.js
auto-dashboard.js
auto-direct-dispatch.js
auto-dispatch.js
auto-loop.js
auto-model-selection.js feat(model-routing): autonomous fallback strict to enabledModels allowlist 2026-05-15 14:02:58 +02:00
auto-post-unit.js
auto-prompts.js
auto-recovery.js
auto-runaway-guard.js
auto-runtime-state.js
auto-start.js
auto-supervisor.js
auto-timeout-recovery.js
auto-timers.js
auto-tool-tracking.js
auto-unit-closeout.js
auto-utils.js
auto-verification.js
auto-worktree.js
auto.js
autonomous-command-args.d.ts
autonomous-command-args.js
autonomous-solver-eval.js
autonomous-solver.js fix(sift): use bm25 only for repo-root — phrase retriever hangs on full scope 2026-05-15 14:28:23 +02:00
benchmark-selector.js
blocked-models.js
branch-patterns.js
cache.js
canonical-milestone-plan.js
captures.js
changelog.js
chat-command-router.js
claude-import.js
clean-root-preflight.js
code-intelligence.d.ts
code-intelligence.js fix(sift): use bm25 only for repo-root — phrase retriever hangs on full scope 2026-05-15 14:28:23 +02:00
codebase-generator.js
collision-diagnostics.js
commands-add-tests.js
commands-agent.js
commands-backlog.js
commands-bootstrap.js
commands-cmux.js
commands-codebase.js
commands-config.js
commands-debug.js
commands-do.js
commands-escalate.js
commands-eval-review.js
commands-extensions.js
commands-extract-learnings.js
commands-handlers.js
commands-harness.js
commands-inspect.js
commands-logs.js
commands-maintenance.js
commands-mcp-status.js
commands-memory.js
commands-plan.js
commands-pr-branch.js
commands-prefs-wizard.js
commands-rate.js
commands-scaffold-migrate.js
commands-scaffold-sync.js
commands-scan.js
commands-schedule.js
commands-session-report.js
commands-ship.js
commands-todo.js
commands-uok.js
commands-workflow-templates.js
commands-worktree.js
commands.js
compaction-snapshot.js
complexity-classifier.js
component-loader.js
component-types.js
config-overlay.js
constants.js
context-board.js
context-budget.js
context-injector.js
context-masker.js
context-store.js
cost-command.js
crash-recovery.js
custom-execution-policy.js
custom-verification.js
custom-workflow-engine.js
dashboard-overlay.js
db-writer.js
debug-logger.js
debug-session-store.js
deep-project-setup-policy.js
definition-io.js
definition-loader.js
detection.js
dev-execution-policy.js
dev-workflow-engine.js
diff-context.js
dispatch-guard.js
doc-checker.d.ts
doc-checker.js
doc-sync.js
doctor-checks.js
doctor-config-checks.js
doctor-engine-checks.js
doctor-environment.js
doctor-format.js
doctor-git-checks.js
doctor-global-checks.js
doctor-proactive.js
doctor-providers.js
doctor-runtime-checks.js
doctor-types.js
doctor.d.ts
doctor.js
engine-resolver.js
engine-types.js
env-utils.js
error-classifier.js
error-utils.js
errors.js
escalation.js
eval-review-schema.js
exec-history.js
exec-sandbox.js
execution-instruction-guard.js
execution-policy.js
exit-command.js
experimental.js
export-html.js
export.js
extension-manifest.json
file-lock.js
files.js
forensics.js
gap-audit.js
gate-registry.js
gemini-catalog.js
git-constants.js
git-runtime-patterns.js
git-self-heal.js
git-service.js
gitignore.d.ts
gitignore.js
google-gemini-token-counter.js
graph-context.js
graph.js
guided-flow-queue.js
guided-flow.js
health-widget-core.js
health-widget.js
history.js
hook-emitter.js
index.js
init-wizard.js
interrupted-session.js
io-helpers.js
journal.js
json-persistence.js
jsonl-utils.js
judgment-log.js
key-manager.js fix(sift): use bm25 only for repo-root — phrase retriever hangs on full scope 2026-05-15 14:28:23 +02:00
knowledge-compounding.js
knowledge-injector.js
lifecycle-hooks.js
markdown-renderer.js
marketplace-discovery.js
md-file-tracker.js
md-importer.js
memory-embeddings.js
memory-extractor.js
memory-ingest.js
memory-relations.js
memory-repository.js
memory-source-store.js
memory-store.js
metrics-central.js
metrics.js fix(model-learner): resolve canonical-id lazy-load race + 23 wire-id aliases 2026-05-15 14:02:58 +02:00
migrate-external.js
milestone-actions.js
milestone-framing-check.js
milestone-id-reservation.js
milestone-id-sort.js
milestone-id-utils.js
milestone-ids.js
milestone-quality.js
milestone-scope-classifier.js
milestone-summary-classifier.js
milestone-validation-gates.js
model-catalog-cache.js
model-cost-table.js
model-identity.js
model-learner.js fix(model-learner): resolve canonical-id lazy-load race + 23 wire-id aliases 2026-05-15 14:02:58 +02:00
model-registry.ts chore(model-registry): prune 15 redundant identity-strip aliases 2026-05-15 14:17:06 +02:00
model-route-failure.js
model-router.js
namespaced-registry.js
namespaced-resolver.js
native-git-bridge.d.ts
native-git-bridge.js
native-parser-bridge.js
notification-overlay.js
notification-store.js
notification-widget.js
notifications.js
observability-validator.js
onboarding-state.js
openai-codex-catalog.js
operating-model.js
orphan-worktree-sweep.js
package.json
parallel-eligibility.js
parallel-intent.js
parallel-merge.js
parallel-monitor-overlay.js
parallel-monitor-store.js
parallel-orchestrator.js
parsers.js
paths.d.ts
paths.js
phase-anchor.js
plan-quality.js
planning-depth.js
plugin-importer.js
post-execution-checks.js
post-unit-hooks.js
pre-execution-checks.js
preferences-migrations.js
preferences-models.d.ts
preferences-models.js fix(auto): timeout silent swarm turns despite heartbeats 2026-05-15 13:55:04 +02:00
preferences-serializer.js
preferences-skills.js
preferences-template-upgrade.js
preferences-types.js
preferences-validation.js
preferences.d.ts
preferences.js
preparation.js
production-mutation-approval.js
progress-score.js
project-research-policy.js
prompt-cache-optimizer.js
prompt-loader.js
prompt-ordering.js
prompt-validation.js
provider-catalog-config.js fix(sift): use bm25 only for repo-root — phrase retriever hangs on full scope 2026-05-15 14:28:23 +02:00
provider-env-auth.js
provider-error-pause.js
python-resolver.js
queue-order.js
queue-reorder-ui.js
quick.js
reactive-graph.js
reasoning-assist.js
record-promoter.js
reflection.js
remote-steering.js
repo-identity.d.ts
repo-identity.js
repo-profiler.js
reports.js
repository-vcs-context.js
requirement-promoter.js
rethink.js
retrieval-evidence.js
roadmap-json-projection.js
roadmap-mutations.js
roadmap-slices.js
routing-history.js
rule-registry.js
rule-types.js
run-manager.js
runaway-recovery.js
safe-fs.js
scaffold-constants.js
scaffold-drift.js
scaffold-keeper.js
scaffold-profiles.js
scaffold-versioning.js
schedule-launch-banner.d.ts
schedule-launch-banner.js
self-feedback-drain.js
self-feedback.js
self-report-fixer.js
service-tier.js
session-forensics.js
session-lock.js
session-model-override.js
session-recorder.js
session-status-io.js
setup-catalog.js
sf-db.js
sf-home.js
shortcut-defs.js
skill-catalog.js
skill-discovery.js
skill-health.js
skill-manifest.js
skill-telemetry.js
slice-cadence.js
slice-parallel-conflict.js
slice-parallel-eligibility.js
slice-parallel-orchestrator.js
slice-routing-cache.js
sm-client.js
snapshot-safety.js
solver-model.js
spawn-worker.js
spec-projections.js
state-db.js
state-legacy.js
state-reconcile.js
state-shared.js
state-transition-matrix.js
state.js
status-guards.js
steerable-autonomous-extension.js
steerable-autonomous-panel.js
structured-data-formatter.js
subagent-inheritance.js
summary-helpers.js
sync-lock.js
sync-scheduler.js
task-frontmatter.js
temporal-foundation.js
token-counter.js
tool-watchdog.js
trace-collector.d.ts
trace-collector.js
trajectory-command.js
trajectory-recorder.js
triage-resolution.js
triage-self-feedback.js
triage-ui.js
turn-status-parser.js
types.d.ts
types.js
undo.js
unit-context-composer.js
unit-context-manifest.js
unit-id.js
unit-ownership.js
unit-runtime.js
uok-parity-summary.js
upstream-bridge.js
user-input-boundary.js
validate-directory.js
validation.js
vault-credential-resolver.js
vault-resolver.js
verdict-parser.js
verification-evidence.js
verification-gate.js
visualizer-data.js
visualizer-overlay.js
visualizer-views.js
widget-safe.js
workflow-dispatch.js
workflow-engine.js
workflow-events.js
workflow-helpers.js
workflow-install.js
workflow-logger.js
workflow-manifest.js
workflow-migration.js
workflow-plugins.js
workflow-projections.js
workflow-reconcile.js
workflow-template-compiler.js
workflow-templates.js
workflow-tools.js
workspace-index.js
worktree-command-bootstrap.js
worktree-command.js
worktree-detect.js
worktree-health.js
worktree-manager.js
worktree-resolver.js
worktree-root.js
worktree-session-state.js
worktree-telemetry.js
worktree.js
write-intercept.js