Commit Graph

  • be715e3cea fix(ci): semgrep install fails on Gitea Act runner (no sudo/pipx) chore/restart-policy cesnimda 2026-07-12 15:53:35 +02:00
  • cb740c0515 fix(dashboard): grid fills available width instead of fixed 1200px cesnimda 2026-07-12 15:20:10 +02:00
  • c9f1437860 fix(proxy): honor upstream X-Forwarded-Proto so OAuth redirect is https behind traefik cesnimda 2026-07-10 22:03:23 +02:00
  • eee7ef6055 chore(ops): restart:unless-stopped so the stack survives host reboots cesnimda 2026-07-10 21:56:33 +02:00
  • cfcf45cdf3 chore(analytics): remove dead day-hour heatmap (Unit 5) (#45) develop cesnimda 2026-07-04 21:43:32 +02:00
  • cd1f8a04a1 chore(analytics): remove dead day-hour heatmap endpoint/service/DTO chore/rm-dead-heatmap cesnimda 2026-07-04 21:21:12 +02:00
  • 2f173dc3e5 feat(ui): email dashboard UX refactor (PHASES 1/3/4) (#44) cesnimda 2026-07-04 21:16:21 +02:00
  • 2d1ca9d0d6 feat(ui): email dashboard UX refactor — split-view, row polish, dashboard (PHASES 1/3/4) integ-ui cesnimda 2026-07-04 20:59:24 +02:00
  • 04ff72097b fix(auth): login 500 — DataProtection key ring on root-owned volume (#37) cesnimda 2026-07-04 16:52:56 +02:00
  • 19cc9ca88a feat(ui): split-view reading pane for FolderView + SearchResults feat/ui-split-view cesnimda 2026-07-04 16:51:42 +02:00
  • 0268c2dbaa feat(ui): replace heatmap with category breakdown + skeletons feat/ui-dashboard-widget cesnimda 2026-07-04 16:51:32 +02:00
  • 9cf4c9873f feat(ui): email row polish + custom checkbox feat/ui-email-row cesnimda 2026-07-04 16:50:19 +02:00
  • 5bcce1dea0 feat(ui): bulk-action UX + keyboard nav (PHASE 4) feat/ui-bulk-keyboard cesnimda 2026-07-04 16:49:39 +02:00
  • eccf66eaed fix(categories): correct all 7 smart-folder bugs at source (PHASE 2) (#38) cesnimda 2026-07-04 16:45:10 +02:00
  • be970ff621 chore: strip UTF-8 BOM from migration files (unblock format gate) (#39) cesnimda 2026-07-04 16:40:05 +02:00
  • 89ac20b124 chore: strip UTF-8 BOM from generated files (format gate) fix/login-keyring-500 cesnimda 2026-07-04 16:30:39 +02:00
  • 1a3e0ede82 chore: strip UTF-8 BOM from generated files (format gate) fix/smart-categories cesnimda 2026-07-04 16:30:36 +02:00
  • c6a8302997 chore: strip UTF-8 BOM from EF-generated migration files chore/strip-bom cesnimda 2026-07-04 16:27:02 +02:00
  • 654acacf5f fix(categories): correct all seven smart-folder bugs at the source (PHASE 2) cesnimda 2026-07-04 16:21:53 +02:00
  • a3785a45cb fix(auth): login 500 — DataProtection key ring unreadable on root-owned keys volume cesnimda 2026-07-04 16:05:56 +02:00
  • 3333e19452 perf(search): keyset pagination (browse path) (#36) cesnimda 2026-07-04 16:01:39 +02:00
  • 1e8feeef71 ci(security): Semgrep SAST (#32) cesnimda 2026-07-04 16:01:34 +02:00
  • e000332b95 ci(security): install semgrep via apt+pipx on the runner image feat/semgrep cesnimda 2026-07-02 18:17:13 +02:00
  • 074d39d9a2 feat(platform): feature flags + user settings foundation (#35) cesnimda 2026-07-02 18:04:14 +02:00
  • 01fb74eb38 perf(search): keyset pagination + fix the format-gate line-ending flip-flop feat/keyset-pagination cesnimda 2026-07-02 17:53:18 +02:00
  • b7d4b87d75 feat(search): hybrid semantic search (RRF) (#34) cesnimda 2026-07-02 17:36:27 +02:00
  • b79f35f40e ci(security): run Semgrep in its official container cesnimda 2026-07-02 17:35:39 +02:00
  • 7b8d609185 feat(platform): feature flags + user settings foundation (RECOMMENDATIONS #10) feat/feature-flags cesnimda 2026-07-02 17:32:55 +02:00
  • fb6b89b6dc feat(ops): OpenTelemetry + observability profile (#33) cesnimda 2026-07-02 17:32:35 +02:00
  • 402628a3a7 refactor(db): named tenant query filters (#31) cesnimda 2026-07-02 17:24:21 +02:00
  • 50bf6d977a feat(search): hybrid semantic search via RRF fusion (RECOMMENDATIONS #4b) feat/hybrid-search cesnimda 2026-07-02 17:17:41 +02:00
  • 6dfb69c26c feat(ops): OpenTelemetry traces + metrics (RECOMMENDATIONS #5) feat/opentelemetry cesnimda 2026-07-02 17:12:22 +02:00
  • 89c89183da ci(security): Semgrep SAST job (RECOMMENDATIONS #9) cesnimda 2026-07-02 17:08:26 +02:00
  • 59d05e02bd refactor(db): named tenant query filters (RECOMMENDATIONS #6) feat/named-query-filters cesnimda 2026-07-02 17:02:46 +02:00
  • 5191dd010f feat(ai): semantic-search backfill + Ollama profile (#30) cesnimda 2026-07-02 16:59:30 +02:00
  • 7ec4f1ddb8 perf(ui): route-level code splitting (#29) cesnimda 2026-07-02 16:53:31 +02:00
  • a3d8654198 feat!: migrate to .NET 10 LTS (#28) cesnimda 2026-07-02 16:53:24 +02:00
  • 3b93893618 feat(ai): semantic-search backfill worker + Ollama compose profile (RECOMMENDATIONS #4a) feat/semantic-backfill cesnimda 2026-07-02 16:50:27 +02:00
  • 733bfc9bae perf(ui): route-level code splitting (RECOMMENDATIONS #7) feat/bundle-split cesnimda 2026-07-02 16:40:52 +02:00
  • d03ca01172 feat!: migrate to .NET 10 LTS (RECOMMENDATIONS #1) feat/dotnet10 cesnimda 2026-07-02 16:29:21 +02:00
  • 86ecf03963 feat(ci): Renovate dependency automation (#27) cesnimda 2026-07-02 16:28:02 +02:00
  • dc9d5fc301 feat(ops): nightly DB backups with rotation (#26) cesnimda 2026-07-02 16:27:57 +02:00
  • b31758e23d feat(ci): Renovate automated dependency updates (RECOMMENDATIONS #2) feat/renovate cesnimda 2026-07-02 16:20:50 +02:00
  • 2dd2d22673 feat(ops): nightly database backups with rotation (RECOMMENDATIONS #3) feat/db-backups cesnimda 2026-07-02 16:19:16 +02:00
  • 59522a6e96 docs: Phase 3 recommendations (#25) cesnimda 2026-07-02 16:10:12 +02:00
  • b7f3a42812 docs(audit): Phase 2 resolution status (#24) cesnimda 2026-07-02 10:29:04 +02:00
  • 7dbe1469d7 ci: audit batch D — live-db tests + format gate (#23) cesnimda 2026-07-02 10:13:12 +02:00
  • 2b19bddf7b feat(security): audit batch C — data posture, retention, DP keys (#22) cesnimda 2026-07-02 10:13:07 +02:00
  • b905c93884 fix(security): audit batch B — SPA CSP + vite upgrade (#21) cesnimda 2026-07-02 03:24:57 +02:00
  • c5c33f7023 fix(security): audit batch A — validation, rate limiting, sessions (#20) cesnimda 2026-07-02 03:22:17 +02:00
  • 2056548702 feat(ai): pgvector embedding infrastructure (#19) cesnimda 2026-07-02 03:00:06 +02:00
  • d78fe601ff feat(ai): IEmbeddingProvider foundation (#18) cesnimda 2026-07-02 02:05:57 +02:00
  • 06b050a5ed perf(search): trigram indexes for sender/domain filters (#17) cesnimda 2026-07-02 01:55:59 +02:00
  • c0c1777d3f feat(search): fuzzy/typo tolerance (pg_trgm) (#16) cesnimda 2026-07-01 22:45:10 +02:00
  • 9bbab5d32a feat(search): why this matched highlights (#15) cesnimda 2026-07-01 22:22:38 +02:00
  • fcf290a83b feat(search): weight subject above body in FTS vector (#14) cesnimda 2026-07-01 21:29:38 +02:00
  • a9be48daee feat(search): relevance ranking + websearch_to_tsquery (#13) cesnimda 2026-07-01 21:08:53 +02:00
  • dfd8579899 feat(ui): discoverable-first search placeholder (#12) cesnimda 2026-07-01 20:35:13 +02:00
  • 4d6f10c707 feat(ui): reduced-motion + focus rings (#11) cesnimda 2026-07-01 20:23:42 +02:00
  • dde23c980c feat(ui): Inter + design-system preview page (#10) cesnimda 2026-07-01 20:14:51 +02:00
  • e482d60b69 feat(ui): design-system v2 tokens (#9) cesnimda 2026-07-01 20:01:43 +02:00
  • 4ce2df0a2b docs: discovery blueprint + multi-provider design (#8) cesnimda 2026-07-01 19:59:53 +02:00
  • 9ee5d757f5 docs(changelog): note health gate + verified end-to-end pipeline (#7) cesnimda 2026-07-01 17:20:34 +02:00
  • 045be2bb81 Add post-deploy health gate to staging (#5) cesnimda 2026-07-01 16:08:27 +02:00
  • 11e6768d17 Fix staging deploy: ASCII-only echo (#4) cesnimda 2026-07-01 13:16:31 +02:00
  • d9a07a01b2 Fix staging auto-deploy: env write + port isolation (#3) cesnimda 2026-07-01 12:50:12 +02:00
  • 8727be9e94 Automated staging deploy: build env from secrets (#2) cesnimda 2026-07-01 12:35:58 +02:00
  • ae8e6b672e Git workflow, environments & CI/CD pipeline (#1) cesnimda 2026-07-01 11:44:34 +02:00
  • 8c2e52ad60 Merge security/hardening-phase4: Phase 4-7 security hardening + CI main v0.1.0 cesnimda 2026-07-01 00:33:20 +02:00
  • d38bcf766c docs: track project rules (AGENTS.md) + accent-swappable UI note cesnimda 2026-07-01 00:33:19 +02:00
  • 94529df775 ci: add Gitea Actions build + test pipeline cesnimda 2026-07-01 00:33:19 +02:00
  • 1e15b84dce fix(search): move pagination clamp to controller (fixes cleanup regression) cesnimda 2026-07-01 00:29:45 +02:00
  • c3bca051ea fix(ux): confirm + feedback for destructive bulk actions cesnimda 2026-07-01 00:22:43 +02:00
  • e6a0239436 fix(security): systemic IDOR safeguard via EF global query filters cesnimda 2026-07-01 00:20:56 +02:00
  • 626a9f8454 fix(security): Phase 4 edge hardening + SSRF egress guard cesnimda 2026-07-01 00:15:04 +02:00
  • 9ae61432ba feat(ui): F1+F2 — component primitives + rebuilt app shell cesnimda 2026-06-30 23:51:45 +02:00
  • 1bd8143a87 feat(ui): F0 — Tailwind + design tokens + theme infrastructure cesnimda 2026-06-30 23:11:51 +02:00
  • 6af03ea807 docs: switch Privacy Monitor default to XposedOrNot (free, keyless) cesnimda 2026-06-30 23:07:43 +02:00
  • be6cbf90d7 docs: full specs for automation engine, sender policy, activity log, privacy monitor, UI overhaul cesnimda 2026-06-30 23:04:52 +02:00
  • 64f835f719 feat: AI categorisation fallback, unsubscribe confidence scoring, one-line summaries cesnimda 2026-06-30 22:21:10 +02:00
  • 0163165beb feat: notification digests via SMTP cesnimda 2026-06-30 22:11:39 +02:00
  • 9bd3799fbc feat: saved searches cesnimda 2026-06-30 22:00:12 +02:00
  • c7ead8caae feat: keyboard shortcuts on Senders email list cesnimda 2026-06-30 21:58:40 +02:00
  • 7710d49c77 feat: keyboard shortcuts for email navigation cesnimda 2026-06-30 21:55:36 +02:00
  • c11d747919 feat: bulk actions for email lists cesnimda 2026-06-30 21:53:43 +02:00
  • 8c92263cc3 feat: sync status indicator, unsubscribe queue UI, email body preview cesnimda 2026-06-30 21:50:59 +02:00
  • a24c48179a feat: senders master-detail layout with inline email view cesnimda 2026-06-30 21:40:01 +02:00
  • 0dfd739430 feat: hide empty smart folders in sidebar cesnimda 2026-06-30 20:45:48 +02:00
  • 21606c5f91 feat: add 14 new smart folder categories (locale-agnostic) cesnimda 2026-06-30 20:44:21 +02:00
  • 95dc835651 feat: expanded smart folder category coverage (Gaming, RideSharing, FoodDelivery, SeasonalSales, Wellness, Shopping) cesnimda 2026-06-30 20:24:07 +02:00
  • 2c9b402b08 feat: inline unsubscribe button on email rows cesnimda 2026-06-30 20:22:28 +02:00
  • 80c2167b89 feat: dashboard drillthrough — widgets navigate to filtered views cesnimda 2026-06-30 20:20:09 +02:00
  • 2f6d6abdd3 feat: quick actions on email rows (read/unread, star, trash) cesnimda 2026-06-30 20:18:44 +02:00
  • 498536451e feat: search bar in topbar with Gmail-style query syntax cesnimda 2026-06-30 20:15:45 +02:00
  • 4d15a3a8fb feat: click email row opens it in Gmail (noopener/noreferrer) cesnimda 2026-06-30 20:14:06 +02:00
  • 4b1d1b1b6e feat: infinite scroll for folder view cesnimda 2026-06-30 20:05:17 +02:00
  • 20d51b2c15 feat: folder view — clicking sidebar items shows filtered email list cesnimda 2026-06-30 19:59:01 +02:00
  • ca02f40841 feat: Smart Folders sidebar, category heatmap, sidebar counts API cesnimda 2026-06-30 19:40:54 +02:00
  • fe5920919f feat: landing page + logo, dev-mode banner + sync cap, non-blocking sync with progress splash cesnimda 2026-06-30 16:58:35 +02:00
  • dcb939e4f2 deploy: one-command scripts to build+run from deploy/.env cesnimda 2026-06-30 16:16:16 +02:00