3435 Commits

Author SHA1 Message Date
github-actions[bot]
fb407ccfed chore(release): Update version to v1.4.384 v1.4.384 2026-01-19 16:22:15 +00:00
Kayvan Sylvan
c9d4c19ef8 Merge pull request #1944 from ksylvan/1033_infermatic_provider
Add Infermatic AI Provider Support
2026-01-19 08:19:57 -08:00
Kayvan Sylvan
f4e7489d42 chore: incoming 1944 changelog entry 2026-01-19 08:16:05 -08:00
Kayvan Sylvan
7012acd12a fix: replace go-git status API with native git CLI for worktree compatibility
- Replace go-git status API with native `git status --porcelain` command
- Fix worktree detection issues caused by go-git library bugs
- Simplify `IsWorkingDirectoryClean` to use CLI output parsing
- Simplify `GetStatusDetails` to return raw porcelain output
- Use native `git rev-parse HEAD` to get commit hash after commit
- Remove unused `os` and `filepath` imports from walker.go
- Remove complex worktree file existence checking logic
2026-01-19 08:15:22 -08:00
Kayvan Sylvan
387610bcf8 Add Infermatic provider test case
Adds test coverage for the Infermatic AI provider in
TestCreateClient to verify the provider exists and
creates a valid client.

Part of #1033: Add Infermatic AI provider support

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 06:38:38 -08:00
Kayvan Sylvan
9e1ee4d48e WIP: Phase 1 - Add Infermatic provider to ProviderMap
Issue: #1033
Phase: 1 of 2
Status: Pending verification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 06:25:31 -08:00
github-actions[bot]
8706fbba3b chore(release): Update version to v1.4.383 v1.4.383 2026-01-18 18:21:20 +00:00
Kayvan Sylvan
b169576cd8 Merge pull request #1943 from ksylvan/fabric-ollama-server-ignores-context-window
fix: Ollama server now respects the default context window
2026-01-18 10:18:39 -08:00
Kayvan Sylvan
da34f5823a chore: refactor parseOllamaNumCtx for cleaner errors and type fixes
### CHANGES
- Remove value from fractional part error message
- Update overflow check to use float64 for consistency
- Ensure error messages omit unnecessary details for clarity
2026-01-18 10:12:18 -08:00
Kayvan Sylvan
14358a1c1b fix: Edit comments per review comments 2026-01-18 09:59:35 -08:00
Kayvan Sylvan
ce74e881be fix: add validation for NaN, Inf, and negative values in parseOllamaNumCtx
## CHANGES

- Add NaN and Infinity validation for float64 values
- Add NaN and Infinity validation for float32 values
- Add negative value check for int64 type
- Add negative value check for json.Number type
- Add comprehensive test cases for special float values
- Add test cases for negative int64 and json.Number inputs
- Update line reference comments for validation checks
2026-01-18 07:42:10 -08:00
Kayvan Sylvan
a4399000cf chore: incoming 1943 changelog entry 2026-01-18 01:46:28 -08:00
Kayvan Sylvan
6f804d7e46 fix: changes based on PR review 2026-01-18 01:46:09 -08:00
Kayvan Sylvan
8c015b09a1 test: add comprehensive tests for parseOllamaNumCtx and simplify error handling
- Add comprehensive unit tests for `parseOllamaNumCtx` function
- Remove redundant negative value checks in float parsing
- Simplify error messages to avoid exposing internal type info
- Streamline error response in `ollamaChat` handler
- Add helper functions for string containment in tests
- Cover edge cases including overflow, invalid types, and boundaries
2026-01-18 01:34:03 -08:00
Kayvan Sylvan
03108cc69d format fix 2026-01-18 01:02:46 -08:00
Kayvan Sylvan
556e098fc1 fix: Ollama server now respects the default context window
This commit fixes the Ollama server /api/chat endpoint which was ignoring
the client-provided num_ctx parameter and global DEFAULT_MODEL_CONTEXT_LENGTH,
always using a hardcoded value of 2048 tokens.

- Add parseOllamaNumCtx() function in ollama.go with type-safe extraction
  supporting 6 numeric types (float64, float32, int, int64, json.Number, string)
- Extract num_ctx from client request options in ollamaChat()
- Add ModelContextLength field to ChatRequest struct in chat.go
- Replace hardcoded 2048 with request.ModelContextLength in GetChatter() call

- Platform-aware integer overflow protection for 32-bit systems
- DoS protection via 1,000,000 token maximum limit
- Long string truncation in error messages (50 char limit)
- Sanitized error messages (no internal stdlib details exposed)

- Missing/null num_ctx returns (0, nil) to trigger existing default fallback
- Zero API contract changes
- Invalid values return 400 Bad Request with clear error messages

- All existing tests pass
- Compilation successful with no errors or warnings

Fixes #1942
2026-01-18 00:47:37 -08:00
github-actions[bot]
9a4ef0e8f3 chore(release): Update version to v1.4.382 v1.4.382 2026-01-17 17:34:41 +00:00
Kayvan Sylvan
2eafa750b2 Merge pull request #1941 from ksylvan/kayvan/fix-suggest-pattern
Add `greybeard_secure_prompt_engineer` to metadata, also remove duplicate json data file.
2026-01-17 09:32:21 -08:00
Kayvan Sylvan
935c0cab48 chore: incoming 1941 changelog entry 2026-01-17 09:29:46 -08:00
Kayvan Sylvan
1cf346ee31 feat: add greybeard_secure_prompt_engineer pattern for secure prompts
- Add greybeard_secure_prompt_engineer pattern to create secure system prompts
- Update pattern explanations and renumber existing entries
- Refactor build process to use npm hooks for copying JSON files
- Remove manual web static file copying from extract script
- Update .gitignore to exclude generated data and tmp directories
- Modify suggest_pattern categories to include new security pattern
- Delete redundant web static data file, rely on build hooks
2026-01-17 09:16:46 -08:00
github-actions[bot]
8c9c3135ab chore(release): Update version to v1.4.381 v1.4.381 2026-01-17 14:50:18 +00:00
Kayvan Sylvan
42392b0717 Merge pull request #1940 from ksylvan/kayvan/fix-ollama-serve-flow
Rewrite Ollama chat handler to support proper streaming responses
2026-01-17 06:47:56 -08:00
Kayvan Sylvan
2cb2a76200 feat: add support for pattern variables in Ollama API requests
## CHANGES

- Add `Variables` field to `OllamaRequestBody` struct for direct variable passing
- Change `Options` field from empty struct to flexible `map[string]any` type
- Extract variables from top-level `Variables` field or nested `Options.variables`
- Support parsing variables as JSON string or map format
- Pass extracted variables to `PromptRequest` for single message chats
- Pass extracted variables to `PromptRequest` for multi-message chats
- Add `omitempty` JSON tags to optional fields
2026-01-17 06:35:41 -08:00
Kayvan Sylvan
0f466a32bc chore: incoming 1940 changelog entry 2026-01-17 05:35:54 -08:00
Kayvan Sylvan
c7c9d73c01 fix: return string error payloads and fail non-stream empty upstream
## CHANGES
- Serialize JSON error field as `err.Error()` string
- Treat non-stream upstream empty content as 502 error
- Keep streaming mode tolerant when upstream returns no content
2026-01-17 05:34:38 -08:00
Kayvan Sylvan
61e8871396 fix: set NDJSON header only after successful upstream response
## CHANGES
- Move NDJSON `Content-Type` header after status validation
- Avoid setting stream headers on upstream error responses
- Log warning when upstream returns no streamed content
- Keep duration timing consistent across response paths
- Preserve existing streaming and non-streaming response behavior
2026-01-17 05:03:03 -08:00
Kayvan Sylvan
04fef11e17 fix: harden Ollama streaming flush and align metric counters with int64
## CHANGES
- Use int64 for prompt and eval count fields
- Skip sending secondary error message on stream write failure
- Allow non-http schemes and validate host only for address
- Flush response only when writer implements http.Flusher
2026-01-17 04:55:49 -08:00
Kayvan Sylvan
c50b9a61de fix: propagate request context and close Ollama stream on errors
## CHANGES
- Use Gin request context for outbound HTTP calls
- Send final stream chunk when response write fails
- Capture timing duration once for consistent metrics
- Build final Ollama response via shared helper function
- Validate Fabric base URL scheme is http/https only
- Add clarifying documentation comments for URL and writers
2026-01-17 04:21:41 -08:00
Kayvan Sylvan
665267842f fix: align Ollama duration fields to int64 nanosecond precision
## CHANGES
- Use int64 for `load_duration` JSON field values
- Use int64 for `prompt_eval_duration` JSON field values
- Remove lossy int casts when assigning nanosecond durations
- Keep duration payloads consistent with `total_duration` precision
- Prevent potential overflow on long-running request timing
2026-01-17 04:01:26 -08:00
Kayvan Sylvan
e2b63ddc2f fix: improve SSE scan errors and validate bare Fabric address inputs
## CHANGES
- Send detailed SSE stream scan errors in responses
- Detect token-too-long and return clear buffer-limit message
- Unify streaming and JSON error messaging for scan failures
- Validate bare Fabric address using URL parsing
- Reject bare addresses missing host or hostname
- Disallow path components in bare Fabric addresses
- Trim trailing slash from validated Fabric chat URL
- Add tests covering invalid bare addresses with paths
2026-01-17 03:32:07 -08:00
Kayvan Sylvan
97b6b76dd2 fix: reject hostless Fabric chat URLs like https://:8080
## CHANGES
- Validate parsed URL host not start with colon
- Return explicit error for missing hostname in URL
- Update unit test to expect error on port-only host
- Prevent accidental acceptance of malformed `https://:port` addresses
2026-01-17 03:06:17 -08:00
Kayvan Sylvan
f3eed4593f chore: incoming 1940 changelog entry 2026-01-17 02:32:12 -08:00
Kayvan Sylvan
29a32a8439 fix: validate Fabric chat URL host and tidy Ollama responses
## CHANGES
- Set NDJSON content type before checking upstream errors
- Reject parsed URLs that omit a hostname
- Remove hardcoded eval count placeholders from responses
- Add unit tests for Fabric chat URL builder
- Cover colon-port, host:port, and IP address inputs
2026-01-17 02:31:46 -08:00
Kayvan Sylvan
ae6d4d1fb3 fix: handle upstream non-2xx and return stringified error payloads
## CHANGES
- Convert JSON error responses to use err.Error()
- Detect upstream Fabric non-2xx status before scanning
- Read and log upstream error body when possible
- Return upstream status error message for non-stream mode
- Stream error message via NDJSON when streaming enabled
- Set NDJSON Content-Type header before first streaming write
- Remove per-chunk header setting during streaming output
2026-01-17 01:37:20 -08:00
Kayvan Sylvan
8310695e1a fix(ollama): address Copilot review feedback for error handling
Addresses all 8 Copilot review comments on PR #1940:

Critical fixes:
- Replace log.Fatal with proper HTTP error response to prevent
  server crashes on request failures
- Add streaming-aware error handling to maintain consistent
  response format (prevents mixing JSON with NDJSON)

Error messaging improvements:
- Replace "testing endpoint" placeholders with descriptive
  error messages
- Add clear context for unmarshal and scanning failures

Protocol compliance:
- Set Content-Type: application/x-ndjson for streaming responses
- Ensure all error paths respect stream vs non-stream mode

Code cleanup:
- Remove commented-out dead code

Tested both streaming and non-streaming modes successfully.
2026-01-17 01:19:37 -08:00
Kayvan Sylvan
4fa6abf0df chore: incoming 1940 changelog entry 2026-01-17 00:58:40 -08:00
Kayvan Sylvan
e318a939aa refactor: rewrite Ollama chat handler to support proper streaming responses
- Add `json:"-"` tag to exclude UpdateChan from JSON serialization
- Extract URL building logic into dedicated `buildFabricChatURL` helper function
- Replace single-read body parsing with streaming `bufio.Scanner` approach
- Add proper SSE data prefix parsing for fabric response format
- Implement real-time streaming with `writeOllamaResponse` helper function
- Add `writeOllamaResponseStruct` for consistent JSON response writing
- Handle both streaming and non-streaming response modes separately
- Add proper error handling for fabric error response types
- Ensure response body is properly closed with defer statement
2026-01-17 00:52:29 -08:00
github-actions[bot]
e3c2723988 chore(release): Update version to v1.4.380 v1.4.380 2026-01-16 01:05:53 +00:00
Kayvan Sylvan
198b5af12c Merge pull request #1936 from ksylvan/kayvan/msft_copilot_vendor_by_claude_opus_4_5
New Vendor: Microsoft Copilot
2026-01-15 17:03:30 -08:00
Kayvan Sylvan
c66aad556b chore: incoming 1936 changelog entry 2026-01-15 16:59:51 -08:00
Kayvan Sylvan
9f8a2531ca docs: README update for Microsoft Copilot vendor integration 2026-01-15 16:59:28 -08:00
Kayvan Sylvan
a2370a0e3b chore: Note in the guide about restricted env + modernize fixes 2026-01-15 15:16:40 -08:00
Kayvan Sylvan
1af6418486 chore: incoming 1936 changelog entry 2026-01-15 15:04:40 -08:00
Kayvan Sylvan
f50a7568d1 Merge branch 'main' into kayvan/msft_copilot_vendor_by_claude_opus_4_5 2026-01-15 15:00:42 -08:00
Kayvan Sylvan
83d9d0b336 Merge pull request #2 from tomstetson/fix/copilot-sendstream-interface
fix: update Copilot SendStream to use domain.StreamUpdate
2026-01-15 14:54:51 -08:00
github-actions[bot]
52db4f1961 chore(release): Update version to v1.4.379 v1.4.379 2026-01-15 22:27:14 +00:00
Kayvan Sylvan
36a22aa432 Merge pull request #1935 from danielmiessler/dependabot/npm_and_yarn/web/npm_and_yarn-0463113060
chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates
2026-01-15 14:23:31 -08:00
Kayvan Sylvan
487199394b chore: fis dependabot attribution 2026-01-15 14:15:43 -08:00
Kayvan Sylvan
3a1d7757fb chore: incoming 1935 changelog entry 2026-01-15 14:12:59 -08:00
Tom Stetson
d98ad5290c fix: update Copilot SendStream to use domain.StreamUpdate
Update the SendStream interface to match the current Vendor interface
which now uses chan domain.StreamUpdate instead of chan string.

Changes:
- Update SendStream signature to use chan domain.StreamUpdate
- Update sendChatMessageStream signature accordingly
- Update parseSSEStream signature accordingly
- Wrap all channel sends with domain.StreamUpdate{Type: StreamTypeContent}

This fixes the build error introduced when the streaming interface was
updated to support metadata like token usage alongside content.
2026-01-15 14:50:59 -05:00