mirror of
https://github.com/momenbasel/keyFinder.git
synced 2026-07-23 13:10:52 +02:00
c70db2b677
- Remove scanline/vignette overlays, colored glows, gradient washes - Replace stat card grids with single segmented strips (hairline dividers) - Reverse-video active filters, button hovers, and match-chip hover - Sharp corners, flat focus outlines, titled-border findings.log shell - Regenerate store + preview screenshots from flattened UI
4.9 KiB
4.9 KiB
Changelog
All notable changes to KeyFinder are documented here. Format follows Keep a Changelog. Versioning follows SemVer.
[2.2.1] - 2026-07-18
Changed
- Anti-slop UI refinement: removed scanline/vignette overlays, colored glows, gradient washes, and card grids in favor of flat value-step surfaces, segmented stat strips with hairline dividers, sharp corners, reverse-video active states and hover emphasis, and a titled-border (
findings.log) table shell — stricter terminal discipline throughout - Store listing screenshots regenerated from the flattened UI
[2.2.0] - 2026-07-18
Added
- Ops-console UI redesign of the popup and findings dashboard: radar-sweep brand mark, ARMED/PASSIVE status LEDs, scanline texture, monospace UI chrome, and a semantic color system (amber = actions, teal = recovered secrets, red/orange/yellow/teal severity scale)
- Popup: count-up stat numerals, numbered watchlist entries, command-prompt keyword input with glowing focus ring, and a terminal status line typed with the live keyword/finding counts
- Dashboard: clickable severity stat tiles that filter the table, LATEST ticker for the most recent finding,
findings.logtable shell with severity-coded row edges, LED severity badges, click-to-copy match chips, relative timestamps (absolute on hover), skeleton loading rows, staggered first-paint rows, and an animated radar empty state that distinguishes "no findings yet" from "filters hide everything" - Keyboard shortcuts on the dashboard:
/focuses search,Escclears and blurs it prefers-reduced-motionsupport across all animations
Fixed
- Severity sort treated
criticalas lowest priority (severityOrder[s] || 5mapscritical: 0to the fallback), so critical findings rendered last; they now lead the table - Latest-finding ticker no longer stays visible when storage is empty (
display: flexwas overriding thehiddenattribute)
[2.1.1] - 2026-05-14
Added
SECURITY.mdwith threat model, disclosure policy, and known limitations of the MAIN <-> ISOLATED nonce bridge.github/dependabot.ymlfor weekly GitHub Actions version bumpsCHANGELOG.md
Changed
- CSV export sanitiser now also prefixes cells starting with LF (
\n), not just=,+,-,@, tab, CR - Popup and results page version label is now read from the manifest at runtime instead of being hardcoded
Fixed
- Window-global scan in
js/interceptor.jsnow runs atdocument_start,DOMContentLoaded, andload, with per-name dedupe. The previous implementation only scanned atdocument_startwhen page globals had not yet been assigned, making the entire pass dead code on most real pages
[2.1.0] - 2026-04-14
Added
- Per-session nonce validation between MAIN-world interceptor and ISOLATED content script to prevent forged finding injection
- CSV formula-injection sanitiser on findings export
- Serialised storage writes to eliminate cross-tab race conditions
- 5000-finding cap with FIFO eviction
- Per-tab alert badge with red-dot icon overlay when secrets are detected
- MutationObserver scans dynamically-injected DOM nodes for SPA coverage
- Explicit Content Security Policy in Chrome and Firefox manifests
js/interceptor-loader.jsfor both browsers, replacing direct MAIN-world content script on Firefox so the nonce handoff actually works- GitHub Actions release pipeline (
.github/workflows/release.yml): onv*tag, build Chrome + Firefox zips, compute SHA256, attach to GitHub Release - GitHub Actions CI pipeline (
.github/workflows/ci.yml): manifest JSON validation, Chrome <-> Firefox version parity check, build verification,web-ext linton the Firefox bundle
Changed
- Keyword input validation: 50 character maximum, 50 keyword maximum
- Findings are now deleted by unique ID instead of URL substring match
- URL parameter scanner uses exact match instead of substring (was matching
authorasauth) - Keyword scanner enforces word boundaries (was matching
keyinsidehotkey,monkey) - camelCase JS identifiers are now skipped in keyword value matches
- Sentry DSN downgraded from
hightolowseverity (public by design)
Fixed
- Stored finding race conditions across concurrent tabs
- False positives from GitHub localStorage caches (
ref-selector:*,jump_to:*,soft-nav:*,COPILOT_*) - False positives from common CSRF tokens (
authenticity_token,csrf_token,__RequestVerificationToken) - False positives from keyboard shortcut data attributes (
data-hotkey,data-hotkey-scope)
[2.0.0] - 2026-04-07
Added
- Complete rewrite to Manifest V3
- Enterprise-grade secret detection with 80+ regex patterns covering AWS, GCP, Azure, GitHub, GitLab, Stripe, PayPal, Square, Slack, Discord, and more
- Firefox support (MV3, Firefox 128+)
- Privacy policy
- Replaced demo gifs with professional logo
Removed
- Manifest V2 background page
- Legacy jQuery dependency