Commit Graph

572 Commits

Author SHA1 Message Date
Shaun Arman
6c825b1c73 fix(ci): remove remaining printf -- calls in Analyze with LLM step
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m34s
Test / frontend-tests (pull_request) Successful in 1m31s
Test / frontend-typecheck (pull_request) Successful in 1m33s
Test / rust-clippy (pull_request) Successful in 3m13s
PR Review Automation / review (pull_request) Failing after 3m50s
Test / rust-tests (pull_request) Successful in 4m27s
2026-05-31 15:18:02 -05:00
Shaun Arman
03cda08a33 fix(ci): fix grep invalid range and printf invalid option in pr-review
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m25s
Test / frontend-typecheck (pull_request) Successful in 1m30s
Test / frontend-tests (pull_request) Successful in 1m28s
Test / rust-clippy (pull_request) Successful in 3m17s
PR Review Automation / review (pull_request) Failing after 4m12s
Test / rust-tests (pull_request) Successful in 4m30s
1. SECRET_PATTERN had [A-Za-z0-9+/_\-!@#] -- backslash-escaped hyphen
   is invalid POSIX ERE; grep parsed it as a range with invalid bounds.
   Fix: move hyphen to end of class: [A-Za-z0-9+/_!@#-].

2. printf -- '---\n' fails with 'invalid option' in bash because the
   builtin does not accept -- as end-of-options. Removed -- from all
   four printf calls.
2026-05-31 15:12:46 -05:00
Shaun Arman
3d6270fb33 fix(ci): replace heredoc with printf to fix YAML block scalar breakage
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m34s
Test / frontend-tests (pull_request) Successful in 1m33s
Test / frontend-typecheck (pull_request) Successful in 1m35s
Test / rust-clippy (pull_request) Successful in 3m10s
PR Review Automation / review (pull_request) Failing after 4m19s
Test / rust-tests (pull_request) Successful in 4m23s
Shell heredocs with unindented bodies (line 1 content) terminate YAML
run: | block scalars. The YAML parser sees the unindented heredoc body
as leaving the block, making the workflow file unparseable -- Gitea
silently stops creating runs for a workflow with invalid YAML.

Replace the single-quoted heredoc prompt with a group of printf + cat
calls. Every line stays properly indented within the YAML block scalar.
Use jq --rawfile instead of --arg to load the prompt from a temp file,
which also eliminates shell escaping hazards for large strings.
2026-05-31 15:06:09 -05:00
Shaun Arman
f8c0d247e8 fix(ci): remove concurrency group that silently dropped pr-review runs
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 2m24s
Test / frontend-typecheck (pull_request) Successful in 2m21s
Test / frontend-tests (pull_request) Successful in 2m19s
Test / rust-clippy (pull_request) Successful in 3m34s
Test / rust-tests (pull_request) Successful in 4m50s
Gitea 1.22 cancel-in-progress does not behave like GitHub Actions: when
a new synchronize event arrives while a review is running, instead of
cancelling the running job and starting a new one, it drops the new run
silently. Remove the concurrency block entirely so every commit to a PR
gets its own review run.
2026-05-31 14:59:58 -05:00
Shaun Arman
4f70fd7fb8 fix(ci): fix backtick command substitution crash in pr-review prompt
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m18s
Test / frontend-tests (pull_request) Successful in 1m29s
Test / frontend-typecheck (pull_request) Successful in 1m33s
Test / rust-clippy (pull_request) Successful in 3m16s
Test / rust-tests (pull_request) Successful in 4m33s
The PROMPT string contained backtick-quoted text for the Evidence field
example. Inside a double-quoted bash string, backticks trigger command
substitution, causing 'exact: command not found' at runtime.

Fix: build the prompt using a single-quoted heredoc (no shell expansion
inside) then splice dynamic values via sed and python3 replace() instead
of shell variable interpolation.
2026-05-31 14:53:21 -05:00
Shaun Arman
93a0c3f1ee fix(ci): add codebase index to prompt; verify findings against full repo
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m19s
Test / frontend-tests (pull_request) Successful in 1m24s
Test / frontend-typecheck (pull_request) Successful in 1m27s
Test / rust-clippy (pull_request) Successful in 3m20s
Test / rust-tests (pull_request) Successful in 4m43s
PR Review Automation / review (pull_request) Failing after 3m11s
Two changes to reduce hallucinations in pr-review:

1. Codebase index (new step "Build codebase index"):
   Generates a compact manifest of everything that EXISTS in the project:
   - All registered Tauri commands (from lib.rs generate_handler![])
   - All TypeScript exports (from tauriCommands.ts)
   - All public Rust fn signatures in commands/
   - All DB migration names
   This index is prepended to the prompt so the model cannot invent
   functions like authenticate_sudo or continue_chat_history that are
   absent from both the index and the file contents.

2. Full-repo verification (updated "Verify findings" step):
   Previously only grepped changed files, which falsely tagged findings
   about unchanged-but-real code as UNVERIFIED. Now runs git ls-files
   to load all tracked source files, so verification only fails for
   code that genuinely does not exist anywhere in the codebase.

If qwen3-coder continues to hallucinate after these changes, swap the
model name on line 184 to bedrock-personal or claude-haiku.
2026-05-31 14:48:32 -05:00
Shaun Arman
cf5bc83b75 fix(ci): add post-generation evidence verification to pr-review
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m42s
Test / frontend-typecheck (pull_request) Successful in 1m42s
Test / frontend-tests (pull_request) Successful in 1m42s
Test / rust-clippy (pull_request) Successful in 3m16s
PR Review Automation / review (pull_request) Failing after 4m33s
Test / rust-tests (pull_request) Successful in 4m54s
qwen3-coder-next fabricates plausible-looking code in its Evidence
blocks instead of quoting from the actual files provided. This adds a
Python verification step that greps each fenced code block against the
real changed files and tags any finding whose evidence cannot be found
as UNVERIFIED.

This is a safeguard, not a fix — the model is fundamentally unreliable
for grounded code review. The longer-term fix is to replace qwen3-coder
with a model that stays grounded to context (Claude Haiku, devstral,
or deepseek-coder-v2 via the LiteLLM proxy / vLLM at 172.0.1.42).
2026-05-31 14:41:47 -05:00
Shaun Arman
6373f0b09c fix(ci): fix secret scrubbing regex that was deleting legitimate code lines
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m51s
Test / frontend-tests (pull_request) Successful in 1m51s
Test / frontend-typecheck (pull_request) Successful in 1m55s
Test / rust-clippy (pull_request) Successful in 3m11s
Test / rust-tests (pull_request) Successful in 4m27s
PR Review Automation / review (pull_request) Successful in 4m47s
The previous regex matched any line containing "password", "token", etc.
near certain punctuation characters. This silently removed function
signatures, variable declarations, and test assertions from the context
sent to the LLM — causing it to hallucinate 3 BLOCKERs per review:
- "function signature missing" (the `password: &str` param was scrubbed)
- "filter body empty" (the filter condition containing "password" was scrubbed)
- "password passed unencrypted" (the decrypt_token call line was scrubbed)

Fix: match actual credential VALUES only:
- Well-known token formats (AKIA..., ghp_..., xox...)
- keyword = "long_quoted_literal" (25+ chars, clearly a value not a name)
- Standalone base64 blob lines (60+ chars, PEM-style)

Never scrub a line just because it contains a credential-related word.
2026-05-31 14:33:44 -05:00
Shaun Arman
1de59db9f0 fix(ci): rewrite pr-review to send full file contents instead of diffs
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m23s
Test / frontend-tests (pull_request) Successful in 1m29s
Test / frontend-typecheck (pull_request) Successful in 1m30s
Test / rust-clippy (pull_request) Successful in 3m14s
PR Review Automation / review (pull_request) Successful in 4m24s
Test / rust-tests (pull_request) Successful in 4m26s
2026-05-31 14:24:56 -05:00
Shaun Arman
f6787accd6 fix(agentic): inline format arg in writeln! to satisfy clippy::uninlined_format_args
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m36s
Test / frontend-typecheck (pull_request) Successful in 1m34s
Test / frontend-tests (pull_request) Successful in 1m37s
Test / rust-clippy (pull_request) Successful in 3m7s
PR Review Automation / review (pull_request) Successful in 4m24s
Test / rust-tests (pull_request) Successful in 4m22s
Rust 1.88 enforces clippy::uninlined_format_args as a style lint under
-D warnings. Change `writeln!(stdin, "{}", password)` to the inline
form `writeln!(stdin, "{password}")`.
2026-05-31 14:19:29 -05:00
Shaun Arman
06956940e2 fix(ci): reduce AI review hallucinations in pr-review workflow
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m46s
Test / frontend-typecheck (pull_request) Successful in 1m49s
Test / frontend-tests (pull_request) Successful in 1m46s
Test / rust-clippy (pull_request) Failing after 3m12s
PR Review Automation / review (pull_request) Successful in 4m37s
Test / rust-tests (pull_request) Successful in 4m34s
Three changes:
- Exclude Cargo.lock/lockfiles from the diff — removes ~163 lines of
  hash noise that waste the review budget with no value
- Raise line cap from 500 to 3000 and add a truncation notice when
  the diff is cut, so the model knows the diff is incomplete
- Harden prompt: require quoted evidence for every finding; add explicit
  self-verification step for missing-identifier claims (search full diff
  before raising); tighten no-hallucinate instruction
2026-05-31 14:08:10 -05:00
Shaun Arman
cf1d5adb83 docs(analysis): document zip-slip safety guarantee in extract_docx_text
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m35s
Test / frontend-typecheck (pull_request) Successful in 2m16s
Test / frontend-tests (pull_request) Successful in 2m13s
Test / rust-clippy (pull_request) Failing after 3m43s
PR Review Automation / review (pull_request) Successful in 4m11s
Test / rust-tests (pull_request) Successful in 4m59s
Only a single hardcoded entry (word/document.xml) is ever accessed from
the ZIP archive; no arbitrary path extraction occurs, so path traversal
attacks cannot apply. Add a comment to make this invariant explicit for
future maintainers.
2026-05-31 13:57:38 -05:00
Shaun Arman
ed2e25f835 chore: update Cargo.lock for lopdf, zip, quick-xml deps 2026-05-31 13:51:08 -05:00
Shaun Arman
f47ec90d05 feat(upload): add safe file extension validation and binary text extraction
- Add extension allowlist (SAFE_TEXT_EXTENSIONS + SAFE_BINARY_EXTENSIONS)
  rejecting unsupported file types at both upload_log_file and
  upload_log_file_by_content entry points
- Add extract_text_content() with PDF text extraction via lopdf and
  DOCX extraction via zip+quick-xml
- Binary files (PDF/DOCX) get extracted text written to .extracted.txt
  for downstream PII detection
- Expand frontend file input accept list and add collapsible
  supported-formats disclosure element
- Add 11 unit tests covering allowlist logic and extraction paths
2026-05-31 13:50:59 -05:00
Shaun Arman
cd67a09a6a fix(ai,search): load history across all conversations; deep search related tables
AI history continuity: Changed the history-load query in chat_message to
JOIN ai_conversations and select by issue_id instead of single conversation_id.
This preserves full context when provider/model changes mid-triage.

Deep search: Added DISTINCT to list_issues SELECT and extended the search
filter with EXISTS subqueries covering ai_messages, resolution_steps,
log_files, and timeline_events. Ensures comprehensive search without
duplicate results.

Includes 11 new unit tests covering both features.
2026-05-31 13:50:29 -05:00
5e596f0cd3 fix(ci): pass release_tag as job output; fix equal-version case; drop git-describe [skip ci] 2026-05-23 22:48:14 +00:00
0c366180fa Merge pull request 'fix(ci): replace tea CLI with curl; honour Cargo.toml version for tags' (#54) from fix/ci-auto-tag-tea into master
Some checks failed
Test / rust-fmt-check (push) Successful in 1m40s
Test / frontend-typecheck (push) Successful in 2m15s
Test / rust-tests (push) Has been cancelled
Test / frontend-tests (push) Has been cancelled
Test / rust-clippy (push) Has been cancelled
Auto Tag / autotag (push) Successful in 6s
Auto Tag / wiki-sync (push) Successful in 7s
Auto Tag / changelog (push) Failing after 35s
Auto Tag / build-macos-arm64 (push) Successful in 3m23s
Auto Tag / build-linux-amd64 (push) Successful in 8m36s
Auto Tag / build-windows-amd64 (push) Successful in 10m10s
Auto Tag / build-linux-arm64 (push) Successful in 10m24s
2026-05-23 22:39:23 +00:00
Shaun Arman
28f579a1ae fix: bump tauri.conf.json version to 0.3.0
Some checks failed
Test / frontend-typecheck (pull_request) Successful in 1m50s
Test / frontend-tests (pull_request) Successful in 1m45s
Test / rust-fmt-check (pull_request) Successful in 1m55s
Test / rust-clippy (pull_request) Successful in 3m24s
Test / rust-tests (pull_request) Successful in 5m38s
PR Review Automation / review (pull_request) Has been cancelled
Cargo.toml was updated to 0.3.0 for the MCP feature but tauri.conf.json
was missed. Bundle artifact filenames are derived from tauri.conf.json,
so all builds were producing files named 0.2.68.
2026-05-23 17:36:38 -05:00
047772d719 fix(ci): replace tea with curl, honour Cargo.toml version [skip ci] 2026-05-23 22:31:45 +00:00
Shaun Arman
75f8a006ea fix(ci): replace tea CLI with curl in changelog steps; read Cargo.toml for version
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m33s
Test / frontend-typecheck (pull_request) Successful in 1m40s
Test / frontend-tests (pull_request) Successful in 1m52s
Test / rust-clippy (pull_request) Successful in 3m25s
PR Review Automation / review (pull_request) Successful in 4m21s
Test / rust-tests (pull_request) Successful in 4m29s
tea is not available in alpine:latest containers. Replace both tea calls
with curl API requests against the Gitea releases endpoint.

Also: auto-tag now reads src-tauri/Cargo.toml version first. If it is
ahead of the latest git tag (major/minor bump), that version is used
directly instead of incrementing the patch.
2026-05-23 17:30:41 -05:00
ea7f484ce6 Merge pull request 'feat(mcp): add MCP Server Support' (#53) from feature/mcp-server-support into master
Some checks failed
Auto Tag / autotag (push) Successful in 7s
Auto Tag / wiki-sync (push) Successful in 7s
Auto Tag / changelog (push) Failing after 1m19s
Test / rust-fmt-check (push) Successful in 1m42s
Test / frontend-tests (push) Successful in 2m3s
Test / frontend-typecheck (push) Successful in 2m7s
Test / rust-clippy (push) Successful in 3m30s
Test / rust-tests (push) Successful in 5m12s
Auto Tag / build-linux-amd64 (push) Successful in 10m1s
Auto Tag / build-windows-amd64 (push) Successful in 12m0s
Auto Tag / build-linux-arm64 (push) Successful in 11m43s
Auto Tag / build-macos-arm64 (push) Failing after 12m46s
Reviewed-on: #53
2026-05-23 22:15:10 +00:00
Shaun Arman
28cfcf1ef4 fix(mcp): add timeouts, delete audit log, OAuth state nonce; improve PR review prompt
All checks were successful
Test / frontend-typecheck (pull_request) Successful in 1m54s
Test / rust-fmt-check (pull_request) Successful in 2m0s
Test / frontend-tests (pull_request) Successful in 1m53s
Test / rust-clippy (pull_request) Successful in 3m33s
PR Review Automation / review (pull_request) Successful in 4m54s
Test / rust-tests (pull_request) Successful in 4m57s
- call_tool: 30s hard timeout via tokio::time::timeout
- discover_server: 60s hard timeout wrapping full connect+discover sequence
- delete_mcp_server: write_audit_event before cascade delete, capturing
  server name, tool count, and resource count
- initiate_mcp_oauth: append cryptographically random state nonce for CSRF
- pr-review.yml: rewrite prompt to require line-quoted evidence for every
  finding and eliminate hallucinated false positives
2026-05-23 17:08:23 -05:00
Shaun Arman
8e1145ec7a fix(ci): use qwen3-coder-next model for PR review
Some checks failed
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
PR Review Automation / review (pull_request) Successful in 6m46s
2026-05-23 16:54:26 -05:00
Shaun Arman
a779756e48 style(mcp): apply rustfmt formatting
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Successful in 1m46s
Test / frontend-typecheck (pull_request) Successful in 1m39s
Test / frontend-tests (pull_request) Successful in 1m39s
Test / rust-clippy (pull_request) Successful in 3m26s
Test / rust-tests (pull_request) Successful in 4m54s
2026-05-23 16:48:26 -05:00
Shaun Arman
3588399dfd feat(mcp): add MCP Server Support with TDD implementation
Some checks failed
Test / rust-fmt-check (pull_request) Failing after 2m12s
Test / frontend-typecheck (pull_request) Successful in 2m23s
Test / frontend-tests (pull_request) Successful in 2m22s
Test / rust-clippy (pull_request) Successful in 3m55s
Test / rust-tests (pull_request) Successful in 5m10s
PR Review Automation / review (pull_request) Failing after 11m6s
Adds full Model Context Protocol (MCP) server management, enabling the
AI assistant to discover and call tools from external MCP servers during
triage conversations.

Backend (Rust):
- rmcp 1.7.0 dependency (client + stdio + Streamable HTTP transports)
- Migration 018: mcp_servers, mcp_tools, mcp_resources tables with
  CHECK constraints for transport_type, auth_type, discovery_status
- src/mcp/ module: models, store, client, adapter, discovery, commands,
  transport/{stdio,http}
- AppState gains mcp_connections: Arc<TokioMutex<HashMap<...>>>
- .setup() hook auto-discovers enabled servers at startup
- 8 new Tauri commands wired into invoke_handler
- execute_mcp_tool_call: PII scan + mandatory audit_log before execution
- Auth values encrypted at rest via integrations::auth::encrypt_token();
  scrubbed before any frontend response

Frontend:
- MCPServers.tsx settings page (/settings/mcp) with server list,
  status badges, Discover Now, Add/Edit modal, enable/disable toggle
- tauriCommands.ts: McpServer, McpTool, McpServerStatus types + 8 cmds
- App.tsx: Plug icon, /settings/mcp route, sidebar nav entry

Tests (TDD): 15 new tests, all green
- 5 migration tests (written before migration, red → green)
- 5 store CRUD + encryption tests
- 5 adapter sanitization + conversion tests

Verification: 185/185 Rust, 94/94 Vitest, clippy -D warnings: 0
2026-05-23 16:23:48 -05:00
Shaun Arman
85c67cfbe9 docs: update CHANGELOG.md for v0.2.71
Some checks failed
Test / rust-clippy (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Test / rust-fmt-check (push) Has been cancelled
Test / frontend-typecheck (push) Has been cancelled
Test / frontend-tests (push) Has been cancelled
Auto Tag / autotag (push) Successful in 1m6s
Auto Tag / wiki-sync (push) Successful in 1m9s
Auto Tag / changelog (push) Failing after 39s
Auto Tag / build-macos-arm64 (push) Successful in 4m35s
Auto Tag / build-linux-amd64 (push) Successful in 9m17s
Auto Tag / build-linux-arm64 (push) Successful in 11m7s
Auto Tag / build-windows-amd64 (push) Successful in 11m32s
2026-04-29 21:37:16 -05:00
Shaun Arman
43099f9706 fix(auto-tag): use tea CLI instead of hardcoded tokens
Some checks failed
Auto Tag / autotag (push) Successful in 7s
Auto Tag / wiki-sync (push) Successful in 8s
Auto Tag / changelog (push) Failing after 1m9s
Test / rust-fmt-check (push) Successful in 1m29s
Test / frontend-tests (push) Successful in 1m31s
Test / frontend-typecheck (push) Successful in 1m31s
Auto Tag / build-macos-arm64 (push) Successful in 3m25s
Test / rust-clippy (push) Successful in 3m40s
Auto Tag / build-windows-amd64 (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Has been cancelled
Auto Tag / build-linux-arm64 (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
2026-04-29 21:32:47 -05:00
ba3ae80b7d chore: update CHANGELOG.md for v0.2.66 [skip ci] 2026-04-30 02:16:42 +00:00
Shaun Arman
4380830052 Merge origin/master - keep local CHANGELOG with v0.2.66-0.2.71
Some checks failed
Auto Tag / autotag (push) Successful in 7s
Auto Tag / wiki-sync (push) Successful in 7s
Test / rust-fmt-check (push) Successful in 1m12s
Test / frontend-typecheck (push) Successful in 1m18s
Test / frontend-tests (push) Successful in 1m21s
Auto Tag / changelog (push) Successful in 1m8s
Test / rust-clippy (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Auto Tag / build-macos-arm64 (push) Successful in 3m22s
Auto Tag / build-linux-amd64 (push) Successful in 9m31s
Auto Tag / build-windows-amd64 (push) Successful in 11m40s
Auto Tag / build-linux-arm64 (push) Successful in 11m49s
2026-04-29 21:15:02 -05:00
Shaun Arman
2b0aeec340 docs: update CHANGELOG.md for v0.2.69-v0.2.71 2026-04-29 21:14:13 -05:00
78d450b5b1 chore: update CHANGELOG.md for v0.2.66 [skip ci] 2026-04-30 02:06:31 +00:00
Shaun Arman
cb185e1e0d docs: update CHANGELOG.md for v0.2.68
Some checks failed
Auto Tag / build-linux-arm64 (push) Blocked by required conditions
Auto Tag / autotag (push) Successful in 1m12s
Auto Tag / wiki-sync (push) Successful in 1m9s
Test / rust-fmt-check (push) Successful in 1m49s
Auto Tag / changelog (push) Successful in 1m6s
Test / frontend-typecheck (push) Successful in 1m35s
Test / frontend-tests (push) Successful in 1m26s
Auto Tag / build-macos-arm64 (push) Successful in 3m33s
Test / rust-clippy (push) Successful in 4m26s
Test / rust-tests (push) Successful in 5m31s
Auto Tag / build-linux-amd64 (push) Successful in 7m55s
Auto Tag / build-windows-amd64 (push) Has been cancelled
2026-04-29 21:04:16 -05:00
f29dd03207 chore: update CHANGELOG.md for v0.2.66 [skip ci] 2026-04-30 02:00:35 +00:00
Shaun Arman
e043da8b89 fix(auto-tag): use correct tag range for release notes
Some checks failed
Auto Tag / autotag (push) Successful in 7s
Auto Tag / wiki-sync (push) Successful in 6s
Auto Tag / changelog (push) Successful in 1m16s
Test / frontend-typecheck (push) Successful in 1m24s
Test / rust-fmt-check (push) Successful in 1m30s
Test / frontend-tests (push) Successful in 1m27s
Auto Tag / build-macos-arm64 (push) Successful in 2m49s
Test / rust-clippy (push) Successful in 4m13s
Auto Tag / build-linux-amd64 (push) Has been cancelled
Auto Tag / build-windows-amd64 (push) Has been cancelled
Auto Tag / build-linux-arm64 (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
2026-04-29 20:59:40 -05:00
c53835ec9b chore: update CHANGELOG.md for v0.2.66 [skip ci] 2026-04-30 01:36:41 +00:00
ffb8d15187 Merge pull request 'feat(ai): add devops-incident-responder agent with domain auto-detection' (#52) from feature/agent-system into master
Some checks failed
Auto Tag / autotag (push) Successful in 7s
Auto Tag / wiki-sync (push) Successful in 7s
Test / rust-fmt-check (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Test / rust-clippy (push) Has been cancelled
Test / frontend-tests (push) Has been cancelled
Test / frontend-typecheck (push) Has been cancelled
Auto Tag / changelog (push) Successful in 1m4s
Auto Tag / build-macos-arm64 (push) Successful in 3m14s
Auto Tag / build-linux-amd64 (push) Successful in 9m32s
Auto Tag / build-linux-arm64 (push) Successful in 11m50s
Auto Tag / build-windows-amd64 (push) Successful in 11m59s
Reviewed-on: #52
2026-04-30 01:34:53 +00:00
Shaun Arman
0b7f1cd9ab feat(ai): add devops-incident-responder agent with domain auto-detection
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m29s
Test / frontend-typecheck (pull_request) Successful in 1m28s
Test / frontend-tests (pull_request) Successful in 1m30s
Test / rust-clippy (pull_request) Successful in 3m33s
Test / rust-tests (pull_request) Successful in 4m54s
PR Review Automation / review (pull_request) Failing after 8m49s
- Implement AgentRegistry system with devops-incident-responder agent
- Add domain detection based on conversation keywords
- Inject devops-incident-responder as primary system prompt
- Auto-switch domain prompts silently when context shifts
- Fix version update script to handle JSON format correctly
- Always display version in bottom-left corner
- Add release notes fallback to git commits if CHANGELOG empty

This implements the full devops-incident-responder agent as the primary
system prompt, with domain-specific SME prompts layered on top based on
conversation content analysis. The version display bug is fixed by removing
the collapsed condition, and release notes now have a fallback mechanism.
2026-04-29 19:41:47 -05:00
c0d482ace7 chore: update CHANGELOG.md for v0.2.66 [skip ci] 2026-04-20 01:26:00 +00:00
5a12718566 Merge pull request 'fix(test): await async data in auditLog test' (#51) from fix/audit-log-test into master
Some checks failed
Auto Tag / autotag (push) Successful in 15s
Auto Tag / wiki-sync (push) Successful in 15s
Test / rust-fmt-check (push) Successful in 1m4s
Test / frontend-typecheck (push) Successful in 1m22s
Auto Tag / changelog (push) Successful in 53s
Test / frontend-tests (push) Successful in 1m29s
Test / rust-clippy (push) Successful in 8m5s
Test / rust-tests (push) Successful in 11m30s
Auto Tag / build-linux-amd64 (push) Successful in 16m13s
Auto Tag / build-linux-arm64 (push) Successful in 17m54s
Auto Tag / build-windows-amd64 (push) Successful in 18m51s
Auto Tag / build-macos-arm64 (push) Failing after 11m59s
2026-04-20 01:21:55 +00:00
Shaun Arman
4a0c7957ec fix(test): await async data in auditLog test to prevent race condition
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m11s
Test / frontend-typecheck (pull_request) Successful in 1m23s
Test / frontend-tests (pull_request) Successful in 1m33s
PR Review Automation / review (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
2026-04-19 20:21:37 -05:00
12a76b4dd8 chore: update CHANGELOG.md for v0.2.66 [skip ci] 2026-04-20 00:47:35 +00:00
Shaun Arman
0e6fd09455 chore: retrigger auto-tag pipeline
Some checks failed
Auto Tag / autotag (push) Successful in 6s
Auto Tag / wiki-sync (push) Successful in 5s
Auto Tag / changelog (push) Successful in 51s
Test / rust-fmt-check (push) Successful in 1m10s
Test / frontend-typecheck (push) Successful in 1m28s
Test / frontend-tests (push) Failing after 1m38s
Auto Tag / build-macos-arm64 (push) Successful in 4m18s
Test / rust-clippy (push) Successful in 7m56s
Test / rust-tests (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Successful in 19m44s
Auto Tag / build-linux-arm64 (push) Successful in 22m7s
Auto Tag / build-windows-amd64 (push) Successful in 23m18s
2026-04-19 19:46:34 -05:00
Shaun Arman
b7f348bf34 chore: retrigger build pipeline 2026-04-19 19:42:39 -05:00
Shaun Arman
7234704636 chore: trigger build pipeline 2026-04-19 19:40:02 -05:00
06b0c10b17 Merge pull request 'docs: add v0.2.66 changelog entry' (#50) from chore/trigger-build-2 into master 2026-04-20 00:34:55 +00:00
Shaun Arman
ab231b6564 docs: add v0.2.66 changelog entry
Some checks failed
PR Review Automation / review (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
2026-04-19 19:33:52 -05:00
8b828fe4c3 Merge pull request 'docs: clarify changelog exclusion criteria' (#49) from chore/trigger-build into master
Reviewed-on: #49
2026-04-20 00:29:55 +00:00
Shaun Arman
27193c91e6 docs: clarify changelog exclusion criteria
All checks were successful
Test / rust-fmt-check (pull_request) Successful in 1m5s
Test / frontend-typecheck (pull_request) Successful in 1m15s
Test / frontend-tests (pull_request) Successful in 1m22s
PR Review Automation / review (pull_request) Successful in 3m46s
Test / rust-clippy (pull_request) Successful in 4m17s
Test / rust-tests (pull_request) Successful in 5m29s
2026-04-19 19:20:57 -05:00
cb542d7f22 Merge pull request 'fix(ci): switch PR review to liteLLM + add push trigger to tests' (#46) from fix/litellm-pr-review into master
Reviewed-on: #46
2026-04-19 23:56:22 +00:00
Shaun Arman
d066e71eeb fix(ci): switch PR review from Ollama to liteLLM (qwen2.5-72b)
Some checks failed
Test / rust-fmt-check (pull_request) Successful in 1m9s
Test / frontend-typecheck (pull_request) Successful in 1m17s
Test / frontend-tests (pull_request) Successful in 1m22s
Test / rust-clippy (pull_request) Successful in 4m19s
Test / rust-tests (pull_request) Successful in 5m46s
PR Review Automation / review (pull_request) Failing after 1m15s
Replace direct Ollama API calls with liteLLM proxy at
172.0.0.29:11434 using qwen2.5-72b (72B VLLM model). Increase
timeouts to 300s for larger model inference. Reuses existing
OLLAMA_API_KEY secret for liteLLM auth.

Also add push-to-master trigger on test.yml so merges to master
run the full CI suite (previously only pull_request events triggered).
2026-04-19 18:41:54 -05:00