Repository navigation
Conversation
Git-Session-Id: e654
|
Git-Session-Id: f2e41e8f-e6be-5cc9-a063-dbb4829edb41
|
@greptileai review |
🤖 AI code reviewSafe to merge — no P0/P1 findings on latest reviewUpdated after inline dispositions on finding threads — this is the current state; the verdict below is frozen at review time and is kept as the historical record of that pass. Finding disposition
This PR adds tombstone-based masking of secondary-set category names to the primary set so renames/deletions of layered categories survive reload. It extends CategorySet with an optional tombstones array, applies masks in mergeCategorySets, and updates syncToPrimarySet to compute and persist tombstones. It also adds tests for rename/delete persistence, generated-parent cleanup, and separator-safe paths. Needs a look — P2 onlyConfidence 4/5 ℹ️ Consensus was degraded on this run: 1 of 3 passes answered, so findings were filtered at 1-of-1 agreement rather than 2-of-3 — less filtered than usual; 1 of 3 fan-out jobs answered, so the findings above were filtered against less evidence than the threshold assumes. 1 finding ·
|
| commit | score | findings | engine | when |
|---|---|---|---|---|
10effcb2972b |
4/5 | 1 | llm | 2026-10-07 12:17 UTC |
Reviewed feb02572433f · openrouter/deepseek/deepseek-v4-flash-0731 · llm engine · 604s · about this reviewer
Maintainer commands
@TimeToBuildBob review (own line) — fresh review · @TimeToBuildBob fix — a worker acts on the findings. Once per comment; 👀 = received.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1072 +/- ##
==========================================
+ Coverage 64.45% 64.56% +0.10%
==========================================
Files 55 55
Lines 3821 3830 +9
Branches 963 912 -51
==========================================
+ Hits 2463 2473 +10
- Misses 1268 1342 +74
+ Partials 90 15 -75 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
The only failing check on I attempted to rerun the failed job, but GitHub rejected it: “Must have admin rights to Repository.” A maintainer needs to rerun the failed job in run 37615602774. No code change or empty commit made. Master’s latest push Build is still queued; that does not establish a master build regression. |
Git-Session-Id: 0324c24c-d049-4efa-bcdc-506d19a672cd
|
CI-green and mergeable (Greptile 5/5) — waiting only on a maintainer click. This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted. |
Upstream highlights: - feat: custom date range period (ActivityWatch#1005) - feat: device selection (all / subset) in Activity view (ActivityWatch#1004) - feat: category rule priority (ActivityWatch#968) - feat: layered category sets (ActivityWatch#1027, ActivityWatch#1072) - feat: always show Year period (ActivityWatch#1003) - feat: AI summary privacy filter (ActivityWatch#948) - feat: 'Add on top of mine' import option (ActivityWatch#1071) - fix: multidevice queries use real bucket IDs (ActivityWatch#969, ActivityWatch#1068) - fix: timeline hourly bar Y-axis >1h (ActivityWatch#1021) - fix: CSV streaming export (ActivityWatch#993, ActivityWatch#997) - fix: Android browser data display (ActivityWatch#1069) - fix: various mobile/dark-mode/layout improvements Conflict resolution: took upstream for activity.ts (major refactor), multidevice.ts (Android support), Activity.vue, TimelineBarChart.vue, summary.ts. Re-applied our fixes on top: - query_active_history: bucket_sig cache clearing + per-event interval union (dead-watcher marathon immunity) - query_active_history_multidevice: bucket_sig + period-length cap - Removed useMultidevice references (upstream removed the setting in favour of device-selection UI); our code paths now always aggregate across all hosts
Problem
Follow-up to #1027: renaming or deleting a secondary-set category while layered saves the edited view, but the original category returns on reload.\n\n## Changes\n- Persist optional primary-set tombstones using JSON-encoded category paths (old settings need no migration).\n- Apply masks in the shared merge helper, including the legacy classes saved for external readers.\n- Keep secondary sets untouched; masks survive deselect/reselect, while explicitly adding a hidden name restores it.\n- Cover renames, deletes, parent renames, primary override deletion, discard, priority and separator-safe paths.\n\n## Verification\n- Reproduced both regressions with failing tests before implementation.\n- Full Jest suite: 54 suites, 575 tests, 3 snapshots passed.\n- TypeScript: npx tsc --noEmit passed.\n- Targeted ESLint with --max-warnings=0 passed.\n\nNo new UI controls or changes to source sets.