Skip to content

[codex] Improve gig activity and historical status handling#302

Merged
michaelmwu merged 1 commit into
mainfrom
michaelmwu/gig-dates-status
May 23, 2026
Merged

[codex] Improve gig activity and historical status handling#302
michaelmwu merged 1 commit into
mainfrom
michaelmwu/gig-dates-status

Conversation

@michaelmwu
Copy link
Copy Markdown
Member

Summary

  • add the year to dashboard timestamp formatting and rebuild the committed dashboard bundle
  • stop bot candidate-match output from refreshing gig activity
  • bound stale recruiting reminders/notifications to recently posted gigs
  • mark locked or archived recruiting/unknown Discord threads as OUTDATED while preserving explicit FILLED/LOST
  • hide LOST and OUTDATED gigs from the default dashboard list, with a historical toggle for steering/admin users

Why

Old backfilled Discord gigs could look recently active because dashboard ingestion and bot posts refreshed activity. They could then trigger stale reminders even when the actual thread activity was old or the thread was already closed.

Validation

  • ./scripts/test.sh: 1598 passed, 20 skipped
  • ./scripts/lint.sh
  • ./scripts/mypy.sh
  • apps/admin_dashboard: bun run test
  • apps/admin_dashboard: bun run typecheck
  • apps/admin_dashboard: bun run lint
  • apps/admin_dashboard: bun run build

Copilot AI review requested due to automatic review settings May 23, 2026 13:38
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 23, 2026

Warning

Review limit reached

@michaelmwu, we couldn't start this review because you've used your available PR reviews for now.

Your plan currently allows 1 review/hour. Refill in 12 minutes and 58 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bb792e04-1f15-4526-9e48-ea173a640c78

📥 Commits

Reviewing files that changed from the base of the PR and between 0a10676 and b220f68.

📒 Files selected for processing (18)
  • .env.example
  • apps/admin_dashboard/src/dashboard-utils.test.ts
  • apps/admin_dashboard/src/dashboard-utils.ts
  • apps/admin_dashboard/src/main.tsx
  • apps/api/src/five08/backend/api.py
  • apps/api/src/five08/backend/static/dashboard/.vite/manifest.json
  • apps/api/src/five08/backend/static/dashboard/assets/index-D2CiH-sJ.css
  • apps/api/src/five08/backend/static/dashboard/assets/index-DAy1pv-J.js
  • apps/api/src/five08/backend/static/dashboard/assets/index-DT8AhUVi.js
  • apps/api/src/five08/backend/static/dashboard/index.html
  • apps/discord_bot/src/five08/discord_bot/cogs/jobs.py
  • docs/configuration.md
  • docs/discord-gig-dashboard.md
  • packages/shared/src/five08/engagements.py
  • packages/shared/src/five08/settings.py
  • tests/unit/test_backend_api.py
  • tests/unit/test_engagements.py
  • tests/unit/test_jobs.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch michaelmwu/gig-dates-status

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR improves Discord gig “activity” and status/history handling end-to-end (Discord bot ingestion → persistence/querying → dashboard UI), reducing false “recent activity” signals from bot output and preventing stale reminders/notifications from triggering on very old/backfilled gigs.

Changes:

  • Add a max-age bound for recruiting stale notifications/reminders and introduce GIG_RECRUITING_REMINDER_MAX_AGE_DAYS.
  • Treat locked/archived gig threads as OUTDATED (unless explicitly [FILLED]/[LOST]), and prevent candidate-match persistence from refreshing activity.
  • Hide historical terminal statuses (LOST, OUTDATED) from the default gig list, with an opt-in “include historical” toggle for steering/admin users; also update dashboard timestamp formatting to include year and rebuild the bundled assets.

Reviewed changes

Copilot reviewed 16 out of 18 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/unit/test_jobs.py Adds coverage for locked/archived thread → OUTDATED mapping and reminder behavior (mark outdated without sending).
tests/unit/test_engagements.py Adds query-shape tests for hiding historical statuses by default and applying max-age bounds for notifications/reminders.
tests/unit/test_backend_api.py Updates/extends API tests for include_historical handling and reminder max-age settings passthrough.
packages/shared/src/five08/settings.py Introduces gig_recruiting_reminder_max_age_days shared setting.
packages/shared/src/five08/engagements.py Implements historical filtering/sorting for dashboard gigs; adds max-age filtering for notifications/reminders.
docs/discord-gig-dashboard.md Documents new reminder max-age behavior and historical status visibility rules.
docs/configuration.md Documents the new GIG_RECRUITING_REMINDER_MAX_AGE_DAYS environment variable.
apps/discord_bot/src/five08/discord_bot/cogs/jobs.py Prevents candidate-match persistence from refreshing activity; marks locked/archived threads OUTDATED; passes max-age to reminder queries.
apps/api/src/five08/backend/static/dashboard/index.html Updates asset references for rebuilt dashboard bundle.
apps/api/src/five08/backend/static/dashboard/assets/index-D2CiH-sJ.css Rebuilt dashboard CSS bundle output.
apps/api/src/five08/backend/static/dashboard/.vite/manifest.json Updates Vite manifest to match rebuilt dashboard bundle.
apps/api/src/five08/backend/api.py Adds include_historical query param for gigs list and passes reminder max-age into notifications query.
apps/admin_dashboard/src/main.tsx Adds “Include historical” toggle (steering/admin) and wires it into the gigs API request + refresh behavior.
apps/admin_dashboard/src/dashboard-utils.ts Updates date formatting to include the year.
apps/admin_dashboard/src/dashboard-utils.test.ts Adds test ensuring formatted timestamps include the year.
.env.example Adds GIG_RECRUITING_REMINDER_MAX_AGE_DAYS example value.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@michaelmwu michaelmwu merged commit 73c34dc into main May 23, 2026
8 checks passed
@michaelmwu michaelmwu deleted the michaelmwu/gig-dates-status branch May 23, 2026 13:43
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