Commit Graph

211 Commits

Author SHA1 Message Date
Shaun Arman
5b385c3599 fix(lint): resolve all clippy warnings for CI compliance
Some checks failed
Test / frontend-tests (pull_request) Successful in 1m58s
Test / frontend-typecheck (pull_request) Successful in 2m1s
Test / rust-fmt-check (pull_request) Failing after 4m52s
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Fixed 42 clippy warnings across integration and command modules:
- unnecessary_lazy_evaluations: Changed unwrap_or_else to unwrap_or
- uninlined_format_args: Modernized format strings to use inline syntax
- needless_borrows_for_generic_args: Removed unnecessary borrows
- only_used_in_recursion: Prefixed unused recursive param with underscore

All files now pass cargo clippy -- -D warnings

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-06 15:14:19 -05:00
Shaun Arman
609f696add feat(ai): add tool-calling and integration search as AI data source
Some checks failed
Test / frontend-typecheck (pull_request) Successful in 1m44s
Test / frontend-tests (pull_request) Successful in 1m44s
Test / rust-fmt-check (pull_request) Successful in 5m10s
Test / rust-clippy (pull_request) Failing after 21m58s
Test / rust-tests (pull_request) Successful in 23m8s
This commit implements two major features:

1. Integration Search as Primary AI Data Source
   - Confluence, ServiceNow, and Azure DevOps searches execute before AI queries
   - Search results injected as system context for AI providers
   - Parallel search execution for performance
   - Webview-based fetch for HttpOnly cookie support
   - Persistent browser windows maintain authenticated sessions

2. AI Tool-Calling (Function Calling)
   - Allows AI to automatically execute functions during conversation
   - Implemented for OpenAI-compatible providers and MSI GenAI
   - Created add_ado_comment tool for updating Azure DevOps tickets
   - Iterative tool-calling loop supports multi-step workflows
   - Extensible architecture for adding new tools

Key Files:
- src-tauri/src/ai/tools.rs (NEW) - Tool definitions
- src-tauri/src/integrations/*_search.rs (NEW) - Integration search modules
- src-tauri/src/integrations/webview_fetch.rs (NEW) - HttpOnly cookie workaround
- src-tauri/src/commands/ai.rs - Tool execution and integration search
- src-tauri/src/ai/openai.rs - Tool-calling for OpenAI and MSI GenAI
- All providers updated with tools parameter support

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-06 13:36:45 -05:00
b4d8dfc154 Merge pull request 'fix(ci): remove explicit docker.sock mount — act_runner mounts it automatically' (#22) from fix/build-images-duplicate-socket into master
All checks were successful
Auto Tag / autotag (push) Successful in 52s
Auto Tag / wiki-sync (push) Successful in 59s
Auto Tag / build-windows-amd64 (push) Successful in 15m41s
Auto Tag / build-linux-amd64 (push) Successful in 29m29s
Auto Tag / build-linux-arm64 (push) Successful in 29m55s
Auto Tag / build-macos-arm64 (push) Successful in 5m5s
Reviewed-on: #22
2026-04-06 02:18:55 +00:00
Shaun Arman
b0c1167b20 fix(ci): remove explicit docker.sock mount — act_runner mounts it automatically
Some checks failed
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
2026-04-05 21:18:11 -05:00
7112fbc0c1 Merge pull request 'feat(ci): add persistent pre-baked Docker builder images' (#21) from feat/persistent-ci-builders into master
Some checks failed
Build CI Docker Images / linux-amd64 (push) Failing after 1s
Build CI Docker Images / windows-cross (push) Failing after 3s
Build CI Docker Images / linux-arm64 (push) Failing after 1s
Auto Tag / autotag (push) Successful in 54s
Auto Tag / wiki-sync (push) Successful in 55s
Auto Tag / build-windows-amd64 (push) Has been cancelled
Auto Tag / build-linux-arm64 (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Has been cancelled
Auto Tag / build-macos-arm64 (push) Has been cancelled
Reviewed-on: #21
2026-04-06 02:15:36 +00:00
Shaun Arman
9b388e736d feat(ci): add persistent pre-baked Docker builder images
Some checks are pending
Test / rust-clippy (pull_request) Waiting to run
Test / rust-tests (pull_request) Waiting to run
Test / frontend-typecheck (pull_request) Waiting to run
Test / frontend-tests (pull_request) Waiting to run
Test / rust-fmt-check (pull_request) Successful in 3m57s
Add three Dockerfiles under .docker/ and a build-images.yml workflow that
pushes them to the local Gitea container registry (172.0.0.29:3000).

Each image pre-installs all system deps, Node.js 22, and the Rust cross-
compilation target so release builds can skip apt-get entirely:

  trcaa-linux-amd64:rust1.88-node22   — webkit2gtk, gtk3, all Tauri deps
  trcaa-windows-cross:rust1.88-node22 — mingw-w64, nsis, Windows target
  trcaa-linux-arm64:rust1.88-node22   — arm64 multiarch dev libs, Rust 1.88

build-images.yml triggers automatically when .docker/ changes on master
and supports workflow_dispatch for manual/first-time builds.

auto-tag.yml is NOT changed in this commit — switch it to use the new
images in the follow-up PR (after images are pushed to the registry).

One-time server setup required before first use:
  echo '{"insecure-registries":["172.0.0.29:3000"]}' \
    | sudo tee /etc/docker/daemon.json && sudo systemctl restart docker
2026-04-05 21:07:17 -05:00
ca9eec46d1 Merge pull request 'feat(ui): UI fixes, theme toggle, PII persistence, Ollama install instructions' (#20) from feat/ui-fixes-ollama-bundle-theme into master
Some checks failed
Auto Tag / autotag (push) Successful in 1m20s
Auto Tag / wiki-sync (push) Successful in 1m19s
Auto Tag / build-macos-arm64 (push) Successful in 6m24s
Auto Tag / build-linux-arm64 (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Has been cancelled
Auto Tag / build-windows-amd64 (push) Has been cancelled
Reviewed-on: #20
2026-04-06 01:54:36 +00:00
Shaun Arman
72625d590b refactor(ollama): remove download/install buttons — show plain install instructions only
Some checks failed
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
2026-04-05 20:53:57 -05:00
Shaun Arman
1be4c48690 fix(ci): remove all Ollama bundle download steps — use UI download button instead 2026-04-05 20:53:57 -05:00
Shaun Arman
ff69cf6b11 fix(ci): skip Ollama download on macOS build — runner has no access to GitHub binary assets 2026-04-05 20:53:57 -05:00
2ba0eaf97f Merge pull request 'feat(ui): fix model dropdown, auth prefill, PII persistence, theme toggle, Ollama bundle' (#19) from feat/ui-fixes-ollama-bundle-theme into master
Some checks failed
Auto Tag / autotag (push) Successful in 54s
Auto Tag / wiki-sync (push) Successful in 55s
Auto Tag / build-macos-arm64 (push) Failing after 19s
Auto Tag / build-windows-amd64 (push) Failing after 7m36s
Auto Tag / build-linux-arm64 (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Has been cancelled
Reviewed-on: #19
2026-04-06 01:12:34 +00:00
Shaun Arman
69b749bc62 style: apply cargo fmt to install_ollama_from_bundle
All checks were successful
Test / frontend-typecheck (pull_request) Successful in 1m49s
Test / frontend-tests (pull_request) Successful in 1m46s
Test / rust-fmt-check (pull_request) Successful in 5m36s
Test / rust-clippy (pull_request) Successful in 27m7s
Test / rust-tests (pull_request) Successful in 28m12s
2026-04-05 19:41:59 -05:00
Shaun Arman
b4b9f2a477 fix(security): add path canonicalization and actionable permission error in install_ollama_from_bundle
Some checks failed
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
2026-04-05 19:34:47 -05:00
Shaun Arman
733a763c34 test(store): add PII pattern persistence tests for settingsStore
Some checks failed
Test / rust-fmt-check (pull_request) Failing after 6m10s
Test / frontend-typecheck (pull_request) Successful in 2m51s
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
2026-04-05 19:33:23 -05:00
Shaun Arman
5b6348c97e feat(ui): fix model dropdown, auth prefill, PII persistence, theme toggle, and Ollama bundle
Some checks failed
Test / frontend-typecheck (pull_request) Successful in 1m47s
Test / frontend-tests (pull_request) Successful in 1m51s
Test / rust-fmt-check (pull_request) Failing after 5m16s
Test / rust-clippy (pull_request) Successful in 34m2s
Test / rust-tests (pull_request) Successful in 35m13s
- AIProviders: hide top model row when custom_rest active (dropdown lower in form handles it);
  clear auth header prefill on format switch; rename User ID / CORE ID → Email Address
- Dashboard + Ollama: add border-border/bg-card classes to Refresh buttons for dark-bg contrast
- Security + settingsStore: wire PII toggle state to persisted Zustand store so pattern
  selections survive app restarts
- App: add Sun/Moon theme toggle button to sidebar footer (always visible when collapsed)
- system.rs: add install_ollama_from_bundle command (copies bundled binary to /usr/local/bin)
- auto-tag.yml: add Download Ollama step to all 4 platform build jobs with SHA256 verification
- tauri.conf.json: add resources/ollama/* to bundle resources
- docs: add install_ollama_from_bundle to IPC-Commands wiki

Security: CI download steps verify SHA256 against Ollama's published sha256sums.txt before bundling.
2026-04-05 19:30:41 -05:00
12b98752ee Merge pull request 'feat(rebrand): rename binary to trcaa and auto-generate DB key' (#18) from feat/rebrand-binary-trcaa into master
All checks were successful
Auto Tag / autotag (push) Successful in 1m13s
Auto Tag / wiki-sync (push) Successful in 1m12s
Auto Tag / build-macos-arm64 (push) Successful in 6m26s
Auto Tag / build-windows-amd64 (push) Successful in 14m26s
Auto Tag / build-linux-amd64 (push) Successful in 27m54s
Auto Tag / build-linux-arm64 (push) Successful in 28m39s
Reviewed-on: #18
2026-04-05 23:17:05 +00:00
Shaun Arman
97ccf556c3 feat(rebrand): rename binary to trcaa and auto-generate DB key
All checks were successful
Test / frontend-typecheck (pull_request) Successful in 1m49s
Test / frontend-tests (pull_request) Successful in 1m47s
Test / rust-fmt-check (pull_request) Successful in 4m51s
Test / rust-clippy (pull_request) Successful in 21m14s
Test / rust-tests (pull_request) Successful in 22m22s
- Rename Cargo package from 'tftsr' to 'trcaa' — installed command
  becomes 'trcaa' instead of 'tftsr'
- Update app data directories to ~/.local/share/trcaa (Linux),
  ~/Library/Application Support/trcaa (macOS), %APPDATA%/trcaa (Windows)
- Update bundle identifier to com.trcaa.app
- Auto-generate per-installation DB encryption key on first launch and
  persist to <data_dir>/.dbkey (mode 0600 on Unix) — removes the hard
  requirement for TFTSR_DB_KEY to be set before the app will start
2026-04-05 17:50:16 -05:00
e45e2e935f Merge pull request 'fix(ci): restrict arm64 bundles to deb,rpm — skip AppImage' (#17) from fix/arm64-skip-appimage into master
Some checks failed
Auto Tag / autotag (push) Successful in 1m35s
Auto Tag / wiki-sync (push) Successful in 1m11s
Auto Tag / build-windows-amd64 (push) Successful in 14m35s
Auto Tag / build-linux-amd64 (push) Successful in 27m35s
Auto Tag / build-linux-arm64 (push) Successful in 28m23s
Auto Tag / build-macos-arm64 (push) Failing after 16m26s
Reviewed-on: #17
2026-04-05 22:04:51 +00:00
Shaun Arman
813cff56b3 fix(ci): restrict arm64 bundles to deb,rpm — skip AppImage
Some checks failed
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
linuxdeploy-aarch64.AppImage cannot be reliably executed in a cross-
compile context (amd64 host, aarch64 target) even with QEMU binfmt
and APPIMAGE_EXTRACT_AND_RUN. The .deb and .rpm cover all major arm64
Linux distros. An arm64 AppImage can be added later via a native
arm64 build job if required.
2026-04-05 17:02:20 -05:00
3b1125d5d5 Merge pull request 'fix(ci): set APPIMAGE_EXTRACT_AND_RUN=1 for arm64 AppImage bundling' (#16) from fix/arm64-appimage-fuse into master
Some checks failed
Auto Tag / autotag (push) Successful in 54s
Auto Tag / wiki-sync (push) Successful in 1m11s
Auto Tag / build-macos-arm64 (push) Successful in 4m38s
Auto Tag / build-windows-amd64 (push) Successful in 14m44s
Auto Tag / build-linux-amd64 (push) Successful in 27m38s
Auto Tag / build-linux-arm64 (push) Failing after 18m13s
Reviewed-on: #16
2026-04-05 20:57:02 +00:00
Shaun Arman
fd9272a693 fix(ci): set APPIMAGE_EXTRACT_AND_RUN=1 for arm64 AppImage bundling
Some checks failed
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
linuxdeploy and its plugins are themselves AppImages. Inside a Docker
container FUSE is unavailable, so they cannot self-mount. Setting
APPIMAGE_EXTRACT_AND_RUN=1 causes them to extract to a temp directory
and run directly, bypassing the FUSE requirement.
2026-04-05 15:56:09 -05:00
9ccd78d497 Merge pull request 'fix(ci): add make to arm64 host tools for OpenSSL vendored build' (#15) from fix/arm64-missing-make into master
Some checks failed
Auto Tag / wiki-sync (push) Successful in 1m11s
Auto Tag / autotag (push) Successful in 1m14s
Auto Tag / build-windows-amd64 (push) Successful in 15m16s
Auto Tag / build-macos-arm64 (push) Successful in 8m1s
Auto Tag / build-linux-amd64 (push) Successful in 27m35s
Auto Tag / build-linux-arm64 (push) Failing after 28m23s
Reviewed-on: #15
2026-04-05 20:10:50 +00:00
Shaun Arman
b214ac7e6a fix(ci): add make to arm64 host tools for OpenSSL vendored build
Some checks failed
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
openssl-src compiles OpenSSL from source and requires make.
The old Debian image had it; it was not carried over to the
Ubuntu 22.04 host tools list.
2026-04-05 15:09:22 -05:00
2af23f8e95 Merge pull request 'fix(ci): use POSIX dot instead of source in arm64 build step' (#14) from fix/arm64-source-sh into master
Some checks failed
Auto Tag / autotag (push) Successful in 1m26s
Auto Tag / wiki-sync (push) Successful in 1m28s
Auto Tag / build-macos-arm64 (push) Successful in 6m15s
Auto Tag / build-windows-amd64 (push) Successful in 14m49s
Auto Tag / build-linux-arm64 (push) Failing after 22m1s
Auto Tag / build-linux-amd64 (push) Has been cancelled
Reviewed-on: #14
2026-04-05 19:42:49 +00:00
Shaun Arman
5991bf3f7f fix(ci): use POSIX dot instead of source in arm64 build step
Some checks failed
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
The act runner executes run: blocks with sh (dash), not bash.
'source' is a bash built-in; POSIX sh uses '.' instead.

Co-Authored-By: fix/arm64-source-sh <noreply@local>
2026-04-05 14:41:18 -05:00
289801f9f0 Merge pull request 'fix(ci): remove GITHUB_PATH append that was breaking arm64 install step' (#13) from fix/arm64-github-path into master
Some checks failed
Auto Tag / autotag (push) Successful in 50s
Auto Tag / wiki-sync (push) Successful in 52s
Auto Tag / build-windows-amd64 (push) Successful in 15m39s
Auto Tag / build-linux-amd64 (push) Successful in 27m28s
Auto Tag / build-linux-arm64 (push) Failing after 11m8s
Auto Tag / build-macos-arm64 (push) Has been cancelled
Reviewed-on: #13
2026-04-05 19:06:01 +00:00
Shaun Arman
3caaab8657 fix(ci): remove GITHUB_PATH append that was breaking arm64 install step
Some checks failed
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
Test / rust-fmt-check (pull_request) Has been cancelled
$GITHUB_PATH is unset in this Gitea Actions environment, causing the
echo redirect to fail with a non-zero exit, which killed the Install
dependencies step before the Build step could run.

The append was unnecessary — the Build step already sources
$HOME/.cargo/env as its first line, which puts Cargo's bin dir in PATH.

Co-Authored-By: fix/yaml-heredoc-indent <noreply@local>
2026-04-05 14:04:32 -05:00
4ca0da4aef Merge pull request 'fix(ci): switch build-linux-arm64 to Ubuntu 22.04 with ports mirror' (#12) from fix/yaml-heredoc-indent into master
Some checks failed
Auto Tag / autotag (push) Successful in 48s
Auto Tag / wiki-sync (push) Successful in 50s
Auto Tag / build-macos-arm64 (push) Successful in 5m53s
Auto Tag / build-linux-amd64 (push) Successful in 17m27s
Auto Tag / build-windows-amd64 (push) Successful in 13m2s
Auto Tag / build-linux-arm64 (push) Failing after 10m13s
Reviewed-on: #12
2026-04-05 18:15:16 +00:00
Shaun Arman
6fea24181d docs: update CI pipeline wiki and add ticket summary for arm64 fix
All checks were successful
Test / frontend-tests (pull_request) Successful in 1m42s
Test / frontend-typecheck (pull_request) Successful in 1m44s
Test / rust-fmt-check (pull_request) Successful in 4m31s
Test / rust-clippy (pull_request) Successful in 20m16s
Test / rust-tests (pull_request) Successful in 21m28s
Documents the Ubuntu 22.04 + ports.ubuntu.com approach for arm64
cross-compilation and adds a Known Issues entry explaining the Debian
single-mirror multiarch root cause that was replaced.

Co-Authored-By: fix/yaml-heredoc-indent <noreply@local>
2026-04-05 12:51:30 -05:00
Shaun Arman
9bff15a960 fix(ci): switch build-linux-arm64 to Ubuntu 22.04 with ports mirror
The Debian single-mirror multiarch approach causes irreconcilable
apt dependency conflicts when both amd64 and arm64 point at the same
repo: the binary-all index is duplicated and certain -dev package pairs
lack Multi-Arch: same. This produces "held broken packages" regardless
of sources.list tweaks.

Ubuntu 22.04 routes arm64 through ports.ubuntu.com/ubuntu-ports, a
separate mirror from archive.ubuntu.com (amd64). This eliminates all
cross-arch index overlaps. Rust is installed via rustup since it is not
pre-installed in the Ubuntu base image. libayatana-appindicator3-dev
is dropped — no tray icon is used by this application.

Co-Authored-By: fix/yaml-heredoc-indent <noreply@local>
2026-04-05 12:51:19 -05:00
d1f429d8e4 Merge pull request 'fix(ci): replace heredoc with printf in arm64 install step' (#11) from fix/yaml-heredoc-indent into master
Some checks failed
Auto Tag / autotag (push) Successful in 1m22s
Auto Tag / wiki-sync (push) Successful in 1m23s
Auto Tag / build-linux-arm64 (push) Failing after 3m38s
Auto Tag / build-macos-arm64 (push) Successful in 5m44s
Auto Tag / build-windows-amd64 (push) Successful in 14m17s
Auto Tag / build-linux-amd64 (push) Successful in 21m37s
Reviewed-on: #11
2026-04-05 17:12:11 +00:00
Shaun Arman
f1247520c7 fix(ci): replace heredoc with printf in arm64 install step
Some checks failed
Test / rust-tests (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
YAML block scalars end when a line is found with less indentation than
the scalar's own indent level. The heredoc body was at column 0 while
the rest of the run: block was at column 10, causing Gitea's YAML parser
to reject the entire workflow file with:

  yaml: line 412: could not find expected ':'

This silently invalidated auto-tag.yml on every push to master since the
apt-sources commit was merged, which is why PR#9 and PR#10 merges produced
no action runs.

Fix: replace the heredoc with a printf that stays within the block scalar's
indentation so the YAML remains valid.
2026-04-05 12:11:12 -05:00
b9220ef04c Merge pull request 'fix(ci): add workflow_dispatch and concurrency guard to auto-tag' (#10) from fix/auto-tag-dispatch into master
Reviewed-on: #10
2026-04-05 17:06:09 +00:00
Shaun Arman
c8ead60607 fix(ci): add workflow_dispatch and concurrency guard to auto-tag
All checks were successful
Test / frontend-typecheck (pull_request) Successful in 1m51s
Test / frontend-tests (pull_request) Successful in 1m50s
Test / rust-fmt-check (pull_request) Successful in 4m21s
Test / rust-clippy (pull_request) Successful in 20m14s
Test / rust-tests (pull_request) Successful in 21m25s
Gitea 1.22 silently drops a push event for a workflow when a run for that
same workflow+branch is already in progress. This caused the PR#9 merge to
master to produce no auto-tag run.

- workflow_dispatch: allows manual triggering via API when an event is dropped
- concurrency group (cancel-in-progress: false): causes Gitea to queue a second
  run rather than discard it when one is already active
2026-04-05 11:41:21 -05:00
c1c8fb726d Merge pull request 'fix(ci): rebuild apt sources with per-arch entries before arm64 cross-compile' (#9) from bug/build-failure into master
Reviewed-on: #9
2026-04-05 16:32:20 +00:00
Shaun Arman
9d9dcd1d9a fix(ci): rebuild apt sources with per-arch entries before arm64 cross-compile install
All checks were successful
Test / frontend-typecheck (pull_request) Successful in 1m11s
Test / frontend-tests (pull_request) Successful in 1m18s
Test / rust-fmt-check (pull_request) Successful in 4m55s
Test / rust-clippy (pull_request) Successful in 23m46s
Test / rust-tests (pull_request) Successful in 25m1s
rust:1.88-slim (Debian Bookworm) uses DEB822-format sources which have no arch
restriction. After dpkg --add-architecture arm64, apt tries to resolve deps for
both amd64 and arm64 simultaneously and hits 'held broken packages' conflicts on
shared -dev packages.

Fix: remove debian.sources and write a clean sources.list that pins amd64 repos
to [arch=amd64] and arm64 repos to [arch=arm64]. This gives apt a clear,
non-conflicting view of each architecture's package set.
2026-04-05 11:05:46 -05:00
350013e038 Merge pull request 'security/audit' (#8) from security/audit into master
Some checks failed
Auto Tag / autotag (push) Successful in 44s
Auto Tag / wiki-sync (push) Successful in 51s
Auto Tag / build-linux-arm64 (push) Failing after 3m22s
Auto Tag / build-windows-amd64 (push) Successful in 15m24s
Auto Tag / build-macos-arm64 (push) Failing after 13m25s
Auto Tag / build-linux-amd64 (push) Successful in 27m50s
Reviewed-on: #8
2026-04-05 15:56:26 +00:00
Shaun Arman
404614a8b3 fix(ci): fix arm64 cross-compile, drop cargo install tauri-cli, move wiki-sync
All checks were successful
Test / frontend-tests (pull_request) Successful in 1m43s
Test / frontend-typecheck (pull_request) Successful in 1m50s
Test / rust-fmt-check (pull_request) Successful in 4m23s
Test / rust-clippy (pull_request) Successful in 20m6s
Test / rust-tests (pull_request) Successful in 21m17s
build-linux-arm64: switch from QEMU-emulated linux-arm64 runner to cross-compile
on linux-amd64 using aarch64-linux-gnu toolchain. Removes the uname -m arch guard
that was causing the job to exit immediately (QEMU reports x86_64 as kernel arch),
and fixes the artifact path to the explicit target directory.

All build jobs: replace `cargo install tauri-cli --locked` with `npx tauri build`,
using the pre-compiled @tauri-apps/cli binary from devDependencies. Eliminates the
20-30 min Tauri CLI recompilation on every run.

wiki-sync: move from test.yml to auto-tag.yml. test.yml only fires on pull_request
events so the `if: github.ref == 'refs/heads/master'` guard was never true and the
wiki was never updated. auto-tag.yml triggers on push to master, so wiki sync now
runs on every merge.

Update releaseWorkflowCrossPlatformArtifacts.test.ts to match the new workflow.
2026-04-05 10:33:53 -05:00
95ccb8671b Merge branch 'master' into security/audit
Some checks failed
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
Test / frontend-typecheck (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / wiki-sync (pull_request) Has been cancelled
2026-04-05 15:10:21 +00:00
Shaun Arman
dc4bb8109d fix(security): enforce PII redaction before AI log transmission
Some checks failed
Test / frontend-typecheck (pull_request) Successful in 1m44s
Test / wiki-sync (pull_request) Has been cancelled
Test / rust-clippy (pull_request) Has been cancelled
Test / frontend-tests (pull_request) Has been cancelled
Test / rust-fmt-check (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
analyze_logs() was reading the original log file from disk and sending its
full contents to external AI providers, completely bypassing the redaction
pipeline. The redacted flag in log_files and the .redacted file on disk were
written by apply_redactions() but never consulted on the read path.

Fix: query the redacted column alongside file_path. If the file has not been
redacted, return an error to the caller before any AI provider call is made.
When redacted, read from {path}.redacted instead of the original.

Adds redacted_path_for() helper and two unit tests covering the rejection
and happy-path cases.
2026-04-05 10:08:16 -05:00
Shaun Arman
3b51027dd8 fix(pii): remove lookahead from hostname regex, fix fmt in analysis test
All checks were successful
Test / wiki-sync (pull_request) Has been skipped
Test / frontend-tests (pull_request) Successful in 1m41s
Test / frontend-typecheck (pull_request) Successful in 1m50s
Test / rust-fmt-check (pull_request) Successful in 4m37s
Test / rust-clippy (pull_request) Successful in 21m57s
Test / rust-tests (pull_request) Successful in 23m8s
Rust's `regex` crate does not support lookaround assertions. The hostname
pattern `(?=.{1,253}\b)` caused a panic on every `PiiDetector::new()` call,
failing all four PII detector tests in CI (rust-fmt-check, rust-clippy,
rust-tests). Removed the lookahead; the remaining pattern correctly matches
valid FQDNs without the RFC 1035 length pre-check.

Also reformatted analysis.rs:253 to satisfy `rustfmt` (line break after `=`).

All 127 Rust tests pass and `cargo fmt --check` and `cargo clippy -- -D
warnings` are clean.
2026-04-05 09:59:19 -05:00
Shaun Arman
e117cb30c4 fix(security): harden secret handling and audit integrity
Some checks failed
Test / frontend-typecheck (pull_request) Successful in 1m59s
Test / wiki-sync (pull_request) Has been skipped
Test / frontend-tests (pull_request) Successful in 1m44s
Test / rust-fmt-check (pull_request) Failing after 4m23s
Test / rust-clippy (pull_request) Failing after 22m44s
Test / rust-tests (pull_request) Failing after 24m0s
Remove high-risk defaults and tighten data handling across auth, storage, IPC, provider calls, and capabilities so sensitive data is better protected by default. Also update README/wiki security guidance and add targeted tests for the new hardening behaviors.

Made-with: Cursor
2026-04-04 23:37:05 -05:00
Shaun Arman
fec9c77972 fix(ci): unblock release jobs and namespace linux artifacts by arch
Some checks failed
Auto Tag / autotag (push) Successful in 52s
Auto Tag / build-windows-amd64 (push) Successful in 18m0s
Auto Tag / build-linux-arm64 (push) Failing after 21m7s
Auto Tag / build-macos-arm64 (push) Failing after 14m8s
Auto Tag / build-linux-amd64 (push) Successful in 32m29s
Drop fragile job-condition gates that were blocking release jobs, and upload linux artifacts with arch-prefixed release asset names so amd64 and arm64 outputs can coexist even when bundle filenames are identical.

Made-with: Cursor
2026-04-04 23:19:40 -05:00
Shaun Arman
49ed727c79 fix(ci): unblock release jobs and namespace linux artifacts by arch
Drop fragile job-condition gates that were blocking release jobs, and upload linux artifacts with arch-prefixed release asset names so amd64 and arm64 outputs can coexist even when bundle filenames are identical.

Made-with: Cursor
2026-04-04 23:17:12 -05:00
Shaun Arman
6de7cfb104 fix(ci): run linux arm release natively and enforce arm artifacts
Some checks failed
Auto Tag / autotag (push) Successful in 50s
Auto Tag / build-macos-arm64 (push) Failing after 11m15s
Auto Tag / build-windows-amd64 (push) Successful in 18m15s
Auto Tag / build-linux-arm64 (push) Failing after 18m33s
Auto Tag / build-linux-amd64 (push) Successful in 29m19s
Avoid cross-compiling GTK/glib on the arm release job by building natively on ARM64 hosts, add an explicit architecture guard, and restrict uploads to arm64/aarch64 artifact filenames so amd64 outputs cannot be published as arm releases.

Made-with: Cursor
2026-04-04 22:46:23 -05:00
Shaun Arman
2bf5a03d8a fix(ci): force explicit linux arm64 target for release artifacts
Some checks failed
Auto Tag / autotag (push) Successful in 49s
Auto Tag / build-windows-amd64 (push) Successful in 18m14s
Auto Tag / build-linux-arm64 (push) Failing after 27m6s
Auto Tag / build-macos-arm64 (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Has been cancelled
Build linux arm64 bundles with --target aarch64-unknown-linux-gnu and upload from the target-specific bundle path so arm64 releases cannot accidentally publish amd64 artifacts.

Made-with: Cursor
2026-04-04 22:15:02 -05:00
Shaun Arman
04c834c58e refactor(ci): remove standalone release workflow
All checks were successful
Auto Tag / autotag (push) Successful in 52s
Auto Tag / build-macos-arm64 (push) Successful in 5m59s
Auto Tag / build-windows-amd64 (push) Successful in 17m49s
Auto Tag / build-linux-amd64 (push) Successful in 34m58s
Auto Tag / build-linux-arm64 (push) Successful in 34m57s
Delete .gitea/workflows/release.yml and keep release orchestration in auto-tag.yml only, then update related workflow tests and docs to reference the unified pipeline.

Made-with: Cursor
2026-04-04 21:34:15 -05:00
Shaun Arman
8b60d616c3 fix(ci): repair auto-tag workflow yaml so jobs trigger
Some checks failed
Auto Tag / autotag (push) Successful in 44s
Auto Tag / build-linux-arm64 (push) Has been cancelled
Auto Tag / build-windows-amd64 (push) Has been cancelled
Auto Tag / build-macos-arm64 (push) Has been cancelled
Auto Tag / build-linux-amd64 (push) Has been cancelled
Replace heredoc-based Python error logging with single-line python invocations to keep YAML block indentation valid, restoring Gitea's ability to parse and trigger auto-tag plus downstream release build jobs.

Made-with: Cursor
2026-04-04 21:28:52 -05:00
Shaun Arman
0427d7808b fix(ci): run post-tag release builds without job-output gating
Remove auto-tag job output dependencies and conditional gates so release build jobs always run after autotag completes, resolving skipped fan-out caused by output/if evaluation issues in Gitea Actions.

Made-with: Cursor
2026-04-04 21:24:24 -05:00
Shaun Arman
af4a07cffa fix(ci): use stable auto-tag job outputs for release fanout
Rename the auto-tag job id to a non-hyphenated identifier and update needs/output references so dependent release jobs evaluate conditions correctly and reliably run after tagging.

Made-with: Cursor
2026-04-04 21:21:35 -05:00