fix(link-daintree): correct family-gate fallback in fan-out import#152
fix(link-daintree): correct family-gate fallback in fan-out import#152
Conversation
Changelog: - refactor(install): manifest-driven CLI detection — providers.json shipped empty, populated at install time - fix(formal): resolve merge conflict markers in .planning JSON files - fix(formal): give max_retries a safe default in oauth-rotation.pm Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
When inferring a family from preset env (e.g. ANTHROPIC_* → "anthropic"), the findVanilla() pool construction erroneously returned [] instead of all candidates when no vanilla slot matched the inferred family. This caused all presets to be skipped when providers have mainTool=claude but provider="claude" (not "anthropic"). Fix: change pool construction from: familyMatch.length ? familyMatch : (family ? [] : candidates) to: familyMatch.length ? familyMatch : candidates The family gate is still respected when matches exist; when it doesn't, we correctly fall back to all candidates sorted by daintree_preset_id then numeric suffix. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (3)
WalkthroughThis PR releases version 0.43.0 and documents associated changes. The package version is bumped from ChangesRelease v0.43.0 & Documentation Updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Review rate limit: 9/10 reviews remaining, refill in 6 minutes. Comment |
There was a problem hiding this comment.
Pull request overview
Fixes the /nf:link-daintree fan-out import behavior so inferred “family” mismatches no longer result in an empty vanilla pool (and therefore silently skipped preset imports).
Changes:
- Adjust
findVanilla()fallback behavior to use all vanilla candidates when no family match exists. - Bump shipped version strings/metadata from
0.43.0-rc.1to0.43.0. - Add a changelog entry describing the fix (as
0.43.1).
Reviewed changes
Copilot reviewed 3 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Updates package version to 0.43.0. |
| package-lock.json | Updates lockfile version fields to 0.43.0. |
| docs/assets/terminal.svg | Updates the rendered version label to v0.43.0. |
| commands/nf/link-daintree.md | Fixes family-gate fallback in findVanilla() to avoid dropping presets on mismatch. |
| CHANGELOG.md | Adds a 0.43.1 entry documenting the fix. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| "name": "@nforma.ai/nforma", | ||
| "version": "0.43.0-rc.1", | ||
| "version": "0.43.0", |
| ## [0.43.1] - 2026-05-03 | ||
|
|
||
| ### Fixed | ||
| - fix(link-daintree): fan-out fallback logic no longer silently drops presets when no vanilla provider has a matching `provider` field — the family gate is now correctly bypassed when the inferred family doesn't match any vanilla slot, falling back to all candidates sorted by daintree_preset_id then numeric suffix | ||
|
|
||
| ## [0.43.0] - 2026-05-02 | ||
|
|
||
| ### Changed | ||
| - refactor(install): manifest-driven CLI detection — `providers.json` now shipped empty and populated at install time from `~/.claude.json` MCP servers and PATH auto-detection | ||
|
|
||
| ### Fixed |
| ## [0.43.1] - 2026-05-03 | ||
|
|
||
| ### Fixed | ||
| - fix(link-daintree): fan-out fallback logic no longer silently drops presets when no vanilla provider has a matching `provider` field — the family gate is now correctly bypassed when the inferred family doesn't match any vanilla slot, falling back to all candidates sorted by daintree_preset_id then numeric suffix |
Summary
/nf:link-daintreewhere presets were silently skipped becausefindVanilla()returned[]when the inferred family didn't match any vanilla slot'sproviderfieldTest plan
/nf:link-daintreewith a Daintree config that has presets for an agent whose vanilla slots haveprovider=claude(notanthropic) — confirm presets are imported, not skipped/nf:link-daintree— confirm idempotency (existing preset-linked slots updated in place, no duplicates)🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes
Chores