Say when a past year in review is counted from the retention cutoff
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 72/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- nextjs, typescript
- 領域
- backend
調査の方向性
Start in src/lib/jobs/retention.ts: read HISTORY_RETENTION_MONTHS and the retentionCutoffs helper to see exactly which day events and snapshots are purged before. Then read computeYearSummary in src/lib/public-metrics/yearly.ts and trace how historyStart picks the window start, since that is where a purged year is silently counted from 1 January. Surface the effective start day on the year page and its images, and add a unit test with a year starting one day either side of the cutoff; done means both acceptance boxes hold.
索引モデルが issue の本文から書いたものです。
説明
Summary
The year in review counts events from stored data, and DevMacro deletes activity events and daily snapshots older than 13 months. So a past year's page undercounts once part of it has been purged, without saying so: in November 2026, the 2025 page counts only events from October 2025 onward.
Found while building the year in review slides (pull request for the slides issue), at 3dcd273 on 262-year-in-review.
Evidence
- Retention:
HISTORY_RETENTION_MONTHS = 13andretentionCutoffsinsrc/lib/jobs/retention.ts:17and:56-66delete events withoccurred_atbefore the cutoff and snapshots before its UTC date. - The totals count a past year from 1 January when the provider was connected before it (
computeYearSummaryinsrc/lib/public-metrics/yearly.ts, window fromhistoryStart, which takes the earlier of the connection and the oldest stored event), so the purged months count as zero rather than as missing. - The slides (busiest day, longest run, most active provider) count only stored events too, and the partial year note only covers a first connection or first event after 1 January.
Expected
A year whose start is older than the retention cutoff says plainly that it is counted from the cutoff day (or shows no year that retention has fully removed), instead of presenting a partial count as the whole year.
Acceptance criteria
- The year page and its images say from which day a past year is counted when retention has removed its earlier months.
- Unit test at the cutoff boundary (a year starting one day before and one day after the cutoff).
Model: anthropic/claude-opus-5-5 | Reasoning effort: unknown
- 主要言語
- TypeScript
- スター
- 1
- フォーク
- 1
- 平均マージ
- 6時間 56分
- マージ済み PR(30日)
- 136
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
eddiejaoude/StackDash のほかの issue
-
area: docs documentation priority: P3 size: S
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
eddiejaoude/StackDash#462 ·
メンテナーはふだん 1 日以内に返信
-
area: web bug priority: P3 size: XS
難易度 1/5 1〜3時間 初心者へのやさしさ 85/100
eddiejaoude/StackDash#432 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area: database bug priority: P3 size: S
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
eddiejaoude/StackDash#419 ·
メンテナーはふだん 1 日以内に返信
-
area: docs bug priority: P2 size: XS
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
eddiejaoude/StackDash#418 ·
メンテナーはふだん 1 日以内に返信
-
accessibility area: timeline bug priority: P3 size: XS
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
eddiejaoude/StackDash#389 ·
メンテナーはふだん 1 日以内に返信
eddiejaoude/StackDash の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
open-webui/tether#52 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
voidzero-dev/void#835 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
AykutSarac/jsoncrack.com#616 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
melgarafael/DeskcommCRM#4679 ·
メンテナーはふだん 1 日以内に返信