old4ever
cbae9fa1c9
style: standardize formatting in opencode tooling files
...
Reformat JSON configs and TypeScript scripts to use consistent
tab indentation, semicolons, and double quotes.
2026-04-07 13:10:35 -04:00
old4ever
4e09059a3d
chore(deps): add @typescript/native-preview, biome lint integration, and typecheck script
...
Add @typescript/native-preview for tsgo typechecking, integrate biome
check into the lint script, and add a dedicated typecheck script.
2026-04-07 13:10:16 -04:00
old4ever
95de6ae46a
feat(page): wire image upload state, base64 conversion, and API integration into home page
2026-04-07 11:58:10 -04:00
old4ever
5e888ce7ae
feat(components): add image preview, picker, and clear controls to AIToolbar
2026-04-07 11:58:01 -04:00
old4ever
94de1dde0e
feat(components): add image drag-drop support to DragDropContainer
2026-04-07 11:57:47 -04:00
old4ever
c02c6ece5d
feat(components): add ImagePicker file upload component
2026-04-07 11:57:32 -04:00
old4ever
8d1b04f646
feat(api): refactor AI event route with Zod validation, multimodal image support, and JSON extraction
2026-04-07 11:57:22 -04:00
old4ever
3d6999312c
feat(lib): add AI event Zod schemas for request validation and response parsing
2026-04-07 11:57:11 -04:00
old4ever
6944215578
chore(deps): add zod dependency
2026-04-07 11:57:01 -04:00
old4ever
f8213883df
chore: zod skill
...
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev >
2026-04-07 11:31:34 -04:00
old4ever
c2263602c4
chore: install openagent opencode
...
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev >
2026-04-07 11:31:26 -04:00
old4ever
b4c03ff25e
style(ui): standardize UI component file formatting
2026-04-07 08:10:13 -04:00
old4ever
fd5716f39e
style(components): standardize main component file formatting
2026-04-07 08:10:05 -04:00
old4ever
954e73c007
style(app): standardize app page file formatting
2026-04-07 08:09:56 -04:00
old4ever
48ef4f60df
style(api): standardize API route file formatting
2026-04-07 08:09:49 -04:00
old4ever
e39ba6be97
style(lib): standardize utils file formatting
2026-04-07 08:09:43 -04:00
old4ever
3b7c246a47
style(lib): standardize rfc5545-types file formatting
2026-04-07 08:09:40 -04:00
old4ever
5be55cec7c
style(lib): standardize events-db file formatting
2026-04-07 08:09:36 -04:00
old4ever
dab77befc2
style(auth): standardize auth file formatting
2026-04-07 08:09:32 -04:00
old4ever
076cf8acd0
style(db): standardize database source file formatting
2026-04-07 08:09:26 -04:00
old4ever
ae8d547486
style(public): standardize manifest.json formatting
2026-04-07 08:09:19 -04:00
old4ever
3d9e2452c4
style(db): standardize database migration file formatting
2026-04-07 08:09:15 -04:00
old4ever
db9d6399dd
style(config): standardize configuration file formatting
2026-04-07 08:09:09 -04:00
old4ever
a897e8ead1
feat(lib): add OpenRouter client implementation
2026-04-07 08:08:58 -04:00
old4ever
c3e3018018
feat(deps): add @openrouter/sdk dependency
2026-04-07 08:08:51 -04:00
old4ever
be389c6cfa
style(skills): standardize utility-types.ts formatting
2026-04-07 08:08:44 -04:00
old4ever
ada8e03a04
chore(config): add OpenRouterTeam to skill selector repos
2026-04-07 08:08:36 -04:00
old4ever
956de68591
style(skills): standardize skill metadata JSON formatting
2026-04-07 08:08:28 -04:00
old4ever
e25f917b9a
chore(skills): add create-agent and typescript-sdk skills
2026-04-07 08:08:01 -04:00
old4ever
3fec791f28
Merge branch 'betterauth-migration'
2026-04-06 23:38:56 -04:00
old4ever
5922a835cb
style: fix unused variable warnings
...
Prefix unused error variables with underscore to indicate
intentionally unused catch parameters.
2026-04-06 23:27:32 -04:00
old4ever
bd861e56c0
chore: remove stale FIXME.md
...
Remove outdated FIXME file about minimatch types from 2025.
2026-04-06 23:26:26 -04:00
old4ever
403f41f078
fix(auth): sanitize error messages in error page
...
Add basic XSS sanitization by removing angle brackets from error
URL parameters before rendering.
2026-04-06 23:26:09 -04:00
old4ever
4e7c56eec9
fix(ui): add error handling and loading state to sign-in
...
Add try/catch with toast notification and loading state for sign-in
button to improve UX and error visibility.
2026-04-06 23:25:40 -04:00
old4ever
8d9329050d
fix(ui): add error handling to sign-out
...
Add try/catch with toast notification for sign-out failures.
2026-04-06 23:24:40 -04:00
old4ever
e1fd7dc5a3
feat(api): add input validation to AI endpoints
...
Add prompt validation to ai-event (non-empty string, max 2000 chars)
and events array length validation to ai-summary (max 100 items)
to prevent abuse and injection attacks.
2026-04-06 23:24:15 -04:00
old4ever
a4656520f8
fix(db): ensure pgcrypto extension for UUID generation
...
Add CREATE EXTENSION IF NOT EXISTS pgcrypto to migration for
compatibility with older PostgreSQL versions.
2026-04-06 23:23:26 -04:00
old4ever
3b5934dbfd
fix(auth): correct session check in sign-out page
...
Change !session to !session?.user to properly detect unauthenticated
state. useSession() returns an object, not null.
2026-04-06 23:23:08 -04:00
old4ever
cfa93da149
refactor(auth): remove unused SessionProvider wrapper
...
Remove the passthrough AuthSessionProvider component and its usage
in layout. better-auth hooks work without a provider wrapper.
2026-04-06 23:22:33 -04:00
old4ever
c6017b2f78
fix(db): wrap migration in transaction
...
Add BEGIN/COMMIT transaction wrapper to migration to ensure
atomicity and prevent partial migration failures.
2026-04-06 23:21:42 -04:00
old4ever
bcd488e2d3
fix(auth): use correct sign-in method for genericOAuth
...
Add genericOAuthClient plugin to auth client and change sign-in
call from signIn.social() to signIn.oauth2() with correct
providerId parameter.
2026-04-06 23:20:39 -04:00
old4ever
c3026c8262
feat(api): add auth check to ai-summary endpoint
...
Require authentication for ai-summary endpoint to prevent
unauthorized API key usage and cost leakage.
2026-04-06 23:18:46 -04:00
old4ever
4c6f880a3f
feat(auth): configure trustedOrigins for CSRF protection
...
Add trustedOrigins to better-auth config to ensure proper origin
validation behind reverse proxy.
2026-04-06 23:18:20 -04:00
old4ever
ece03a9124
feat(auth): validate required env vars at startup
...
Add explicit validation for BETTER_AUTH_SECRET, BETTER_AUTH_URL, and
Authentik config variables. Set secret explicitly in better-auth config
to prevent silent session loss on restart.
2026-04-06 23:17:51 -04:00
old4ever
2a808f8ca1
fix(db): preserve OAuth user verified status during migration
...
Update emailVerified type conversion to set OAuth users (those with
account records) as verified before converting timestamp to boolean.
2026-04-06 23:16:58 -04:00
old4ever
afb27eb66d
fix(db): remove authenticator references from relations
...
Remove dropped authenticator table references from drizzle relations
to prevent drizzle-kit from attempting to recreate the table.
2026-04-06 23:16:34 -04:00
old4ever
15be2399c6
refactor: migrate session usage to better-auth API
2026-04-06 22:41:57 -04:00
old4ever
d7d52ef1a8
refactor: migrate auth pages to better-auth client
2026-04-06 22:41:37 -04:00
old4ever
490c601dc1
refactor: remove next-auth SessionProvider wrapper
2026-04-06 22:41:25 -04:00
old4ever
08a894577b
refactor: replace next-auth with better-auth core and client
2026-04-06 22:41:11 -04:00
old4ever
febc57b240
refactor: update DB schema for better-auth conventions
2026-04-06 22:41:00 -04:00
old4ever
3ab77cc21f
refactor: update env vars for better-auth
2026-04-06 22:40:41 -04:00
old4ever
8a500f07de
refactor: replace next-auth with better-auth dependency
2026-04-06 22:40:27 -04:00
old4ever
d8875e587e
feat: add PostgreSQL dev container compose file
2026-04-06 22:40:15 -04:00
old4ever
47251dad3f
chore: add debug.log to .gitignore
2026-04-06 22:40:01 -04:00
old4ever
35a7f0a7c2
ai skills
...
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev >
2026-04-06 20:48:30 -04:00
old4ever
f70a416fea
devenv update
...
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev >
2026-04-06 20:48:24 -04:00
old4ever
206f028fdf
init ruler
...
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev >
2026-04-06 20:48:07 -04:00
old4ever
4db02f47bf
Merge branch 'main' of git.cloud.dmytros.dev:old4ever/local-cal
2026-04-06 20:40:10 -04:00
old4ever
10ad239259
build: update bun lockfile version
2025-12-12 09:31:20 -05:00
old4ever
755076351b
security: bump nextjs version
2025-12-12 09:31:03 -05:00
old4ever
28c982ee37
fix: docker build
2025-12-12 09:27:02 -05:00
old4ever
d7dc911db4
Update next to fix react2shell CVE
...
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev >
2025-12-06 09:34:25 -05:00
old4ever
f20f3d66a1
Simplify dropdown menu labels in event card
...
Remove redundant "event" text from Edit and Delete menu items for cleaner UI
2025-08-22 13:38:57 -04:00
old4ever
824768ce93
Add RRuleDisplay component and clean up unused imports
...
- Create new RRuleDisplay component for better recurrence rule formatting
- Replace Badge with RRuleDisplay in EventCard for improved UX
- Remove unused imports across multiple files (CalendarEvent, Badge, Card components)
- Remove unused catch parameter in ai-event route
2025-08-22 13:35:13 -04:00
old4ever
eb73f9f929
Refactor event management into reusable components
...
- Extract EventCard, EventsList, and event dialog into separate components
- Add new AI toolbar and drag-drop container components
- Simplify main page.tsx by removing inline component definitions
- Improve code organization and maintainability
2025-08-22 12:33:07 -04:00
old4ever
6ab2946e8a
refactor events list as shadcn cards
2025-08-20 14:12:32 -04:00
old4ever
cde44ee2d7
fix grammar
2025-08-20 14:11:53 -04:00
old4ever
655517a27c
animate button clicks for UX
2025-08-20 14:07:22 -04:00
old4ever
9a836fc866
refactor ai event creation into a promise toast
2025-08-20 13:14:29 -04:00
old4ever
275e83a6c0
replace alerts with toasts
2025-08-20 13:13:52 -04:00
old4ever
d8d0039c44
install 'sonner' toask
2025-08-20 13:12:08 -04:00
old4ever
6e6e9b0699
update logo font
2025-08-20 12:36:33 -04:00
old4ever
044e4fbb07
remove shadow from the header
2025-08-20 12:36:22 -04:00
old4ever
2d0da9dbeb
autoresize textfield with content & minor ui tweaks
2025-08-20 12:22:38 -04:00
old4ever
d8e55e85a1
'fix' hydration error by rendering on the client
2025-08-20 11:27:11 -04:00
old4ever
e0ff037c06
clear ai event prompt after generation
2025-08-20 11:14:24 -04:00
old4ever
46a99775a0
add icon for 'system' theme
2025-08-20 11:04:25 -04:00
old4ever
d50d77538b
change shadcn theme
2025-08-20 11:04:05 -04:00
old4ever
308f5c8380
fix d&d cta position
2025-08-19 05:52:28 -04:00
old4ever
112ab01445
moved sign-in component to a proper folder
2025-08-19 05:41:46 -04:00
old4ever
6818046d58
adjust recurrence picker to not be a card
2025-08-19 05:41:28 -04:00
old4ever
ef035e2b7d
add labels to action button sections
2025-08-19 05:33:36 -04:00
old4ever
1a30b729e6
fix sign buttons inconsistencies in the header
2025-08-19 05:32:29 -04:00
old4ever
383ce4c33a
Merge branch 'drizzle-claude'
2025-08-19 05:02:22 -04:00
old4ever
caa89a87de
update metadata & use logo as a link to root
2025-08-19 05:00:58 -04:00
old4ever
fa39d7584b
fix csr nextjs build error
...
https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout
2025-08-19 04:35:07 -04:00
old4ever
f92c79ac60
implement auth error page and moved auth-related pages to /auth path
2025-08-19 04:27:13 -04:00
old4ever
12e9ec5d85
proper user/session creation and auth integration into UI
2025-08-19 03:40:06 -04:00
old4ever
1a13013b45
use different env files based on node env
2025-08-19 01:54:19 -04:00
old4ever
92535f7e54
claude drizzle integration
2025-08-19 01:54:19 -04:00
old4ever
9942a11c0d
drizzle setup
2025-08-19 01:54:19 -04:00
old4ever
8808daead3
use independent db
...
easier for local development
2025-08-19 01:54:19 -04:00
old4ever
c0740877b5
minor style adjustment
2025-08-18 17:05:02 -04:00
old4ever
42f3521cd7
update .env file
2025-08-17 11:41:27 -04:00
old4ever
3bb320b59f
update docker-compose with a db
2025-08-17 11:15:30 -04:00
old4ever
20b26274d4
create example .env files
2025-08-17 11:15:17 -04:00
old4ever
a5aebca54c
install packages
2025-08-17 10:50:32 -04:00
old4ever
ba30ad4bc7
tidy up docker-compose.yml
2025-08-16 22:15:52 -04:00
old4ever
1fdc20ee0c
fix random auth errors
...
idk how i did it
2025-08-16 22:15:22 -04:00