- Use configured Anthropic max tokens as default
- Apply chat option max tokens when provided
- Preserve existing behavior for missing token overrides
- Add tests for default max token selection
- Add tests for explicit max token overrides
- Add `--closed-ok` flag to bypass open-state validation
- Skip mergeability checks when processing closed pull requests
- Store closed pull request allowance in generator configuration
- Guide users toward `--closed-ok` in validation errors
- Record incoming changelog entries for pull requests 2155 and 2156
- Refresh changelog database with new incoming metadata
- Add Claude Sonnet 5 to supported Anthropic models
- Omit sampling parameters for Claude Sonnet 5 requests
- Centralize Anthropic sampling restrictions behind prefix matching
- Enable one-million-token context beta for Claude 5 models
- Remove older Claude 4 aliases from model listings
- Update Anthropic tests for Sonnet 5 beta mapping
- Refresh Go dependencies across AI provider integrations
The extension executor runs commands via 'sh -c' with user-controlled
values interpolated into the command string without escaping. A value
containing shell metacharacters (;, |, $(), backticks) is executed by
the shell, enabling command injection.
User input flows from content processed through a pattern into the
extension system via the InputSentinel, then into formatCommand which
interpolates it into the cmd_template, then into exec.Command('sh', '-c').
No escaping is applied at any point.
Fix: wrap all user-controlled values (value, numbered pipe-split values)
in single quotes with embedded-single-quote escaping before interpolation.
This ensures sh -c treats them as literal arguments, not shell syntax.
The existing tests pass unchanged because the inner sh strips the single
quotes, so the executed command receives the same argument values.
Regression test added: ShellInjectionBlocked verifies that input
'hello; touch /marker' does not create the marker file.
Signed-off-by: John Kearney <johndanielkearney@gmail.com>
- Add persistent cache for provider model discovery results
- Serve stale model caches during discovery failures
- Return concise localized errors for rate-limited model fetches
- Send GitHub Models API version header automatically
- Add Claude Fable 5 Anthropic model support
- Omit sampling parameters for Claude Fable 5
- Update model rate-limit translations across supported locales
- Add tests for cache, rate-limit, and GitHub headers
- Update Go dependencies for AI provider integrations
- Add MiniMax-M3 to the static MiniMax model list as the new default
- Retain MiniMax-M2.7 and MiniMax-M2.7-highspeed as available alternatives
- Remove deprecated older models (M2.5 / M2.5-highspeed / M2.5-lightning / M2 / M2.1 / M2.1-lightning) from the static list
MiniMax-M3 is the new flagship model and becomes the default selection by being placed first in the static model list.
/Users/kayvan/src/fabric/internal/plugins/ai/codex/errors.go:61:5: errors.As can be simplified using AsType[*openaiapi.Error]
/Users/kayvan/src/fabric/internal/cli/flags.go:126:2: NumField/Field loop can simplified using Type.Fields iteration
/Users/kayvan/src/fabric/internal/cli/help.go:145:2: NumField/Field loop can simplified using Type.Fields iteration
/Users/kayvan/src/fabric/internal/cli/help.go:225:2: NumField/Field loop can simplified using Type.Fields iteration
/Users/kayvan/src/fabric/internal/i18n/i18n.go:222:15: strings.Split call can be simplified using strings.Cut
# CHANGES
- Upgrade Go toolchain to 1.26.0
- Bump anthropic-sdk-go to v1.46.0
- Add Claude Opus 4.8 to supported models
- Update AWS SDK and Bedrock service modules
- Bump ollama client to v0.24.0
- Refresh OpenTelemetry, gRPC, and genai dependencies
- Update go-git, sqlite3, and assorted indirect modules
Adds a pattern that generates clean, paste-ready YAML frontmatter for
any text input. Designed for PKM systems such as Obsidian and Logseq
but works for any markdown-based note vault.
Given a document, article, transcript, or rough draft it produces:
title, aliases, tags (specific + hierarchical), type, author,
source, date, summary, and status fields.
Usage:
cat article.md | fabric -p generate_frontmatter
pbpaste | fabric -p generate_frontmatter
yt URL | fabric -p generate_frontmatter
Addresses feature request #1235.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
## CHANGES
- Add Opus 4.7 sampling parameter guard
- Omit temperature and top_p for incompatible models
- Preserve existing TopP and temperature selection behavior
- Cover Opus 4.7 omission with unit test
# CHANGES
- Register `analyze_monetization_opportunities` pattern under ANALYSIS and BUSINESS categories
- Register `extract_affiliate_products` pattern under BUSINESS and EXTRACT categories
- Register `extract_video_commerce_entities` pattern under BUSINESS and EXTRACT categories
- Describe monetization analysis for affiliate, sponsorship, and product revenue
- Describe affiliate product extraction separating sponsored from organic mentions
- Describe commerce entity extraction with category and purchase likelihood
# CHANGES
- Add `analyze_monetization_opportunities` pattern for creator revenue strategy
- Add `extract_affiliate_products` pattern for surfacing affiliate opportunities
- Add `extract_video_commerce_entities` pattern for video transcript commerce
- Register new patterns in `pattern_descriptions.json` with appropriate tags
- Add full pattern extracts to `pattern_extracts.json` for each addition
- Update `pattern_explanations.md` with descriptions of three new patterns