Full deployment history for this project.
add public calendar event detail page
Merge pull request #72 from mbarbine/copilot/merge-all-pull-requests-into-one Merging multiple pull requests into one branch
chore: start consolidation of open PRs Agent-Logs-Url: https://github.com/mbarbine/platphorm-calendar/sessions/bce5be48-1b51-4a2e-8c91-a0945bf524aa Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #71 from mbarbine/copilot/merge-all-pull-requests Consolidate open PRs into one branch and preserve only non-redundant changes
chore: consolidate cleanup and test pull requests Agent-Logs-Url: https://github.com/mbarbine/calendar-app-webby/sessions/1ed3d631-8f71-47c0-a1bc-4109e9ae9f5b Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: consolidate functional open PR fixes Agent-Logs-Url: https://github.com/mbarbine/calendar-app-webby/sessions/1ed3d631-8f71-47c0-a1bc-4109e9ae9f5b Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Support local lab degraded RSS mode
Standardize calendar platform routes
Add Calendar MCP JSON-RPC contract
Standardize PlatPhorm lab routes
Standardize PlatPhorm lab routes
🧹 Remove unused useFingerprint function 🎯 **What:** Removed unused `useFingerprint` and `getOrCreateVisitorId` from `hooks/use-fingerprint.ts`, and their tests. 💡 **Why:** Reduces dead code, improving maintainability and readability without altering behavior. ✅ **Verification:** Ran `pnpm test` and `pnpm lint` to confirm no regressions were introduced. ✨ **Result:** A cleaner hooks directory with no functionally unused exports.
🧹 Remove unused canonicalUrl function from seo.ts
🧹 Remove unused getDeliveries function
🧹 Remove unused createCalendar function 🎯 What: I removed the `createCalendar` function from `lib/store.ts` and its corresponding unit test in `__tests__/lib/store.test.ts`. 💡 Why: The function was exported but never imported or called by any other file in the codebase. Removing dead code reduces maintenance overhead and improves overall readability. ✅ Verification: I searched the codebase to confirm the function was entirely unused. I also ran unit tests and linting locally to ensure no regressions were introduced. ✨ Result: Reduced technical debt and dead code footprint in the application store module without impacting functionality.
⚡ Bolt: Push date filters to db for seo generation routes
⚡ Bolt: Push date filters down to DB for SEO routes - Modified app/sitemap-events.xml/route.ts to pass 'from' parameter to getEvents() - Modified app/events.jsonld/route.ts to pass 'from' parameter to getEvents() - Replaced in-memory Array.prototype.filter() over entire event list with DB-level date filtering where possible to prevent memory bloat. - Added journal entry in .jules/bolt.md documenting the learning and action taken.
🎨 Palette: Improve keyboard focus states and fix ARIA stutter - Added `focus-visible` styles to `event-card.tsx` and `mini-calendar.tsx` - Applied `aria-hidden="true"` to emojis wrapped in labeled buttons in `mini-calendar.tsx`, `top-bar.tsx`, and `app-sidebar.tsx` - Logged new UX learnings to `.jules/palette.md` Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Fix missing authentication on integration endpoints Added `isAuthenticated` checks to all mutating integration endpoints (POST, PUT, DELETE) in `docs`, `jobs`, `kanban`, and `json` to prevent unauthenticated data manipulation. Updated corresponding test files to mock authentication appropriately. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #40 from mbarbine/bolt/optimize-get-events-filtering-295480447069894372 ⚡ Bolt: Push event metadata filtering down to database to prevent OOM
Merge branch 'main' into bolt/optimize-get-events-filtering-295480447069894372
Merge pull request #41 from mbarbine/bolt-perf-calendar-view-overfetch-10494598718864454939 ⚡ Bolt: [performance improvement] Prevent over-fetching and layout shifts in CalendarView
Merge branch 'main' into bolt-perf-calendar-view-overfetch-10494598718864454939
Merge pull request #39 from mbarbine/bolt/calendar-view-event-fetching-optimization-11951616202033987260 ⚡ Bolt: [performance improvement] Fetch only visible events in CalendarView
Merge branch 'main' into bolt/calendar-view-event-fetching-optimization-11951616202033987260
Merge pull request #37 from mbarbine/bolt/optimize-events-fetch-15261431871600983312 ⚡ Bolt: Optimize events fetch
Merge branch 'main' into bolt/optimize-events-fetch-15261431871600983312
Merge branch 'main' into bolt/postgres-jsonb-performance-9372083967664990984
Merge pull request #42 from mbarbine/bolt-optimize-getevents-metadata-12296660246541327084 ⚡ Bolt: [performance improvement] Optimize getEvents metadata queries
🎨 Palette: [UX improvement] Add loading spinners to async action buttons - Added `<Spinner />` to the "Save Event" button in `create-event-dialog.tsx` - Added `<Spinner />` to the "Sync to Kanban" and "Delete" buttons in `event-detail.tsx` - Created a journal entry in `.jules/palette.md` to document the learning Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Add missing authentication to integration endpoints Added `isAuthenticated` checks to all external integration routes (docs, jobs, kanban, json, producthunt) to prevent unauthenticated access to data and mutation endpoints. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: [performance improvement] optimize getEvents and integrations Push JSON metadata filter down to database to avoid memory bloat. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: [performance improvement] Prevent over-fetching and layout shifts in CalendarView Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: optimize getEvents with jsonb metadata filtering Pushes event metadata filtering down to Postgres using the @> JSONB operator instead of fetching all tenant events into memory and filtering via JS. Updates Kanban and Jobs integration routes to use the new filter. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Replace in-memory array filtering with PostgreSQL JSONB @> queries in integration routes Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [HIGH] Fix insecure storage of API keys in LocalStorage Migrate API key storage from LocalStorage to secure HttpOnly cookies to mitigate XSS risks. - Created /api/auth/session endpoint for cookie management. - Updated lib/auth.ts to support cookie-based authentication. - Refactored hooks/use-fingerprint.ts to remove LocalStorage usage. - Updated Settings UI to automatically set the session cookie on key creation. - Centralized configuration and updated security logs. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🧹 Remove unused getCalendarById function and its tests 🎯 **What:** Removed the `getCalendarById` function from `lib/store.ts` and the associated unit tests in `__tests__/lib/store.test.ts`. 💡 **Why:** This function was exported but not imported or called anywhere in the codebase. Removing it reduces dead code and improves maintainability. ✅ **Verification:** Verified that the function is no longer present in the codebase and confirmed that no other files import this function. ✨ **Result:** Reduced codebase size and improved maintainability by eliminating unused code. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Optimize event lookup by metadata in Jobs and Kanban integrations Eliminates N+1 query pattern by pushing the metadata filter (e.g., jobsJobId, kanbanTaskId) down to the PostgreSQL database layer using the JSONB containment operator (@>). Changes: - Added `metadata` filter support to `getEvents` in `lib/store.ts`. - Optimized `PUT /api/v1/integrations/jobs` to use database-level filtering. - Optimized `PUT /api/v1/integrations/kanban` to use database-level filtering. - Updated unit tests in `__tests__/lib/store.test.ts` to cover the new functionality. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #33 from mbarbine/bolt/optimize-get-events-8707267515904907861
Merge pull request #31 from mbarbine/fix-test-coverage-15242460683091263252 Fix missing test coverage for settings and lib utilities
Merge pull request #30 from mbarbine/update-llms-schema-3229816024921353756 Add platphorm-universal-schema-pack.json and update llms docs
Merge pull request #27 from mbarbine/sentinel-fix-api-keys-auth-4801316187004777073 🛡️ Sentinel: [CRITICAL] Fix authorization bypass in API