This website requires JavaScript.
ce294faed7
Declare EXPOSE 80 in the image
main
aneurin and Claude Sonnet 5
2026-09-06 21:27:01 +01:00
8732e0e5f5
Add APP_EMAIL_ALLOWLIST gate on account creation
aneurin and Claude Sonnet 5
2026-09-06 21:26:33 +01:00
06d5b721a3
Add BuildKit cache mounts and trim Docker build context
aneurin and Claude Sonnet 5
2026-09-06 17:25:16 +01:00
00d9008bf9
Drop docker.sock mount instructions from build/release workflows
aneurin and Claude Sonnet 5
2026-09-06 17:21:29 +01:00
923d68f317
restore previous fixes with renamed token property
aneurin
2026-09-05 13:48:18 +01:00
a3b44907b8
use secrets.GITEA_TOKEN explicitly
aneurin
2026-09-05 13:35:12 +01:00
d0abd683cc
Revert "Fix container registry login: GITEA_TOKEN never grants package access"
aneurin
2026-09-05 13:21:51 +01:00
8bb9f05559
Fix container registry login: GITEA_TOKEN never grants package access
aneurin and Claude Sonnet 5
2026-09-05 12:58:03 +01:00
950d116e53
Add image build/push workflows, scoped to test/build/push only
aneurin and Claude Sonnet 5
2026-09-05 12:38:05 +01:00
2370b06913
Add frontend build and dependency audits to CI
aneurin and Claude Sonnet 5
2026-09-05 10:39:19 +01:00
16f94293ab
Make the per-owner project cap configurable via env
aneurin and Claude Sonnet 5
2026-09-05 09:15:06 +01:00
e59890618e
Install Node in the CI job container before checkout
aneurin and Claude Sonnet 5
2026-09-05 10:32:15 +01:00
6faf4a72df
Add Gitea Actions workflow to run PHPUnit on pull requests
aneurin and Claude Sonnet 5
2026-09-05 09:23:55 +01:00
5c8f2dbf07
Un-hard-wrap all Markdown documentation
aneurin and Claude Sonnet 5
2026-09-05 02:29:08 +01:00
f1309b4c10
Rebuild the Docker image on Alpine: ~735MB -> ~89MB
aneurin and Claude Sonnet 5
2026-09-05 02:15:39 +01:00
82e8ee6c36
Trim .dockerignore to everything the build context doesn't need
aneurin and Claude Sonnet 5
2026-09-05 01:54:41 +01:00
ef9669dc57
Catch up web/README.md and two stale comments to current code
aneurin and Claude Sonnet 5
2026-09-05 01:48:14 +01:00
fb67b57807
Reorganize docs: simple README + organized docs/
aneurin and Claude Sonnet 5
2026-09-05 01:41:55 +01:00
b00ec7addd
Squash all migrations into one clean initial schema
aneurin and Claude Sonnet 5
2026-09-05 01:32:27 +01:00
fb59a54938
Drop the unused project description field entirely
aneurin and Claude Sonnet 5
2026-09-05 01:25:53 +01:00
367a98308a
Extract a shared ManageMenu; add notFoundOr for the repeated 404 pattern
aneurin and Claude Sonnet 5
2026-09-05 01:25:37 +01:00
6c7b78ad4b
Explore: cards can be dragged out to the inbox
aneurin and Claude Sonnet 5
2026-09-05 01:04:50 +01:00
9505d20e0d
Add-passkey form: one line, "Passkey label" placeholder, shorter label
aneurin and Claude Sonnet 5
2026-09-05 00:57:47 +01:00
d1de9f50f5
Remove the per-row delete button from Explore's cards
aneurin and Claude Sonnet 5
2026-09-05 00:54:36 +01:00
80ff31748b
Explore card rows: match the kanban card's hover style
aneurin and Claude Sonnet 5
2026-09-05 00:51:24 +01:00
8641c3d013
Make Explore and Kanban real routes, not tab state
aneurin and Claude Sonnet 5
2026-09-05 00:46:17 +01:00
81900f4d06
Rename the "All tasks" tab to "Explore"
aneurin and Claude Sonnet 5
2026-09-05 00:36:38 +01:00
4cd59234e2
All tasks tab: match the new-card form layout used everywhere else
aneurin and Claude Sonnet 5
2026-09-05 00:32:50 +01:00
e55641bcba
Card configure view: "Edit text"/"Save" -> "Rename card"/"Rename"
aneurin and Claude Sonnet 5
2026-09-05 00:30:26 +01:00
55fa9fef56
Split card editing/delete out into a CardConfigureView, mirroring projects
aneurin and Claude Sonnet 5
2026-09-05 00:29:06 +01:00
8a0befa1c7
Stretch the add-icon buttons to their row's height; bigger glyph
aneurin and Claude Sonnet 5
2026-09-05 00:23:53 +01:00
ca3be38f0c
Give the add-icon buttons a border matching the compact field
aneurin and Claude Sonnet 5
2026-09-05 00:22:00 +01:00
f5cc82a2f4
Ghost-style the add-card/status icon buttons; convert the last one
aneurin and Claude Sonnet 5
2026-09-05 00:20:32 +01:00
7ce0f156f0
Replace the compact "Add" buttons with a plus icon
aneurin and Claude Sonnet 5
2026-09-05 00:16:38 +01:00
19ccb8f881
Add a "new card" form to each kanban column
aneurin and Claude Sonnet 5
2026-09-05 00:10:52 +01:00
e598d4ef57
Change-email input: "New email" -> "New email address"
aneurin and Claude Sonnet 5
2026-09-05 00:06:20 +01:00
b04935ada9
Make the change-email form a single line, like the rename forms
aneurin and Claude Sonnet 5
2026-09-05 00:05:06 +01:00
4947ebdf38
Use the card view's inline back arrow on every other heading
aneurin and Claude Sonnet 5
2026-09-05 00:02:09 +01:00
fb329bf693
Add a dedicated card view; make card text no longer inline-editable
aneurin and Claude Sonnet 5
2026-09-04 23:51:06 +01:00
c2c988d928
Remove the redundant back-to-dashboard link on the profile view
aneurin and Claude Sonnet 5
2026-09-04 23:42:48 +01:00
83471e55d4
Extract StatusManager, dedupe ColumnChange type, add useDialog composable
aneurin
2026-09-04 23:35:33 +01:00
a3462af005
Fix the broken input focus outline, unify input styling, tokenize scales
aneurin and Claude Sonnet 5
2026-09-04 22:03:38 +01:00
a85bb182c7
De-duplicate controller boilerplate: owned-project lookup, reorder validation
aneurin and Claude Sonnet 5
2026-09-04 21:45:02 +01:00
accc6a273c
Centralize the current-timestamp SQL expression
aneurin and Claude Sonnet 5
2026-09-04 21:41:25 +01:00
029c05c46f
Fix the mobile project-head layout with Grid instead of flex
aneurin and Claude Sonnet 5
2026-09-04 21:30:49 +01:00
91c0e8d6af
Make the magic-link resend cooldown configurable
aneurin and Claude Sonnet 5
2026-09-04 21:30:41 +01:00
4a9717caa5
Keep the header buttons right-aligned once the title wraps below
aneurin and Claude Sonnet 5
2026-09-04 21:18:26 +01:00
ba84c0e81b
Mobile: stack project-head instead of squeezing it, wrap headings cleanly
aneurin and Claude Sonnet 5
2026-09-04 21:15:47 +01:00
d4420f7fe0
Relabel the project name button 'Rename'
aneurin and Claude Sonnet 5
2026-09-04 21:11:54 +01:00
038322e975
Relabel the configuration view's name section 'Rename project'
aneurin and Claude Sonnet 5
2026-09-04 21:10:57 +01:00
eb1f6055f0
Document that Profile now renders wide
aneurin and Claude Sonnet 5
2026-09-04 21:09:47 +01:00
f8c52f8103
Drop two more unneeded width caps
aneurin and Claude Sonnet 5
2026-09-04 21:09:31 +01:00
b51d70b447
Let config sections fill the container width
aneurin and Claude Sonnet 5
2026-09-04 21:06:25 +01:00
0eaa100d97
Relabel the project name button 'Update'
aneurin and Claude Sonnet 5
2026-09-04 21:04:42 +01:00
ed07ea442d
Put the Save name button beside the input, fit to its width
aneurin and Claude Sonnet 5
2026-09-04 21:03:57 +01:00
ea169ebed0
Move project renaming from the project view to configuration
aneurin and Claude Sonnet 5
2026-09-04 21:01:27 +01:00
c5ffdae2cd
Group Back-to-project and Manage together, styled alike
aneurin and Claude Sonnet 5
2026-09-04 20:58:13 +01:00
89a95f1885
Sidebar becomes a mobile drawer below 768px
aneurin and Claude Sonnet 5
2026-09-04 20:54:18 +01:00
acfc35af4c
Show a dashed drop-area in empty kanban columns and the inbox
aneurin and Claude Sonnet 5
2026-09-04 20:47:17 +01:00
dd7d217e8e
Project configuration view: manage a project's statuses
aneurin and Claude Sonnet 5
2026-09-04 20:31:10 +01:00
21e148aa4d
Simplify the project view header: drop the back link and description
aneurin and Claude Sonnet 5
2026-09-04 20:14:03 +01:00
374d607ce1
Drop the browser focus ring on form controls, keep the border highlight
aneurin and Claude Sonnet 5
2026-09-04 20:10:12 +01:00
baef3078da
Add a 'Projects' heading to the dashboard
aneurin and Claude Sonnet 5
2026-09-04 20:08:34 +01:00
3988ea8404
Balance the new-project tile's spacing; equalize grid row heights
aneurin and Claude Sonnet 5
2026-09-04 20:07:49 +01:00
49c10673d2
Auto-growing name box for the new-project tile
aneurin and Claude Sonnet 5
2026-09-04 20:03:18 +01:00
47429daaa6
Move the new-project form into the dashboard grid as a tile
aneurin and Claude Sonnet 5
2026-09-04 19:59:03 +01:00
9d51ecc367
Move passkey login below the email sign-in form
aneurin and Claude Sonnet 5
2026-09-04 19:54:37 +01:00
25c2e69afe
Style the passkey login button to match the email sign-in button
aneurin and Claude Sonnet 5
2026-09-04 19:53:25 +01:00
afdd53ec4c
Add passkeys (WebAuthn): register from the profile, log in without email
aneurin and Claude Sonnet 5
2026-09-04 19:34:53 +01:00
7da881bb78
Add a config toggle to turn off new user registration
aneurin and Claude Sonnet 5
2026-09-04 18:19:48 +01:00
7504bd826d
Inset the sidebar and size it to the screen
aneurin and Claude Sonnet 5
2026-09-04 15:41:27 +01:00
d8a4183e4d
Move new-project form to the dashboard; sidebar project list becomes a switcher; Kanban is the default project tab
aneurin and Claude Sonnet 5
2026-09-04 15:31:30 +01:00
4ee0f24078
Make the inbox global instead of per-project
aneurin and Claude Sonnet 5
2026-09-04 15:22:33 +01:00
c82bdbbf0e
Passwordless-only auth: drop registration and passwords entirely
aneurin and Claude Sonnet 5
2026-09-04 14:47:46 +01:00
8f8ad8593d
Make the dashboard a grid of projects with their inbox
aneurin and Claude Sonnet 5
2026-09-04 14:02:47 +01:00
cd54b41ab7
Add a persistent left sidebar to the signed-in layout
aneurin and Claude Sonnet 5
2026-09-04 13:55:31 +01:00
9c1768ddb2
Tint the kanban inbox column lighter than the status columns
aneurin and Claude Sonnet 5
2026-09-04 13:43:57 +01:00
c47c800d01
Add per-project card statuses and a kanban board
aneurin and Claude Sonnet 5
2026-09-04 13:37:17 +01:00
d9db4a3a30
Serve the built SPA from the PHP image; drop the web container
aneurin and Claude Sonnet 5
2026-09-04 13:37:07 +01:00
49acc301ec
Pin the Compose project name to php-project-manager
aneurin and Claude Sonnet 5
2026-09-04 12:02:22 +01:00
ebfa20982b
Rename package to project-manager
aneurin and Claude Sonnet 5
2026-09-04 12:00:16 +01:00
c66e5ceb9b
Rename lists -> projects and items -> cards throughout
aneurin and Claude Sonnet 5
2026-09-04 11:28:59 +01:00
be592f38fc
Add stage 8: passwordless magic-link login
aneurin and Claude Sonnet 5
2026-09-04 10:29:13 +01:00
64ba21795b
Bundle a Mailpit catcher and default Compose to SMTP
aneurin and Claude Sonnet 5
2026-09-04 08:40:36 +01:00
f9b65cc4a7
Add stage 7: email verification magic links and a profile page
aneurin and Claude Sonnet 5
2026-09-03 20:04:49 +01:00
c4c947896e
Drop the description from the lists index
aneurin and Claude Sonnet 5
2026-09-03 19:13:19 +01:00
3bf70504cc
Add inline title/description editing and list delete to the list view
aneurin and Claude Sonnet 5
2026-09-03 19:10:31 +01:00
8d0e0165bb
Drop the redundant empty-items line on the list view
aneurin and Claude Sonnet 5
2026-09-03 19:01:35 +01:00
b506b83b1e
Add stage 5: list detail page with items UI and drag reorder
aneurin and Claude Sonnet 5
2026-09-03 18:59:51 +01:00
dd2ab5b7d3
Rework the lists view: form below list, drop description, add count
aneurin and Claude Sonnet 5
2026-09-03 18:48:48 +01:00
bc1142b929
Add stage 4: frontend lists view + enforce 100-list cap
aneurin and Claude Sonnet 5
2026-09-03 18:42:15 +01:00
5a0d29a308
Add stage 3: todo list and item CRUD API
aneurin and Claude Sonnet 5
2026-09-03 18:30:52 +01:00
5e3b8dbd7e
Add stage 2: Vue/TypeScript PWA shell with auth-gated routing
aneurin and Claude Sonnet 5
2026-09-03 18:12:31 +01:00
e91fc89e23
Bind-mount the project into the container for live edits
aneurin and Claude Sonnet 5
2026-09-03 17:51:56 +01:00
15145865d4
Add Docker Compose setup for local runs
aneurin and Claude Sonnet 5
2026-09-03 17:45:35 +01:00
0938e1a59b
Note in README that the project is generated with Claude Code
aneurin and Claude Sonnet 5
2026-09-03 17:37:20 +01:00
7faef6fbff
Add stage 1: authentication REST API
aneurin and Claude Sonnet 5
2026-09-03 17:35:10 +01:00