Arthur Belleville
|
0bfe8cfbb4
|
feat(10-01): add events calendar creation slice
|
2026-05-16 00:27:58 +02:00 |
|
Arthur Belleville
|
cf07c29ae5
|
test(09-04): harden db-backed regressions
|
2026-05-15 22:54:46 +02:00 |
|
Arthur Belleville
|
565bb88df5
|
feat(09-01): add etape task slice
|
2026-05-15 22:40:25 +02:00 |
|
Arthur Belleville
|
4ea4d28e6e
|
fix(07): WR-05 sanitize upload filename with filepath.Base and length cap
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-15 18:56:11 +02:00 |
|
Arthur Belleville
|
fbda7cbe5e
|
fix(07): CR-02 call cancel() explicitly after S3 Delete, not via defer
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-15 18:53:04 +02:00 |
|
Arthur Belleville
|
690ea2ddaf
|
fix(05): CR-01/WR-02/WR-03/WR-04 handlers_files.go fixes
- CR-01: add S3 cleanup before 500 when InsertTabloFile fails
- WR-02: validate empty filename, return 400 before S3 upload
- WR-03: remove dead errMsg variable (was silenced with _ = errMsg)
- WR-04: delete itoa/formatMBError helpers, inline strconv.Itoa
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-15 12:50:07 +02:00 |
|
Arthur Belleville
|
9d4dd4f3e2
|
feat(05-03): implement FileDownloadHandler, FileDeleteConfirmHandler, FileDeleteHandler
- FileDownloadHandler: nil guard → loadOwnedTabloForFile → PresignDownload → 302 redirect (FILE-04)
- FileDeleteConfirmHandler: nil guard → loadOwnedTabloForFile → render FileDeleteConfirmFragment
- FileDeleteHandler: nil guard → loadOwnedTabloForFile → S3 Delete (log+continue) → DeleteTabloFile → FileRowGone HTMX / 303 redirect (FILE-05, FILE-06)
- Add FileDeleteConfirmFragment templ component mirroring TaskDeleteConfirmFragment pattern (T-05-03-05)
|
2026-05-15 12:34:07 +02:00 |
|
Arthur Belleville
|
f50836fa31
|
feat(05-02): implement FilesDeps + FileUploadHandler + TabloFilesTabHandler + TabloTasksTabHandler
- FilesDeps struct with Queries, Files FileStorer, MaxUploadMB
- loadOwnedTabloForFile helper (mirrors loadOwnedTabloForTask)
- TabloFilesTabHandler: nil guard first, loadOwnedTablo, list files, HTMX/full-page dispatch
- TabloTasksTabHandler: loadOwnedTablo, list tasks, HTMX/full-page dispatch
- FileUploadHandler: nil guard, MaxBytesReader before ParseMultipartForm, S3 key files/{uuid}, InsertTabloFile, list + redirect
- FileDownloadHandler/FileDeleteConfirmHandler/FileDeleteHandler: 501 stubs for Plan 03
- Security: D-04 S3 key isolation, T-05-02-02 size guard, T-05-02-04 ownership
|
2026-05-15 12:28:07 +02:00 |
|