Overview
JobSentinel 2.9.5 reorganizes the complete repository around explicit product
and security ownership. The app remains local-first, external AI remains
optional and disabled by default, saved secrets remain protected, and the user
still reviews every external action and final application submission.
The refactor deliberately removes internal compatibility wrappers. User data
does not receive the same treatment: database changes still require safe
migrations, verified encrypted snapshots, integrity checks, and no silent data
loss.
Repository And Workspace
- Added a root explicit-member virtual Cargo workspace with inherited package
metadata, exact dependencies, lint policy, and release settings. - Assigned application orchestration to
jobsentinel-application, with bounded
domain, storage, source, security, notification, and assistance owners. - Kept
src-taurias the thin desktop shell and private IPC router. - Made implementation leaves and Tauri commands private or crate-visible, with
explicit crate entry points and one registered command inventory. - Organized the React app into app composition, feature owners, shared
contracts, UI primitives, and development mocks. - Moved migrations to the storage owner and kept SQLx offline metadata at the
workspace root. - Enforced deterministic workspace membership, compiled Rust source ownership,
and modules before crates. - Enforced 300-line and 32 KiB review thresholds plus 500-line and 64 KiB hard
limits across governed source and configuration.
Privacy, Security, And Data Integrity
- Made verified encrypted pre-migration snapshots mandatory for existing local
databases before schema changes. - Added post-migration quick, foreign-key, and scheduled full integrity checks
to the live startup path. - Kept credential tests non-interactive by default. Live operating-system
credential roundtrips require an explicit opt-in. - Kept credential, resume, notification, source, URL, and external-AI details
behind minimized typed boundaries. - Kept job import review state capped, expiring, memory-only, and opaque to the
renderer. Confirmation saves the exact reviewed record without a second
network request. - Preserved URL, DNS, redirect, response-size, rate-limit, restricted-source,
and human-review protections across source adapters.
Reliability And Maintenance
- Made Browser Import and browser test servers recover from occupied default
loopback ports by selecting an available local port. - Removed orphan Rust and TypeScript source, obsolete compatibility paths,
unused dependencies, empty directories, transition-only sensors, and unused
generated mobile and store icons. - Rebuilt the jobs full-text index and replaced unsafe external-content FTS5
update and delete triggers. - Made new and rescored dashboard candidates evaluate saved alert rules
independently of aggregate match counts. - Assigned resume, salary, market, notification, scraper, automation, import,
database, and credential behavior to bounded owners and removed unused
self-tested APIs. - Centralized release, platform, security, dependency, and harness policy under
final repository paths. - Refreshed the owned toolchain, direct dependencies, transitive lockfiles, and
workflow action pins to the current stable release baseline. - Updated contributor, architecture, testing, SQLx, platform, security, release,
agent, and public-wiki guidance for the final workspace.
Verification Posture
- Complete frontend, script, Rust workspace, all-feature compilation, and E2E
suites. - Formatting, lint, language, architecture, bloat, duplication, dependency,
security, secret, and harness gates. - Production frontend, Storybook, and Tauri package builds.
- SQLx offline metadata and encrypted migration contracts.
- A universal no-account macOS package on macOS 27 beta, including checksum,
metadata, architecture, signature, visible-window launch, private local data,
database creation, and copied-app install checks.
Platform Notes
- Windows installers remain signed only when signing credentials are available;
otherwise public filenames must state that they are unsigned and include
matching checksums. - The no-account universal macOS package is not Developer ID signed or
notarized. Gatekeeper-ready distribution still requires Apple Developer
Program materials and signed public-artifact proof. - Linux AppImage and deb packages remain subject to structure, checksum, SBOM,
and attestation checks.
Updating
JobSentinel does not silently update itself. Back up Settings before replacing
the app, verify the downloaded package checksum, and follow
Updating Or Going Back.