Skip to content

fix: surface upcoming tasks and cut ingest volume#17

Merged
Aarav261 merged 1 commit into
mainfrom
fix/task-capture-and-ingest-volume
Jun 30, 2026
Merged

fix: surface upcoming tasks and cut ingest volume#17
Aarav261 merged 1 commit into
mainfrom
fix/task-capture-and-ingest-volume

Conversation

@Aarav261

Copy link
Copy Markdown
Owner

Capture/brief layer:

  • normalize: include not-yet-started task defs with a future start_date (plan-ahead brief) and rank/window by target_date instead of the hard due_date, so the strip matches what students see in OnTrack.

Ingest volume & data hygiene:

  • injected.js: sweep only active (non-ended) units instead of every project the student has ever enrolled in.
  • background.js: dedup identical ingest payloads (SPA re-fetches the same data on every navigation), clearing the hash on a failed push.
  • ingest: per-username rate-limit key so one session can't starve others behind a shared proxy/gateway IP; skip project_tasks for inactive projects and prune tasks left behind by ended projects.

Popup:

  • snapshot cache is now window-aware: a fresh 7-day cache no longer satisfies a 14-day (2-week) request, so the strip and task list fill the selected window.
  • TaskList empty-state reflects the actual window length.

Summary

Related issue

Type of change

  • Bug fix
  • New feature
  • Refactor / cleanup
  • Documentation
  • Other:

Checklist

  • My branch is based on the latest main
  • ruff check . passes
  • pytest passes (if backend changes)
  • npm run lint passes in extension/ (if extension changes)
  • I added/updated tests where it makes sense
  • I did not commit secrets, .env files, tokens, or database files

Notes for reviewers

Capture/brief layer:
- normalize: include not-yet-started task defs with a future start_date
  (plan-ahead brief) and rank/window by target_date instead of the hard
  due_date, so the strip matches what students see in OnTrack.

Ingest volume & data hygiene:
- injected.js: sweep only active (non-ended) units instead of every project
  the student has ever enrolled in.
- background.js: dedup identical ingest payloads (SPA re-fetches the same
  data on every navigation), clearing the hash on a failed push.
- ingest: per-username rate-limit key so one session can't starve others
  behind a shared proxy/gateway IP; skip project_tasks for inactive
  projects and prune tasks left behind by ended projects.

Popup:
- snapshot cache is now window-aware: a fresh 7-day cache no longer
  satisfies a 14-day (2-week) request, so the strip and task list fill the
  selected window.
- TaskList empty-state reflects the actual window length.
Copilot AI review requested due to automatic review settings June 30, 2026 05:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Aarav261 Aarav261 merged commit 323266b into main Jun 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants