Skip to content

typing(strict): services batch 4 (no API/UI changes)#38

Merged
msaedi merged 1 commit intomainfrom
typing-strict/services-batch4
Sep 21, 2025
Merged

typing(strict): services batch 4 (no API/UI changes)#38
msaedi merged 1 commit intomainfrom
typing-strict/services-batch4

Conversation

@msaedi
Copy link
Copy Markdown
Owner

@msaedi msaedi commented Sep 21, 2025

Summary

  • tighten typing for bulk operation service and Celery task modules so strict mypy is clean
  • add typed Celery decorator helper + explicit task contexts to keep behavior unchanged while exposing signatures
  • normalize task helper types and safe casts where repositories return untyped data

Overrides

[[tool.mypy.overrides]]
module = [
  "backend.app.services.bulk_operation_service",
  "backend.app.tasks.monitoring_tasks",
  "backend.app.tasks.payment_tasks",
  "backend.app.tasks.privacy_tasks",
]
strict = true

Testing

  • pre-commit run --all-files
  • npm ci
  • npm ci (frontend)
  • npx --yes playwright install --with-deps
  • npm run build (frontend)
  • npm run size (frontend)
  • local backend pytest skipped; CI will run it

npm run size

  • framework 49.33 kB / 190 kB; main-runtime 31.88 kB / 140 kB; polyfills 35.16 kB / 120 kB; shared-first-load 37.69 kB / 60 kB; shared-auth 46.75 kB / 60 kB

Env-contract (API-only)

Preview run: https://github.com/msaedi/instructly/actions/runs/17899668690/job/50890981870
[headers] X-Site-Mode=preview X-Phase=instructor_only
[cors] access-control-allow-credentials=true access-control-allow-origin=https://preview.instainstru.com
[429-triage] dedupeKey=env-contract:rate-limit-test limited=7 attempts=10

Beta run: https://github.com/msaedi/instructly/actions/runs/17899668690/job/50890981874
[headers] X-Site-Mode=prod X-Phase=instructor_only
[cors] access-control-allow-credentials=true access-control-allow-origin=https://beta.instainstru.com
[429-triage] dedupeKey=env-contract:rate-limit-test limited=7 attempts=10

@vercel
Copy link
Copy Markdown

vercel bot commented Sep 21, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
instainstru-preview Ready Ready Preview Comment Sep 21, 2025 10:21pm
instructly Ready Ready Preview Comment Sep 21, 2025 10:21pm

@github-actions
Copy link
Copy Markdown

🔒 Privacy Audit Results

Privacy Audit Report

Date: 2025-09-21 22:26:57
Execution Time: 0.84s

Summary

  • Total Endpoints Tested: 7
  • Passed: 7
  • Failed: 0

No violations found!

Coverage

  • public_endpoints: 4/4
  • authenticated_endpoints: 3/3
  • total: 7/7

📎 View detailed report
🔍 Run triggered by: pull_request

@codecov
Copy link
Copy Markdown

codecov bot commented Sep 21, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@msaedi msaedi merged commit 4488161 into main Sep 21, 2025
21 checks passed
@msaedi msaedi deleted the typing-strict/services-batch4 branch September 21, 2025 22:58
@msaedi
Copy link
Copy Markdown
Owner Author

msaedi commented Sep 21, 2025

Proofs on main (env-contract API-only) refreshed.\n\nPreview run: https://github.com/msaedi/instructly/actions/runs/17900050444/job/50891829217\n[headers] X-Site-Mode=preview X-Phase=instructor_only\n[cors] access-control-allow-credentials=true access-control-allow-origin=https://preview.instainstru.com\n[429-triage] dedupeKey=env-contract:rate-limit-test limited=7 attempts=10\n\nBeta run: https://github.com/msaedi/instructly/actions/runs/17900050444/job/50891829210\n[headers] X-Site-Mode=prod X-Phase=instructor_only\n[cors] access-control-allow-credentials=true access-control-allow-origin=https://beta.instainstru.com\n[429-triage] dedupeKey=env-contract:rate-limit-test limited=7 attempts=10

@msaedi
Copy link
Copy Markdown
Owner Author

msaedi commented Sep 21, 2025

Schemathesis proofs refreshed (target=all).\n\nRun: https://github.com/msaedi/instructly/actions/runs/17900097315\nPreview summary: [schemathesis-preview] total=0 passed=0 failures=0 errors=0\nBeta summary: [schemathesis-beta] total=0 passed=0 failures=0 errors=0\nArtifacts: schemathesis-evidence-preview, schemathesis-evidence-beta

msaedi added a commit that referenced this pull request Mar 20, 2026
…6,37,38)

Platform launch gate:
- Replace hardcoded date gate on Public Profile with student_launch_enabled
  platform config flag, default false (#5)
- Exposed through /api/v1/config/public, read-only in this pass

Tab indicators:
- Standardize all tab indicators to text-width across platform (#27)
- Shared textWidthTabs helper, applied to Bookings + Earnings tabs

Booking status consistency:
- Completed badge → blue everywhere: list cards, detail page, modal (#28)
- Shared bookingStatus helper for badge color standard
  (Confirmed=green, Completed=blue, Cancelled=red)
- Empty states for Upcoming + Past booking tabs (#29)

Messages fixes:
- "Last updated manually" → actual timestamp or hidden (#36)
- "NEXT BOOKING" → sentence case "Next booking" (#37)
- Upcoming badge → green (matches Confirmed standard)
- Booking cards in dropdown are now clickable links

Left nav:
- Reordered: Dashboard, Bookings, Messages, Availability,
  Referrals, Reviews, Instructor Profile, Account (#38)
- Messages added as route link with MessageSquare icon
- Shared nav config drives both desktop and mobile

Verify: 13,198 backend + 392 frontend tests passing.
msaedi added a commit that referenced this pull request Mar 21, 2026
…design (#339)

* feat(dashboard): A-Team quick wins Part 1 — 12 UI fixes (#1,6,7,10,12,14,15,17,19,20,21,22,23)

Icons and visual cleanup:
- Replace confetti emoji with Lucide Rocket on Go Live button (#1)
- Replace crooked star with Phosphor Star on Reviews card (#6)
- Proportional star fill based on rating, inline "4.5★ (3)" metadata (#7)
- Add @phosphor-icons/react dependency

Account settings overhaul:
- Single-open accordion — only one section expanded at a time (#14)
- Section icons: UserRoundPen (Account), SlidersHorizontal (Prefs), Info (About) (#21)
- Remove Acknowledgments from About, rename support label (#20)
- Remove phone management block from Preferences (#17)
- Format phone display as (212) 555-1001 in Account Details (#10)
- Shared formatPhoneDisplay helper in lib/phone.ts
- 2FA state refreshes immediately after enable/disable (#12)

2FA modal copy:
- Title → "Connect your authenticator app" (#15)
- Step 1/Step 2 labels, button → "Verify"

Notification preferences:
- Isolate per-toggle pendi single toggle change no longer
  flashes entire Push column (#19)

Instructor profile:
- Remove Personal Information accordion from dashboard context (#22)
- Skills & Pricing icon → Phosphor Tag (#23)

Verify: 13,194 backend + 389 frontend tests passing.

* feat(dashboard): A-Team quick wins Part 2 — 8 UI fixes (#5,27,28,29,36,37,38)

Platform launch gate:
- Replace hardcoded date gate on Public Profile with student_launch_enabled
  platform config flag, default false (#5)
- Exposed through /api/v1/config/public, read-only in this pass

Tab indicators:
- Standardize all tab indicators to text-width across platform (#27)
- Shared textWidthTabs helper, applied to Bookings + Earnings tabs

Booking status consistency:
- Completed badge → blue everywhere: list cards, detail page, modal (#28)
- Shared bookingStatus helper for badge color standard
  (Confirmed=green, Completed=blue, Cancelled=red)
- Empty states for Upcoming + Past booking tabs (#29)

Messages fixes:
- "Last updated manually" → actual timestamp or hidden (#36)
- "NEXT BOOKING" → sentence case "Next booking" (#37)
- Upcoming badge → green (matches Confirmed standard)
- Booking cards in dropdown are now clickable links

Left nav:
- Reordered: Dashboard, Bookings, Messages, Availability,
  Referrals, Reviews, Instructor Profile, Account (#38)
- Messages added as route link with MessageSquare icon
- Shared nav config drives both desktop and mobile

Verify: 13,198 backend + 392 frontend tests passing.

* fix(dashboard): address testing feedback on quick wins branch

Fixes from manual testing:
- Restore two-line empty state format: bold heading + muted subtitle
  in dashed card (Upcoming + Past booking tabs)
- Remove MessageSquare icon from Messages nav item (text-only like others)
- Public Profile button: environment-aware — always enabled on
  preview/localhost, gated by student_launch_enabled on beta hosts only
- 2FA: redirect to /login after disable (immediate) and after enable
  (after backup codes acknowledgment) to prevent stale session UI
- Account Details: split Name into First name + Last name (locked),
  inline phone verification with Verified/Verify/Pending states
- Update e2e tests for new reviews card DOM (reviews-summary testid)
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.

1 participant