Conversation
- Introduced checklists in `SUBMISSION.md` for pre-submission tasks and interview readiness. - Created detailed checklists in `docs/checklists/` covering homework rubric, pre-submission verification, known gaps, enhancements backlog, and overall checklist usage. - Each checklist includes actionable items to ensure thorough preparation before submission and interviews.
- Updated `README.md` to include links to the new roadmap and checklists for better navigation. - Expanded `SUBMISSION.md` to incorporate systematic checklists for homework and interview preparation, detailing the purpose of each document. - Introduced `HOMEWORK-SPEC.md` and `ROADMAP.md` to provide comprehensive project specifications and status tracking. - Added `checklists/README.md` to guide users through the checklist process before submission and interviews.
- Added new build commands for staging and production environments in `package.json`. - Updated deployment scripts to include the new build commands for both staging and production deployments.
- Added new environment variables for API base URLs in both `deploy-production.yml` and `deploy-staging.yml`. - Updated build commands to use specific build scripts for web applications in both workflows.
- Revised quick start commands to streamline setup process with `npm run setup` and `npm run setup:dev-vars:sync`. - Enhanced performance section to clarify virtualization of history lists and improved image handling with responsive `srcset` for player avatars.
- Introduced a new route for creating sessions at `/sessions/new`, including a form for session title and player names. - Updated the Overview and SessionDetail components to display the session ID with a copy button for easy access. - Enhanced PlayerAvatar component to support responsive image loading with `srcset`. - Added a new SessionId component for displaying and copying session IDs. - Updated API to include a method for creating sessions, ensuring full functionality from the UI to the backend.
- Added MediaUpload component for handling video and photo uploads with progress tracking and cancellation. - Introduced SessionMediaSection for attaching media to sessions, including video and poster uploads. - Enhanced CreateSession route to support optional player photo uploads during session creation. - Updated SessionDetail to display video and media upload options. - Improved media handling in the API, allowing for video URLs, posters, and player photos to be updated in sessions. - Added support for new video MIME types and updated OpenAPI specifications accordingly. - Implemented responsive image handling for session posters using PosterThumb component.
- Introduced a motion system with new utility classes for smooth transitions and animations. - Updated various components (e.g., App, MediaUpload, SessionDetail) to utilize the new motion classes for improved user experience. - Added AnimatedScore component for odometer-style score display using @number-flow/react. - Implemented AnimatedOutlet and AnimatedPanel for route transitions with horizontal sliding effects. - Enhanced accessibility by ensuring animations respect user preferences for reduced motion. - Updated styling rules to maintain a cohesive visual identity with Tailwind and shadcn. - Added new TabStrip component for improved navigation with sliding indicators. - Introduced RouteSkeleton for better loading states that match destination layouts.
- Introduced a new `GameGuideCard` component to display game mode instructions in a collapsible format. - Created a centralized `game-guides.ts` file as the single source of truth for game rules and instructions. - Added a new `GAME-GUIDES.md` documentation file detailing how to play each game mode. - Updated the `CreateSession`, `Overview`, and `SessionDetail` routes to incorporate the `GameGuideCard` for enhanced user experience. - Implemented tests for the `resolveGameId` function to ensure accurate game mode detection from session titles. - Enhanced documentation to guide future updates and maintain consistency across game instructions.
- Added support for JWT authentication, allowing users to exchange API keys for JWTs via the new `/auth/token` endpoint. - Introduced API key management with routes for listing and creating API keys, enhancing security and user control. - Updated the OpenAPI specification to reflect new authentication methods and security schemes. - Enhanced the principal resolution logic to support JWTs and API keys, improving authorization handling across the application. - Added tests to ensure proper functionality of the new authentication features and their integration with existing components.
…ures - Introduced `RateLimiter` Durable Object for per-IP rate limiting, replacing in-memory token buckets. - Added KV caching for session lists with a 15s TTL, including cache invalidation on session updates. - Implemented structured JSON logging with `X-Trace-Id` for enhanced observability and error tracking. - Updated health check endpoint to support deep readiness checks with database connectivity verification. - Enhanced API routes and middleware to integrate new features, ensuring compliance with updated specifications. - Added tests for health checks, rate limiting, and session caching functionalities to ensure reliability.
…ken setup - Clarified the process for creating KV namespaces, specifying that commands should be run from the `apps/api` directory. - Added instructions for copying KV namespace IDs into `wrangler.toml` for staging and production environments. - Included guidance for local development without Cloudflare KV and troubleshooting authentication errors related to the Cloudflare API token.
- Added unit tests for the History and Overview components using Vitest and Testing Library, improving test coverage and reliability. - Introduced contract tests to ensure OpenAPI paths align with expected schemas, enhancing API stability. - Implemented visual regression tests with Playwright to capture UI changes and maintain visual consistency. - Updated README and ROADMAP to reflect new testing capabilities and deployment instructions, including a full staging pipeline command. - Upgraded Wrangler to version 4 across the project for improved development experience.
- Updated session list caching to use a 60s TTL in Cloudflare KV with a 15s HTTP max-age for responses, improving cache efficiency. - Introduced a new utility function `isSessionId` for validating session IDs against a UUID format. - Enhanced session retrieval routes to validate session IDs before processing requests, ensuring better error handling. - Refactored cache-related functions to handle errors gracefully, maintaining API reliability. - Updated documentation to reflect changes in caching strategy and session ID validation.
- Integrated PWA capabilities using vite-plugin-pwa, enabling offline access and caching for session data. - Added i18n support with react-i18next, providing English translations for navigation and session details. - Implemented a scorecard export feature, allowing users to generate print-ready scorecards for sessions. - Introduced an OfflineBanner component to notify users when offline, enhancing user experience. - Updated package dependencies to include necessary libraries for analytics and query persistence. - Enhanced documentation to reflect new features and usage instructions.
… updates - Updated the `FileField` component to include a visible button for file selection, improving user experience. - Implemented state management to display the selected file name, enhancing feedback for users. - Modified tooltip descriptions in the documentation to clarify the new file input pattern and usage guidelines. - Ensured accessibility by maintaining proper aria attributes and labels for the file input.
- Introduced a Contributor Covenant Code of Conduct to establish community standards for respectful and inclusive participation. - Added a CONTRIBUTING.md file outlining the development workflow, code standards, and guidelines for submitting pull requests. - Updated README.md to link to the new CODE_OF_CONDUCT and CONTRIBUTING documents for better visibility. - Enhanced SECURITY.md to clarify the project's status as a take-home project and provide reporting channels for vulnerabilities.
Add CODE_OF_CONDUCT and CONTRIBUTING documentation
- Updated `SessionId` component to change "Session ID" to "Match ref" for better context. - Enhanced `SessionMediaSection` with translations for media-related text and tooltips. - Revised `field-tooltips` for clearer descriptions and consistency. - Improved error messages and hints across various components for better user experience. - Integrated translation support in `ApiKeys`, `CreateSession`, and `Overview` components for better internationalization.
- Clarified tooltip visibility to show only on hover or focus of the help icon. - Revised documentation for tooltips to enhance accessibility and user guidance. - Minor adjustments to tooltip component styling for improved user experience.
…d organization - Removed inline header elements from the App component and replaced them with a dedicated AppHeader component. - Enhanced AppHeader with navigation tabs, owner switcher, and theme toggle for better user experience. - Updated OwnerSwitcher to support a compact layout for the AppHeader. - Adjusted TabStrip styling for improved visual consistency. - Refactored form field styles for better reusability across components.
- Introduced a new release management script (`release.mjs`) to handle semantic versioning and changelog updates. - Updated `package.json` scripts for streamlined release commands. - Enhanced GitHub Actions workflow for creating releases upon tagging. - Added `RELEASE.md` to document the release process and commands. - Updated `CHANGELOG.md` to include a link to the changelog format. - Revised `DEPLOYMENT.md` to reference the new release documentation. - Added version synchronization script to ensure consistency across package versions.
- Implemented collapsible functionality in the GameGuideCard component to reveal game guide details smoothly. - Introduced new CSS styles for collapsible panels, including animations and transitions for better visual feedback. - Updated the GameGuideCard structure to use a button for toggling the visibility of the guide content. - Added a chevron icon to indicate the open/close state of the collapsible section.
- Introduced a new AppFooter component to display the application version at the bottom of the page. - Added a mechanism in vite.config.ts to inject the application version from package.json during build time. - Updated the App component layout to include the AppFooter and adjusted main content styling for better structure. - Created a new app-version.ts file to manage versioning logic consistently across the application.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary by cubic
Adds JWT auth, per‑IP rate limiting, and session list caching to harden the API, and upgrades the web UI with smooth motion, helpful tooltips, game guides, media upload, and a versioned footer.
New Features
/auth/token); DO rate limiter; KV caching forGET /sessionswithX-Cacheand 15smax-age; structured JSON logs withX-Trace-Id; deep/health?deep=1; media updates (HLS MIME, attach video/poster, player photo updates); OpenAPI updated and served in the app (/docs).AnimatedOutlet, skeletons, tab strip) with reduced‑motion support; required field tooltips viaTextField/SelectField/FileField;GameGuideCardwith single‑source copy;MediaUpload+SessionMediaSection; new header, theme toggle, offline banner, andAppFootershowing version; image perf for avatars/posters (srcset);AnimatedScore,ScoreTimeline,SessionIdcopy; owner switcher.Migration
RATE_LIMITERDurable Object (run new DO migration) and create a KV namespace bound asCACHE(copy IDs intowrangler.toml).OCHE_JWT_SECRET(API),VITE_API_BASE_STAGING/VITE_API_BASE_PROD(web); keepMEDIA_SIGNING_SECRETset per env.main; production deploy triggers onv*tags.Written for commit a3fa66f. Summary will update on new commits.