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
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
...
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
...
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
...
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
...
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
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
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
...
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
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
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
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
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
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
...
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
...
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
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
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
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
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
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)
...
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
257b2fb9c5
Merge pull request 'feat: incident response methodology + UTC timeline tracking' ( #45 ) from feat/incident-response-timeline into master
...
Reviewed-on: #45
2026-04-19 23:34:34 +00:00
Shaun Arman
d715ba0b25
docs: update wiki for timeline events and incident response methodology
...
Test / rust-fmt-check (pull_request) Successful in 1m12s
Test / frontend-typecheck (pull_request) Successful in 1m17s
Test / frontend-tests (pull_request) Successful in 1m25s
PR Review Automation / review (pull_request) Failing after 2m45s
Test / rust-clippy (pull_request) Successful in 4m26s
Test / rust-tests (pull_request) Successful in 5m42s
- Database.md: document timeline_events table (migration 017), event
types, dual-write strategy, correct migration count to 17
- IPC-Commands.md: document get_timeline_events, updated
add_timeline_event with metadata, chat_message system_prompt param
- Architecture.md: document incident response methodology integration,
5-phase framework, system prompt injection, correct migration count
2026-04-19 18:26:21 -05:00
Shaun Arman
8b0cbc3ce8
fix: harden timeline event input validation and atomic writes
...
Address security review findings:
- Validate event_type against whitelist of 7 known types (M-3)
- Validate metadata is valid JSON and under 10KB (M-2, M-4)
- Include metadata in audit log details (M-2)
- Wrap timeline insert + audit write + timestamp update in a
SQLite transaction for atomicity (M-5)
- Fix TypeScript TimelineEvent interface: add issue_id, metadata
fields and correct created_at type to string (L-3)
- Add timeline_events to IssueDetail TypeScript interface (L-4)
2026-04-19 18:25:53 -05:00
Shaun Arman
13c4969e31
feat: wire incident response methodology into AI and record triage events
...
Add INCIDENT_RESPONSE_FRAMEWORK to domainPrompts.ts and append it to
all 17 domain prompts via getDomainPrompt(). Add system_prompt param
to chat_message command so frontend can inject domain expertise. Record
UTC timeline events (triage_started, log_uploaded, why_level_advanced,
root_cause_identified, rca_generated, postmortem_generated,
document_exported) at key moments with non-blocking calls.
Update tauriCommands.ts with getTimelineEventsCmd, optional metadata on
addTimelineEventCmd, and systemPrompt on chatMessageCmd.
12 new frontend tests (9 domain prompts, 3 timeline events).
2026-04-19 18:13:47 -05:00
Shaun Arman
79a623dbb2
feat: populate RCA and postmortem docs with real timeline data
...
Add format_event_type() and calculate_duration() helpers to convert
raw timeline events into human-readable tables and metrics. RCA now
includes an Incident Timeline section and Incident Metrics (event
count, duration, time-to-root-cause). Postmortem replaces placeholder
timeline rows with real events, calculates impact duration, and
auto-populates What Went Well from evidence.
10 new Rust tests covering timeline rendering, duration calculation,
and event type formatting.
2026-04-19 18:13:30 -05:00
Shaun Arman
107fee8853
feat: add timeline_events table, model, and CRUD commands
...
- Add migration 017_create_timeline_events with indexes
- Update TimelineEvent struct with issue_id, metadata, UTC string timestamps
- Add TimelineEvent::new() constructor with UUIDv7
- Add timeline_events field to IssueDetail
- Rewrite add_timeline_event to write to new table + audit_log (dual-write)
- Add get_timeline_events command for ordered retrieval
- Update get_issue to load timeline_events
- Update delete_issue to clean up timeline_events
- Register get_timeline_events in generate_handler
- Add migration tests for table, indexes, and cascade delete
- Fix flaky derive_aes_key test (env var race condition in parallel tests)
2026-04-19 18:02:38 -05:00
6d105a70ad
chore: update CHANGELOG.md for v0.2.66 [skip ci]
2026-04-15 02:11:31 +00:00
ca56b583c5
Merge pull request 'feat: implement dynamic versioning from Git tags' ( #42 ) from fix/version-dynamic-build into master
...
Auto Tag / autotag (push) Successful in 12s
Auto Tag / wiki-sync (push) Successful in 13s
Auto Tag / changelog (push) Successful in 41s
Auto Tag / build-linux-amd64 (push) Successful in 13m51s
Auto Tag / build-linux-arm64 (push) Successful in 15m41s
Auto Tag / build-windows-amd64 (push) Successful in 16m36s
Auto Tag / build-macos-arm64 (push) Successful in 2m22s
Reviewed-on: #42
2026-04-15 02:10:10 +00:00
Shaun Arman
8c35e91aef
Merge branch 'master' into fix/version-dynamic-build
Test / rust-fmt-check (pull_request) Successful in 1m8s
Test / frontend-typecheck (pull_request) Successful in 1m17s
Test / frontend-tests (pull_request) Successful in 1m23s
PR Review Automation / review (pull_request) Failing after 2m11s
Test / rust-clippy (pull_request) Successful in 6m11s
Test / rust-tests (pull_request) Successful in 9m7s
2026-04-14 21:09:11 -05:00
Shaun Arman
1055841b6f
fix: remove invalid --locked flag from cargo commands and fix format string
...
Test / rust-fmt-check (pull_request) Successful in 1m3s
PR Review Automation / review (pull_request) Successful in 2m54s
Test / frontend-typecheck (pull_request) Successful in 1m14s
Test / frontend-tests (pull_request) Successful in 1m25s
Test / rust-clippy (pull_request) Successful in 8m1s
Test / rust-tests (pull_request) Successful in 10m11s
- Remove --locked flag from cargo fmt, clippy, and test commands in CI
- Update build.rs to use Rust 2021 direct variable interpolation in format strings
2026-04-14 20:50:47 -05:00
f38ca7e2fc
chore: update CHANGELOG.md for v0.2.63 [skip ci]
2026-04-15 01:45:29 +00:00
a9956a16a4
Merge pull request 'feat(integrations): implement query expansion for semantic search' ( #44 ) from feature/integration-search-expansion into master
...
Auto Tag / autotag (push) Successful in 7s
Auto Tag / wiki-sync (push) Successful in 6s
Auto Tag / changelog (push) Successful in 43s
Auto Tag / build-linux-amd64 (push) Successful in 15m51s
Auto Tag / build-linux-arm64 (push) Successful in 18m51s
Auto Tag / build-windows-amd64 (push) Successful in 19m44s
Auto Tag / build-macos-arm64 (push) Has been cancelled
Reviewed-on: #44
2026-04-15 01:44:42 +00:00
Shaun Arman
bc50a78db7
fix: correct WIQL syntax and escape_wiql implementation
...
Test / rust-fmt-check (pull_request) Successful in 10s
Test / frontend-typecheck (pull_request) Successful in 1m11s
Test / frontend-tests (pull_request) Successful in 1m12s
PR Review Automation / review (pull_request) Successful in 3m6s
Test / rust-clippy (pull_request) Successful in 3m49s
Test / rust-tests (pull_request) Successful in 5m4s
- Replace CONTAINS with ~ operator (correct WIQL syntax for text matching)
- Remove escaping of ~, *, ? which are valid WIQL wildcards
- Update tests to reflect correct escape_wiql behavior
2026-04-14 20:38:21 -05:00
Shaun Arman
e6d1965342
security: address all issues from automated PR review
...
Test / rust-fmt-check (pull_request) Successful in 10s
Test / frontend-typecheck (pull_request) Successful in 1m9s
Test / frontend-tests (pull_request) Successful in 1m13s
PR Review Automation / review (pull_request) Successful in 2m58s
Test / rust-clippy (pull_request) Successful in 3m50s
Test / rust-tests (pull_request) Successful in 5m12s
- Add missing CQL escaping for &, |, +, - characters
- Improve escape_wiql() to escape more dangerous characters: ", \, (, ), ~, *, ?, ;, =
- Sanitize HTML in excerpts using strip_html_tags() to prevent XSS
- Add unit tests for escape_wiql, escape_cql, canonicalize_url functions
- Document expand_query() behavior (always returns at least original query)
- All tests pass (158/158), cargo fmt and clippy pass
2026-04-14 20:26:05 -05:00
Shaun Arman
708e1e9c18
security: fix query expansion issues from PR review
...
Test / rust-fmt-check (pull_request) Successful in 12s
Test / frontend-typecheck (pull_request) Successful in 1m11s
Test / frontend-tests (pull_request) Successful in 1m16s
PR Review Automation / review (pull_request) Successful in 3m0s
Test / rust-clippy (pull_request) Successful in 3m50s
Test / rust-tests (pull_request) Successful in 5m0s
- Use MAX_EXPANDED_QUERIES constant in confluence_search.rs instead of hardcoded 3
- Improve escape_wiql() to escape more dangerous characters: ", \, (, ), ~, *, ?, ;, =
- Fix logging to show expanded_query instead of search_url in confluence_search.rs
All tests pass (142/142), cargo fmt and clippy pass.
2026-04-14 20:07:59 -05:00
Shaun Arman
5b45c6c418
fix(integrations): security and correctness improvements
...
Test / rust-fmt-check (pull_request) Successful in 12s
Test / frontend-typecheck (pull_request) Successful in 1m18s
Test / frontend-tests (pull_request) Successful in 1m21s
Test / rust-clippy (pull_request) Successful in 3m56s
PR Review Automation / review (pull_request) Successful in 4m20s
Test / rust-tests (pull_request) Successful in 5m22s
- Add url canonicalization for deduplication (strip fragments/query params)
- Add WIQL injection escaping for Azure DevOps work item searches
- Add CQL injection escaping for Confluence searches
- Add MAX_EXPANDED_QUERIES constant for consistency
- Fix logging to show expanded_query instead of search_url
- Add input validation for empty queries
- Add url crate dependency for URL parsing
All 142 tests pass.
2026-04-14 19:55:32 -05:00