feat/public-release-prep #25
No reviewers
Labels
No Label
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: sarman/tftsr-devops_investigation#25
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/public-release-prep"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
## Integration Settings Persistence - Add database commands to save/load integration configs (base_url, username, project_name, space_key) - Frontend now loads configs from DB on mount and saves changes automatically - Fixes issue where settings were lost on app restart ## Persistent Browser Window Architecture - Integration browser windows now stay open for user browsing and authentication - Extract fresh cookies before each API call to handle token rotation - Track open windows in app state (integration_webviews HashMap) - Windows titled as "{Service} Browser (TFTSR)" for clarity - Support easy navigation between app and browser windows (Cmd+Tab/Alt+Tab) - Gracefully handle closed windows with automatic cleanup ## Bug Fixes - Fix Rust formatting issues across 8 files - Fix clippy warnings: - Use is_some_and() instead of map_or() in openai.rs - Use .to_string() instead of format!() in integrations.rs - Add missing OptionalExtension import for .optional() method ## Tests - Add test_integration_config_serialization - Add test_webview_tracking - Add test_token_auth_request_serialization - All 6 integration tests passing ## Files Modified - src-tauri/src/state.rs: Add integration_webviews tracking - src-tauri/src/lib.rs: Register 3 new commands, initialize webviews HashMap - src-tauri/src/commands/integrations.rs: Config persistence, fresh cookie extraction (+151 lines) - src-tauri/src/integrations/webview_auth.rs: Persistent window behavior - src/lib/tauriCommands.ts: TypeScript wrappers for new commands - src/pages/Settings/Integrations.tsx: Load/save configs from DB Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>Replace format!("msg: {}", var) with format!("msg: {var}") across 8 files to satisfy the uninlined_format_args lint (-D warnings) in CI run 178. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>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.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.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 dockerFixes clippy::uninlined_format_args warnings by using inline variable formatting (e.g., {e} instead of {}, e). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>