Commit Graph
54 Commits
Author SHA1 Message Date
LaurensBartelds 40fe1479f9 fix: update SSH key handling in deploy workflow to remove unnecessary transformations
Release Pipeline / build-and-release (push) Successful in 5m41s
2026-04-24 23:02:21 +02:00
LaurensBartelds 7b4288fe86 fix: update route handling for static files to improve frontend serving
Release Pipeline / build-and-release (push) Successful in 5m36s
2026-04-24 22:52:53 +02:00
LaurensBartelds 9539e3d740 feat: refactor SSH key handling in deploy workflow to use ssh-agent 2026-04-24 22:35:45 +02:00
LaurensBartelds 10ce58fdfe feat: update deploy workflow to enhance SSH key handling and add git status checks 2026-04-24 22:30:38 +02:00
LaurensBartelds aeed804460 feat: enhance permissions in settings.local.json and update deploy workflow for SSH key handling 2026-04-24 22:20:08 +02:00
LaurensBartelds e21610880b Update release workflow: quotes and asset uploads
Release Pipeline / build-and-release (push) Successful in 5m14s
2026-04-24 16:49:27 +02:00
LaurensBartelds 13bebba16e feat: add Gitea workflow for automated release building and asset publishing
Release Pipeline / build-and-release (push) Failing after 5m13s
2026-04-24 16:05:53 +02:00
LaurensBartelds 98b9d51d83 feat: add Gitea Actions workflow for automated multi-arch Docker image releases
Release Pipeline / build-and-release (push) Failing after 4s
2026-04-24 16:01:32 +02:00
LaurensBartelds 5b7d31cb34 feat: add Gitea Actions release pipeline to build and publish Docker images
Release Pipeline / build-and-release (push) Failing after 5m56s
2026-04-24 15:52:03 +02:00
LaurensBartelds 376f244035 fix: update permissions in settings.local.json and add .claude/settings.local.json to .gitignore
Release Pipeline / build-and-release (push) Failing after 4m22s
2026-04-24 10:47:24 +02:00
LaurensBarteldsandClaude Sonnet 4.6 c4e6219606 fix: revert release creation to softprops/action-gh-release@v2 (without generate_release_notes)
Manual curl approach silently dropped large tar.gz files due to Gitea's
attachment size limit. The action handles large file uploads correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:46:56 +02:00
LaurensBarteldsandClaude Sonnet 4.6 34410a9cb8 fix: add verbose output to release asset uploads for debugging
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:44:14 +02:00
LaurensBarteldsandClaude Sonnet 4.6 18b76f2350 fix: replace wget with curl in deploy, fix release asset upload to use multipart/form-data
Release Pipeline / build-and-release (push) Successful in 4m21s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:13:22 +02:00
LaurensBarteldsandClaude Sonnet 4.6 865c21d023 fix: add --break-system-packages for pip ansible install on PEP 668 runners
Release Pipeline / build-and-release (push) Successful in 4m20s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 09:40:00 +02:00
LaurensBartelds 1e0429314b Merge branch 'main' of https://git.gzmn.nl/LaurensBartelds/brainwave
Release Pipeline / build-and-release (push) Successful in 4m20s
2026-04-24 09:33:02 +02:00
LaurensBartelds 029e29f1d4 feat: extend permissions in settings.local.json for Python and YAML processing 2026-04-24 09:32:49 +02:00
LaurensBartelds 0a5caab064 fix: derive release tag from Gitea API instead of head_branch 2026-04-24 09:30:21 +02:00
LaurensBartelds 28e8c8c375 fix: harden deploy workflow (if guard, wget --fail, pip ansible, secret cleanup) 2026-04-24 09:27:55 +02:00
LaurensBartelds 5a96a3c5b7 feat: add deploy workflow to push ARM release to OrangePi via Ansible 2026-04-24 09:24:32 +02:00
LaurensBartelds 6a3e2ed4d1 fix: use ansible_user for deploy path and add changed_when guards 2026-04-24 09:22:55 +02:00
LaurensBartelds 2cbc710fb2 feat: add Ansible playbook for ARM deploy to OrangePi 2026-04-24 08:46:12 +02:00
LaurensBarteldsandClaude Sonnet 4.6 76c1fd6347 docs: add implementation plan for ARM deploy to OrangePi via Ansible
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 08:43:33 +02:00
LaurensBarteldsandClaude Sonnet 4.6 ce4bb97215 docs: add ARM deploy to OrangePi via Ansible design spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 08:41:30 +02:00
LaurensBartelds fb6cf1fedd Update .gitea/workflows/release.yml
Release Pipeline / build-and-release (push) Successful in 4m25s
2026-04-24 00:24:56 +02:00
LaurensBartelds 162c404ff7 feat: enhance Docker build process with multi-architecture support and compose file generation
Release Pipeline / build-and-release (push) Failing after 4m41s
2026-04-23 23:16:18 +02:00
LaurensBartelds 34f16d3439 fix: remove generate_release_notes to fix Gitea 405 error
Release Pipeline / build-and-release (push) Successful in 41s
2026-04-23 15:03:58 +02:00
LaurensBartelds 283f5826ae fixed actions
Release Pipeline / build-and-release (push) Failing after 52s
2026-04-23 14:18:54 +02:00
LaurensBartelds b91d5769fe feat: implement landing page with file upload, sample loading, and comprehensive JSON schema documentation 2026-04-21 23:13:53 +02:00
LaurensBartelds 5c7b0bdb45 feat: add interactive matching question component with responsive connection lines and styles 2026-04-21 23:04:39 +02:00
LaurensBartelds eb013d4978 feat: initialize database and authentication routes in backend 2026-04-21 22:51:22 +02:00
LaurensBartelds be69db04a5 Add SVG icons and TypeScript configuration files
- Introduced a new favicon.svg file for the application.
- Added icons.svg containing various SVG symbols for UI components.
- Created tsconfig.app.json for frontend TypeScript configuration with ES2023 target and bundler mode.
- Established tsconfig.json to reference app and node configurations.
- Implemented tsconfig.node.json for Node.js specific TypeScript settings.
2026-04-21 22:19:06 +02:00
LaurensBarteldsandClaude Sonnet 4.6 8420e6cae0 fix: final review fixes — key props, fetch guard, highlightCode placeholder strategy
- Add key={q.id} to QuestionRenderer in ExamRunner and Results to reset
  component state (Match activeLeft, OrderQuestion init) between questions
- Add r.ok check in Landing.loadSample to surface HTTP errors before JSON parse
- Add validateExam call in loadSample (was missing — could pass malformed JSON)
- Rewrite highlightCode with placeholder strategy: extract comment/string spans
  before applying keyword/number/fn regexes so later passes don't corrupt
  previously-injected span attributes; use PUA char + word-wrapped index
  to avoid SonarLint S6324 and prevent digit regex matching index numbers
- Change Landing dropzone from div[role=button] to native button (S6819)
- Change sample cards from div[onClick] to button elements (S6848/S1082)
- Wrap Landing Props in Readonly<> (S6759)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 22:18:11 +02:00
LaurensBartelds 2b12223da6 fix: resolve tsc-b build errors (Tex JSX type, Essay index sig, ExamRunner closure, vitest config) 2026-04-21 22:00:38 +02:00
LaurensBartelds 61496b4b2f feat: add TweaksPanel and App controller — platform complete 2026-04-21 21:56:58 +02:00
LaurensBartelds cbe4e6058c feat: add Results/Review screen 2026-04-21 21:54:37 +02:00
LaurensBartelds 62f714a4a4 fix: make revealed optional in ExamState; fix keyboard handler stale closure; fix navStatus fallthrough 2026-04-21 21:53:33 +02:00
LaurensBartelds 7217cd3a28 feat: add ExamRunner screen 2026-04-21 21:51:34 +02:00
LaurensBartelds ef05f2c08b fix: add validateExam to loadSample; use native button for dropzone accessibility 2026-04-21 21:50:07 +02:00
LaurensBartelds 24d47e1830 feat: add Landing screen 2026-04-21 21:48:06 +02:00
LaurensBartelds 49cf77633c feat: add QuestionRenderer dispatcher 2026-04-21 21:46:19 +02:00
LaurensBartelds 535bdb5a50 fix: remove stale value check from OrderQuestion initial; guard wrong class in Match 2026-04-21 21:45:31 +02:00
LaurensBartelds e48e37ad87 feat: add Essay, Match, and OrderQuestion renderers 2026-04-21 21:43:30 +02:00
LaurensBartelds 82ba53da0e feat: add ShortAnswer and MathInput renderers 2026-04-21 21:41:37 +02:00
LaurensBartelds 2a59f13870 fix: use Array.isArray guard instead of unsafe cast in MultipleSelect 2026-04-21 21:40:41 +02:00
LaurensBartelds 535434421a feat: add MultipleChoice and MultipleSelect renderers 2026-04-21 21:38:58 +02:00
LaurensBartelds b5e53c97e6 feat: add QuestionMedia with DOMPurify SVG sanitization 2026-04-21 21:37:27 +02:00
LaurensBarteldsandClaude Sonnet 4.6 b0efb524b1 fix: escape plain text in renderLatex; add latex utility tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 21:35:43 +02:00
LaurensBartelds 95de63bd98 feat: add LaTeX rendering utilities and Tex component 2026-04-21 21:29:26 +02:00
LaurensBarteldsandClaude Sonnet 4.6 611277ee8a feat: port design system CSS, update entry point and page title
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 21:28:08 +02:00
LaurensBartelds 00640fbc04 feat: add formatting, storage, and validation utilities 2026-04-21 21:22:49 +02:00
LaurensBarteldsandClaude Sonnet 4.6 e211594429 feat: add grading utilities with tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 21:21:27 +02:00
LaurensBartelds 99b40e46dc feat: add TypeScript types for exam platform 2026-04-21 21:19:27 +02:00
LaurensBarteldsandClaude Sonnet 4.6 7ad0667668 chore: add katex, dompurify, vitest; copy sample exam files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 21:14:29 +02:00
LaurensBartelds 4f124afa6f Initial commit 2026-04-21 20:13:52 +02:00