This website requires JavaScript.
d850d88a3a
test: add unit tests for extractImageFromClipboard
Dmytro Stanchiev
2026-04-08 19:58:03 -04:00
2d34bbebc4
feat: add extractImageFromClipboard utility with broad image/* MIME matching
Dmytro Stanchiev
2026-04-08 19:58:01 -04:00
722c0f0f7d
🚸 feat: redesign AI toolbar with two-zone layout and HoverCard shortcuts popover
Dmytro Stanchiev
2026-04-08 13:08:36 -04:00
650d1d5f95
🩹 fix: restore textarea placeholder padding in ai-toolbar
Dmytro Stanchiev
2026-04-08 09:19:59 -04:00
b93669a416
🔥 fix: remove border and background from empty events skeleton
Dmytro Stanchiev
2026-04-08 09:15:05 -04:00
9dfd4ef326
✨ feat: add Google and Apple OAuth via better-auth socialProviders
Dmytro Stanchiev
2026-04-08 09:12:50 -04:00
e59476dea9
fix: remove fixed height and icon margins from sign-in buttons
Dmytro Stanchiev
2026-04-08 01:51:22 -04:00
86bb20baf4
fix: remove icon margin overrides from mode toggle menu items
Dmytro Stanchiev
2026-04-08 01:51:17 -04:00
1ef63d8070
fix: remove fixed height and icon margins from event actions toolbar
Dmytro Stanchiev
2026-04-08 01:51:12 -04:00
0f46e9322f
refactor: mobile-first AI toolbar layout
Dmytro Stanchiev
2026-04-08 01:50:06 -04:00
0807779c9b
feat: make AI summary notification dismissable
Dmytro Stanchiev
2026-04-08 01:47:29 -04:00
a3000def67
fix: remove redundant shadcn component className overrides
Dmytro Stanchiev
2026-04-08 01:43:55 -04:00
a819cbfced
fix: normalize action button icon spacing and text size
Dmytro Stanchiev
2026-04-08 01:33:33 -04:00
de6407170d
fix: align component styling inconsistencies
Dmytro Stanchiev
2026-04-08 01:29:51 -04:00
8eda6c89e2
feat: replace all vanilla HTML elements with shadcn components
Dmytro Stanchiev
2026-04-08 01:17:18 -04:00
1cee73702b
feat: add quick duration selectors (+15 min, +30 min, +1h, +3h) in event dialog
Dmytro Stanchiev
2026-04-08 01:07:14 -04:00
6884a87e3c
feat: add Today / Next week / Next month quick selectors to date picker
Dmytro Stanchiev
2026-04-08 01:04:34 -04:00
cc5ce95e1b
feat: replace raw date/time inputs with shadcn Calendar + Select picker
Dmytro Stanchiev
2026-04-08 01:02:47 -04:00
19228b0a71
feat(ui): add Separator component
Dmytro Stanchiev
2026-04-08 00:57:07 -04:00
26a82681c4
refactor(page): move event actions into AIToolbar, remove standalone EventActionsToolbar
Dmytro Stanchiev
2026-04-08 00:57:02 -04:00
2fc21ee929
feat(ai-toolbar): merge event actions into toolbar, add motion animations and AI summary panel
Dmytro Stanchiev
2026-04-08 00:56:58 -04:00
8d7cc5b2a5
style(recurrence-picker): tighten spacing and use muted xs labels
Dmytro Stanchiev
2026-04-08 00:56:52 -04:00
a26787a026
feat(event-dialog): redesign with glass-strong styling, icon-decorated inputs, and Cancel button
Dmytro Stanchiev
2026-04-08 00:56:49 -04:00
e000d41474
feat(event-actions-toolbar): redesign with icon buttons, sm size, and event count badge
Dmytro Stanchiev
2026-04-08 00:56:43 -04:00
5c7003fd13
feat(drag-drop-container): replace border highlight with animated glass overlay on drag
Dmytro Stanchiev
2026-04-08 00:56:38 -04:00
8b54a661fe
feat(events-list): add AnimatePresence for list transitions and improve empty state
Dmytro Stanchiev
2026-04-08 00:56:35 -04:00
c80322f20a
feat(event-card): redesign with motion layout animations, improved date formatting, and contextual metadata
Dmytro Stanchiev
2026-04-08 00:56:28 -04:00
2992cfbccd
feat(rrule-display): display recurrence rule as a Badge instead of plain text
Dmytro Stanchiev
2026-04-08 00:56:21 -04:00
625e019ae7
feat(mode-toggle): simplify component, add icons to menu items and active state highlight
Dmytro Stanchiev
2026-04-08 00:56:17 -04:00
8ee5688168
feat(sign-in): add icons, use ghost variant and sm size for header buttons
Dmytro Stanchiev
2026-04-08 00:56:13 -04:00
59bc8fee38
feat(auth): redesign auth pages with glass UI and motion animations
Dmytro Stanchiev
2026-04-08 00:56:08 -04:00
c6086bdcc7
refactor(layout): switch to Geist fonts, redesign header, default to dark theme
Dmytro Stanchiev
2026-04-08 00:56:03 -04:00
22fe3ec97b
style: overhaul design tokens, shadows, animations, and glass utilities
Dmytro Stanchiev
2026-04-08 00:55:55 -04:00
40dfde34a2
deps: add framer-motion and radix-ui packages
Dmytro Stanchiev
2026-04-08 00:55:48 -04:00
865bef63ac
chore: add .chrome to .gitignore
Dmytro Stanchiev
2026-04-08 00:55:45 -04:00
9e27b41efe
chore: migrate ui skills to bun
Dmytro Stanchiev
2026-04-07 23:18:56 -04:00
c4865a6d20
feat: install ui skills
Dmytro Stanchiev
2026-04-07 23:17:14 -04:00
d002bbc29e
♿ ️ feat: fix accessibility warnings, PWA icons, and form field attributes
Dmytro Stanchiev
2026-04-07 23:08:48 -04:00
cbd2559169
🐛 fix: normalize AI-generated dates to valid ISO offset datetimes
Dmytro Stanchiev
2026-04-07 23:01:42 -04:00
f3ccbf5db5
fix: ignore .chrome dir that breaks turbopack
Dmytro Stanchiev
2026-04-07 22:59:41 -04:00
735350a4d1
chore: create .chrome directory
Dmytro Stanchiev
2026-04-07 17:06:19 -04:00
685241c92f
chore: update skills
Dmytro Stanchiev
2026-04-07 17:06:08 -04:00
7ffcb4dc43
chore: add dokploy mcp
Dmytro Stanchiev
2026-04-07 16:12:28 -04:00
be70a4579f
Merge pull request 'feat: multimodal AI event creation with image support' (#1 ) from image-parse into main
Dmytro Stanchiev
2026-04-07 15:21:27 -04:00
f38b0188df
🚨 fix: resolve all linter and typecheck warnings across codebase
Dmytro Stanchiev
2026-04-07 14:42:24 -04:00
54ca910609
🔧 chore: add biome config for Tailwind CSS and CSS module declarations
Dmytro Stanchiev
2026-04-07 14:42:17 -04:00
fab0d2ff47
refactor(components): derive ImagePicker variant types from buttonVariants
Dmytro Stanchiev
2026-04-07 13:11:42 -04:00
a7716d87df
fix(components): add unoptimized image prop, overflow containment, and accessibility
Dmytro Stanchiev
2026-04-07 13:11:35 -04:00
096f548ec3
refactor(page): extract AI handler helpers and add client-side image validation
Dmytro Stanchiev
2026-04-07 13:11:26 -04:00
79f98ebfd3
refactor(api): simplify AI event route with extracted utilities and env-based model
Dmytro Stanchiev
2026-04-07 13:11:15 -04:00
7bb4f2be9d
refactor(types): strengthen Zod schemas with regex validation and derive CalendarEvent
Dmytro Stanchiev
2026-04-07 13:11:05 -04:00
dc4204a740
refactor(lib): extract shared image constants and JSON parsing utilities
Dmytro Stanchiev
2026-04-07 13:10:59 -04:00
a0a7e021a8
style: standardize import ordering, type imports, and formatting in source files
Dmytro Stanchiev
2026-04-07 13:10:49 -04:00
cbae9fa1c9
style: standardize formatting in opencode tooling files
Dmytro Stanchiev
2026-04-07 13:10:35 -04:00
4e09059a3d
chore(deps): add @typescript/native-preview, biome lint integration, and typecheck script
Dmytro Stanchiev
2026-04-07 13:10:16 -04:00
95de6ae46a
feat(page): wire image upload state, base64 conversion, and API integration into home page
Dmytro Stanchiev
2026-04-07 11:58:10 -04:00
5e888ce7ae
feat(components): add image preview, picker, and clear controls to AIToolbar
Dmytro Stanchiev
2026-04-07 11:58:01 -04:00
94de1dde0e
feat(components): add image drag-drop support to DragDropContainer
Dmytro Stanchiev
2026-04-07 11:57:47 -04:00
c02c6ece5d
feat(components): add ImagePicker file upload component
Dmytro Stanchiev
2026-04-07 11:57:32 -04:00
8d1b04f646
feat(api): refactor AI event route with Zod validation, multimodal image support, and JSON extraction
Dmytro Stanchiev
2026-04-07 11:57:22 -04:00
3d6999312c
feat(lib): add AI event Zod schemas for request validation and response parsing
Dmytro Stanchiev
2026-04-07 11:57:11 -04:00
6944215578
chore(deps): add zod dependency
Dmytro Stanchiev
2026-04-07 11:57:01 -04:00
f8213883df
chore: zod skill
Dmytro Stanchiev
2026-04-07 11:31:34 -04:00
c2263602c4
chore: install openagent opencode
Dmytro Stanchiev
2026-04-07 11:31:26 -04:00
b4c03ff25e
style(ui): standardize UI component file formatting
Dmytro Stanchiev
2026-04-07 08:10:13 -04:00
fd5716f39e
style(components): standardize main component file formatting
Dmytro Stanchiev
2026-04-07 08:10:05 -04:00
954e73c007
style(app): standardize app page file formatting
Dmytro Stanchiev
2026-04-07 08:09:56 -04:00
48ef4f60df
style(api): standardize API route file formatting
Dmytro Stanchiev
2026-04-07 08:09:49 -04:00
e39ba6be97
style(lib): standardize utils file formatting
Dmytro Stanchiev
2026-04-07 08:09:43 -04:00
3b7c246a47
style(lib): standardize rfc5545-types file formatting
Dmytro Stanchiev
2026-04-07 08:09:40 -04:00
5be55cec7c
style(lib): standardize events-db file formatting
Dmytro Stanchiev
2026-04-07 08:09:36 -04:00
dab77befc2
style(auth): standardize auth file formatting
Dmytro Stanchiev
2026-04-07 08:09:32 -04:00
076cf8acd0
style(db): standardize database source file formatting
Dmytro Stanchiev
2026-04-07 08:09:26 -04:00
ae8d547486
style(public): standardize manifest.json formatting
Dmytro Stanchiev
2026-04-07 08:09:19 -04:00
3d9e2452c4
style(db): standardize database migration file formatting
Dmytro Stanchiev
2026-04-07 08:09:15 -04:00
db9d6399dd
style(config): standardize configuration file formatting
Dmytro Stanchiev
2026-04-07 08:09:09 -04:00
a897e8ead1
feat(lib): add OpenRouter client implementation
Dmytro Stanchiev
2026-04-07 08:08:58 -04:00
c3e3018018
feat(deps): add @openrouter/sdk dependency
Dmytro Stanchiev
2026-04-07 08:08:51 -04:00
be389c6cfa
style(skills): standardize utility-types.ts formatting
Dmytro Stanchiev
2026-04-07 08:08:44 -04:00
ada8e03a04
chore(config): add OpenRouterTeam to skill selector repos
Dmytro Stanchiev
2026-04-07 08:08:36 -04:00
956de68591
style(skills): standardize skill metadata JSON formatting
Dmytro Stanchiev
2026-04-07 08:08:28 -04:00
e25f917b9a
chore(skills): add create-agent and typescript-sdk skills
Dmytro Stanchiev
2026-04-07 08:08:01 -04:00
3fec791f28
Merge branch 'betterauth-migration'
Dmytro Stanchiev
2026-04-06 23:38:56 -04:00
5922a835cb
style: fix unused variable warnings
Dmytro Stanchiev
2026-04-06 23:27:32 -04:00
bd861e56c0
chore: remove stale FIXME.md
Dmytro Stanchiev
2026-04-06 23:26:26 -04:00
403f41f078
fix(auth): sanitize error messages in error page
Dmytro Stanchiev
2026-04-06 23:26:09 -04:00
4e7c56eec9
fix(ui): add error handling and loading state to sign-in
Dmytro Stanchiev
2026-04-06 23:25:40 -04:00
8d9329050d
fix(ui): add error handling to sign-out
Dmytro Stanchiev
2026-04-06 23:24:40 -04:00
e1fd7dc5a3
feat(api): add input validation to AI endpoints
Dmytro Stanchiev
2026-04-06 23:24:15 -04:00
a4656520f8
fix(db): ensure pgcrypto extension for UUID generation
Dmytro Stanchiev
2026-04-06 23:23:26 -04:00
3b5934dbfd
fix(auth): correct session check in sign-out page
Dmytro Stanchiev
2026-04-06 23:23:08 -04:00
cfa93da149
refactor(auth): remove unused SessionProvider wrapper
Dmytro Stanchiev
2026-04-06 23:22:33 -04:00
c6017b2f78
fix(db): wrap migration in transaction
Dmytro Stanchiev
2026-04-06 23:21:42 -04:00
bcd488e2d3
fix(auth): use correct sign-in method for genericOAuth
Dmytro Stanchiev
2026-04-06 23:20:39 -04:00
c3026c8262
feat(api): add auth check to ai-summary endpoint
Dmytro Stanchiev
2026-04-06 23:18:46 -04:00
4c6f880a3f
feat(auth): configure trustedOrigins for CSRF protection
Dmytro Stanchiev
2026-04-06 23:18:20 -04:00
ece03a9124
feat(auth): validate required env vars at startup
Dmytro Stanchiev
2026-04-06 23:17:51 -04:00
2a808f8ca1
fix(db): preserve OAuth user verified status during migration
Dmytro Stanchiev
2026-04-06 23:16:58 -04:00
afb27eb66d
fix(db): remove authenticator references from relations
Dmytro Stanchiev
2026-04-06 23:16:34 -04:00
15be2399c6
refactor: migrate session usage to better-auth API
Dmytro Stanchiev
2026-04-06 22:41:57 -04:00