Shaun Arman
4c4ca40146
fix: UI contrast issues and ARM64 build failure
...
**UI Fixes (TDD approach - tests first, then implementation):**
- Resolution steps: improved text contrast (text-foreground vs muted)
- DocEditor preview: added text-foreground class for readability
- History page: fixed domain display (category field) with better contrast
- Audit Log: added expandable rows with View/Hide buttons to show transmitted data
- Dashboard & buttons: already had proper contrast with outline variant
- Export document: fixed missing title/content parameters in command signature
**Tests Added (13 new tests, all passing):**
- tests/unit/resolution.test.tsx - resolution steps contrast
- tests/unit/docEditor.test.tsx - preview mode and export buttons
- tests/unit/exportDocument.test.ts - export parameters validation
- tests/unit/history.test.tsx - domain display and filtering
- tests/unit/dashboard.test.tsx - refresh button visibility
- tests/unit/auditLog.test.tsx - data visibility and expandable rows
- tests/unit/setup.ts - added @testing-library/jest-dom matchers
**CI Fix:**
- Removed platform label from ARM64 build step (native agent, old Docker)
**Test Results:**
- Frontend: 38/38 passing ✅
- Backend: 64/64 passing ✅
- TypeScript: no errors ✅
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-03 08:05:58 -05:00
Shaun Arman
03cc9914ad
fix: domainPrompts closing brace too early; arm64 use native platform image
...
Auto Tag / auto-tag (push) Successful in 4s
Release / build-linux-arm64 (push) Failing after 0s
Test / rust-fmt-check (push) Successful in 1m4s
Release / build-macos-arm64 (push) Successful in 5m26s
Test / rust-clippy (push) Successful in 7m41s
Test / rust-tests (push) Successful in 8m13s
Test / frontend-typecheck (push) Successful in 1m28s
Test / frontend-tests (push) Successful in 1m12s
Release / build-linux-amd64 (push) Successful in 16m13s
Release / build-windows-amd64 (push) Successful in 13m30s
- domainPrompts.ts: closing }; was inside the Record object after 'automation',
leaving hpe_infra/dell_hardware/identity orphaned outside the object — caused
3 TS1005/TS1109 errors and broke the macOS and all frontend builds
- release.yml: replace multiarch cross-compilation (broken due to WebKit arm64
package conflicts) with --platform linux/arm64 container option so QEMU runs
a native ARM64 image directly — no cross-compilation, no package conflicts
2026-03-31 19:36:07 -05:00
Shaun Arman
3d3f877eb3
feat: add HPE, Dell, Identity domains + expand k8s/security/observability/VESTA NXT
...
Auto Tag / auto-tag (push) Successful in 4s
Release / build-macos-arm64 (push) Failing after 37s
Test / rust-fmt-check (push) Successful in 1m4s
Release / build-linux-arm64 (push) Failing after 1m13s
Test / rust-clippy (push) Successful in 7m32s
Test / rust-tests (push) Successful in 8m19s
Test / frontend-typecheck (push) Failing after 1m22s
Test / frontend-tests (push) Successful in 1m20s
Release / build-linux-amd64 (push) Failing after 9m19s
Release / build-windows-amd64 (push) Failing after 6m45s
New domains:
- HPE Infrastructure: OneView v8.5, iLO, Synergy 12000/480 Gen10/11, DL360/320/20,
Image Streamer, SSP, Smart Update Manager, RACADM equivalents
- Dell Hardware: iDRAC 8/9/10, RACADM, Lifecycle Controller, PERC/StorCLI,
OpenManage, R-series PowerEdge servers
- Identity & Access: Keycloak realm/SSO/LDAP federation, HashiCorp Boundary,
SSSD/AD integration, Kerberos
Expanded domains:
- Kubernetes: add RKE2, OpenShift/KubeVirt (OCP operators, must-gather, CDI)
- Security: add Cortex XDR, Trellix, Rapid7, CIS hardening, fapolicyd, AIDE
- Observability: add Beats agents (Filebeat/Metricbeat/Packetbeat), Zabbix Proxy,
OpenTelemetry collector pipeline troubleshooting
- Public Safety: add full VESTA NXT microservices (Skipper, CTC, i3 services,
Analytics/PEIDB, Management Console, Porter/Helm deployment context)
2026-03-31 18:32:40 -05:00
Shaun Arman
99ec66c77b
feat: expand domains to 13 — add Telephony, Security/Vault, Public Safety, Application, Automation/CI-CD
...
Auto Tag / auto-tag (push) Successful in 3s
Release / build-linux-arm64 (push) Failing after 1m7s
Test / rust-fmt-check (push) Successful in 1m7s
Release / build-macos-arm64 (push) Successful in 4m55s
Test / rust-clippy (push) Successful in 7m21s
Test / rust-tests (push) Successful in 8m19s
Test / frontend-typecheck (push) Successful in 1m25s
Test / frontend-tests (push) Has been cancelled
Release / build-windows-amd64 (push) Has been cancelled
Release / build-linux-amd64 (push) Has been cancelled
New domains: Telephony (Asterisk, AudioCodes SBC, SIP/RTP), Security/Vault
(HashiCorp Vault, PKI, mTLS), Public Safety (NENA i3, NG911, CAD, PSAP),
Application (Java/JVM, Spring Boot, Tomcat), Automation/CI-CD (Ansible,
Jenkins, Porter, Helm).
Existing domains expanded: Linux adds RHEL 8/9 + OEL 6/7/8/9 + Debian specifics;
Windows adds 10/11 + Server 2019/2022; Network adds Fortigate/Cisco/Aruba/Nokia;
Kubernetes adds k3s/Rancher/ECK; Databases adds MS SQL/RabbitMQ/Patroni;
Virtualization adds Proxmox; Observability adds Grafana/Kibana specifics.
2026-03-31 18:13:30 -05:00
Shaun Arman
47af97b68e
feat: close issues, restore history, auto-save resolution steps
...
Test / frontend-typecheck (push) Waiting to run
Test / frontend-tests (push) Waiting to run
Auto Tag / auto-tag (push) Successful in 4s
Test / rust-fmt-check (push) Successful in 1m2s
Release / build-linux-arm64 (push) Failing after 1m11s
Release / build-macos-arm64 (push) Successful in 4m31s
Test / rust-clippy (push) Successful in 7m44s
Test / rust-tests (push) Has been cancelled
Release / build-linux-amd64 (push) Successful in 16m6s
Release / build-windows-amd64 (push) Successful in 12m38s
- db.rs: add get_issue_messages command (joins ai_conversations + ai_messages)
- tauriCommands.ts: fix updateIssueCmd to pass updates as nested object
(was spreading inline — Rust expects {issueId, updates}); fix addFiveWhyCmd
parameter names to match Rust (stepOrder, whyQuestion, answer, evidence);
add getIssueMessagesCmd and IssueMessage interface
- Dashboard: X button on each open issue row to close (mark resolved) inline
- Triage: restore conversation history from DB when revisiting existing issues;
detect close intent patterns and mark issue resolved + navigate home;
auto-save resolution step via addFiveWhyCmd when AI advances why level
- tests: add issueActions.test.ts covering IPC arg structure and close intent
2026-03-31 12:50:39 -05:00
Shaun Arman
5b37bd3435
fix: listIssuesCmd was sending {query} but Rust expects {filter} — caused dashboard to always show 0 open issues
Auto Tag / auto-tag (push) Successful in 4s
Release / build-macos-arm64 (push) Successful in 3m45s
Test / rust-fmt-check (push) Failing after 10m37s
Release / build-linux-arm64 (push) Failing after 10m6s
Test / rust-clippy (push) Successful in 7m12s
Test / rust-tests (push) Successful in 7m56s
Test / frontend-typecheck (push) Successful in 1m28s
Test / frontend-tests (push) Successful in 1m12s
Release / build-linux-amd64 (push) Successful in 16m17s
Release / build-windows-amd64 (push) Successful in 13m11s
2026-03-31 09:09:57 -05:00
Shaun Arman
652418017c
fix: provider test FK error, model pull white screen, RECOMMENDED badge
Auto Tag / auto-tag (push) Successful in 4s
Test / rust-fmt-check (push) Failing after 1m1s
Release / build-macos-arm64 (push) Successful in 3m2s
Test / rust-clippy (push) Successful in 7m16s
Test / frontend-typecheck (push) Has been cancelled
Test / frontend-tests (push) Has been cancelled
Test / rust-tests (push) Has been cancelled
Release / build-linux-amd64 (push) Has been cancelled
Release / build-windows-amd64 (push) Has been cancelled
Release / build-linux-arm64 (push) Has been cancelled
2026-03-31 07:46:36 -05:00
Shaun Arman
16d537c4af
fix: button text visibility, toggle contrast, create_issue IPC, ad-hoc codesign
...
Test / rust-fmt-check (push) Successful in 1m5s
Test / rust-tests (push) Has been cancelled
Test / frontend-typecheck (push) Has been cancelled
Test / frontend-tests (push) Has been cancelled
Test / rust-clippy (push) Has been cancelled
Test / rust-fmt-check (pull_request) Successful in 1m4s
Test / rust-clippy (pull_request) Successful in 7m8s
Test / rust-tests (pull_request) Successful in 8m21s
Test / frontend-typecheck (pull_request) Successful in 1m29s
Test / frontend-tests (pull_request) Successful in 1m15s
- globals.css: remove button from WebKit -webkit-text-fill-color override that
was causing button text to be invisible (text color matched background in dark mode)
- Security.tsx: toggle enabled state uses bg-blue-500 instead of bg-primary;
in dark mode --primary is near-white making the white knob invisible
- tauriCommands.ts: fix createIssueCmd to pass flat args (not wrapped in newIssue),
map domain->category, and return Issue instead of IssueDetail
- NewIssue/index.tsx: update call site to use Issue return type directly
- release.yml: add ad-hoc codesign step for macOS .app so Gatekeeper shows
"unidentified developer" instead of "damaged" error
2026-03-30 15:52:43 -05:00
Shaun Arman
8839075805
feat: initial implementation of TFTSR IT Triage & RCA application
...
Implements Phases 1-8 of the TFTSR implementation plan.
Rust backend (Tauri 2.x, src-tauri/):
- Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama
- PII detection engine: 11 regex patterns with overlap resolution
- SQLCipher AES-256 encrypted database with 10 versioned migrations
- 28 Tauri IPC commands for triage, analysis, document, and system ops
- Ollama: hardware probe, model recommendations, pull/delete with events
- RCA and blameless post-mortem Markdown document generators
- PDF export via printpdf
- Audit log: SHA-256 hash of every external data send
- Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2)
Frontend (React 18 + TypeScript + Vite, src/):
- 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings
- 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives
- 3 Zustand stores: session, settings (persisted), history
- Type-safe tauriCommands.ts matching Rust backend types exactly
- 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs)
DevOps:
- .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push
- .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload
Verified:
- cargo check: zero errors
- tsc --noEmit: zero errors
- vitest run: 13/13 unit tests passing
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:36:25 -05:00