# 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
- Upgrade Vite from 5.4.21 to 8.0.8 in web
- Bump @sveltejs/vite-plugin-svelte from 4.0.4 to 7.0.0
- Upgrade vite-plugin-tailwind-purgecss from 0.2.1 to 0.3.5
- Bump AWS SDK Go v2 modules to latest patches
- Update ollama client from 0.20.4 to 0.21.1
- Upgrade go-git from 5.17.2 to 5.18.0
- Bump hasura go-graphql-client from 0.15.1 to 0.16.0
- Update perplexity-go from 2.15.0 to 2.16.1
- Refresh google api, genai, and transitive Go modules
- Add Windows Scoop install section to Chinese README
- Link Scoop install entry in both README tables of contents
- Extend cSpell dictionary with APIM, MSAL, and related terms
- Ignore `.vscode/**` paths during cSpell checks
- Allow `strong` tag in cSpell markdown configuration
- Prefer extracted completed text only when content stays non-empty
- Fall back to accumulated streamed delta text otherwise
- Preserve streamed response text before completed response evaluation
- Add regression test for empty completed output text
- Simulate SSE delta stream followed by blank completion
- Verify Send returns delta text when completion lacks content
- Upgrade `anthropic-sdk-go` dependency from v1.34.0 to v1.37.0
- Add `claude-opus-4-7` to supported models list
- Enable 1M context window beta for Opus 4.7
- Update model beta comments to reflect Opus 4.7 support
- Add `--readpattern` completion to zsh with pattern name suggestions
- Add `--readpattern` to bash completion options list
- Include `--readpattern` in bash pattern completion case handler
- Add `--readpattern` completion to fish with pattern arguments
Adds a new `--readpattern <name>` CLI flag that prints the raw contents
of a named pattern's system.md file to stdout. This makes it easy to
inspect what instructions a pattern sends to the model without having
to navigate the filesystem manually.
The implementation respects custom patterns directories: it checks the
user's custom patterns directory first before falling back to the main
patterns directory, consistent with how all other pattern lookups work.
- Replace container config mount path from root to appuser
- Align setup example with non-root container home directory
- Align pattern usage example with appuser config location
- Align REST API example with updated config mount target
- Update English and Chinese README Docker instructions consistently
- Add SHA256 checksum args for amd64 and arm64 Go tarballs
- Verify downloaded Go tarball integrity via `sha256sum -c`
- Remove root-owned `/root/.config/fabric` directory creation
- Create fabric config directory under non-root `appuser` home
- Set proper ownership on `appuser` config directory with `chown`
- Use `slices.Backward` for reverse iteration in copilot response extraction
- Use `slices.Backward` for reverse iteration in gemini TTS extraction
- Add `slices` import to copilot and gemini packages
- Remove manual index-based reverse loop patterns
- Remove redundant comment about copilot response message type
xAI's Responses API accepts web_search and x_search tool types, but
fabric hardcoded OpenAI's web_search_preview tool name in
buildResponseParams, causing GrokAI plus --search to fail with HTTP 422.
This adds two new fields to openai_compatible.ProviderConfig:
- WebSearchToolName: override the default web_search tool name string
- EnableXSearch: append xAI's x_search tool when search is enabled
Both fields are empty/false by default, preserving backwards
compatibility for all existing providers. GrokAI now sets
WebSearchToolName to "web_search" and EnableXSearch to true.
Tests added in openai_test.go cover the new override paths and
confirm the default provider behavior is unchanged.
Verified with live xAI API key: fabric -V GrokAI --search "query"
now returns grounded results with real source URLs.
Update the Dockerfile to bring it closer to current container best practices while fixing multiple critical CVEs.
This pins Alpine 3.21 and Go 1.25.9 explicitly, installs the Go toolchain in the builder stage so the image no longer depends on an unavailable upstream golang tag, upgrades setuptools to pick up the CVE-2025-47273 fix, refreshes the yt-dlp installation path, and runs the final image as a non-root user.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Upgrade `anthropic-sdk-go` from v1.27.1 to v1.34.0
- Upgrade `ollama` from v0.18.2 to v0.20.4
- Bump AWS SDK v2 packages to latest patch releases
- Update `go-git/v5` from v5.17.1 to v5.17.2
- Upgrade `go-sqlite3` from v1.14.37 to v1.14.42
- Bump `google.golang.org/api` from v0.272.0 to v0.275.0
- Upgrade `google.golang.org/genai` from v1.51.0 to v1.53.0
- Update OpenTelemetry packages from v1.42.0 to v1.43.0
- Bump `golang.org/x` crypto, net, sys, text, and mod packages
- Upgrade `google.golang.org/grpc` from v1.79.3 to v1.80.0