87 Commits

Author SHA1 Message Date
6ca42d10e6 fix: resolve unit test failures caused by rate limiting and fix mod.rs router passing
Some checks failed
Release / release (push) Failing after 2m10s
v0.1.12
2026-05-02 21:04:31 +02:00
32e7dc5ac1 deploy: bump image tag to v0.1.11
Some checks failed
Release / release (push) Failing after 1m26s
v0.1.11
2026-05-02 20:56:22 +02:00
6ca852117d chore: update frontend dependencies to latest stable versions and sync lockfile 2026-05-02 20:56:03 +02:00
dec92509ff deploy: bump image tag to v0.1.10
Some checks failed
Release / release (push) Failing after 53s
v0.1.10
2026-05-02 20:48:56 +02:00
31f8ef74fe chore: remediate code audit findings and fix CI pipeline failures
- Security: Add Secure flag to checkin identity cookie, implement rate limiting on login, and harden Helm security context.
- Security: Add cargo-audit to CI and Release pipelines for dependency vulnerability scanning.
- Backend: Enable SQLite WAL mode and fix AppState initialization in tests.
- Frontend: Fully type the API client, fix importStudents FormData handling, and pin dependency versions.
- Frontend: Add auto-logout on 401 and resolve authentication initialization race conditions.
- CI/CD: Pin pnpm version in release workflow and include lint/audit quality gates.
2026-05-02 20:40:05 +02:00
536638b594 deploy: bump image tag to v0.1.9
Some checks failed
Release / release (push) Failing after 1m16s
v0.1.9
2026-05-02 05:28:30 +02:00
6cb5968b7b fix: resolve Docker build failure and E2E authentication race conditions
- Dockerfile: Update binary name from attendance to tutortool to fix the release build pipeline failure.
- Backend: Expose test_mode in AppState to conditionally disable the secure flag on auth cookies during local E2E testing over HTTP.
- Backend: Enable tower-http trace feature and attach TraceLayer for improved request logging.
- Frontend: Refactor auth.svelte.ts to a plain reactive object to resolve initialization race conditions during tests.
- Frontend: Append cache-busting timestamp to /api/auth/me to prevent stale session states.
- Frontend: Update Playwright locator in superadmin.spec.ts for greater resilience.
- Makefile: Inject required environment variables (STATIC_DIR, JWT_SECRET) into the test-up target.
2026-05-02 05:25:04 +02:00
66eed29c71 deploy: bump image tag to v0.1.8
Some checks failed
Release / release (push) Failing after 2m31s
v0.1.8
2026-05-02 03:22:29 +02:00
ff5ad26cfc feat: harden security with httpOnly cookies and modernize frontend with Svelte 5 runes
- Switched to secure httpOnly, SameSite=Strict cookies for JWT authentication.
- Refactored backend to use AppState for shared secrets and database pool caching.
- Modernized frontend with Svelte 5 runes ($state) and removed localStorage reliance.
- Gated destructive test endpoints behind debug_assertions and fixed unsafe test patterns.
- Enhanced CI pipeline with cargo clippy, cargo fmt, and pinned pnpm version.
- Updated documentation and implementation plans to match the hardened architecture.
2026-05-02 03:16:33 +02:00
7cafc7e119 deploy: pin image tag to v0.1.7 2026-05-01 18:41:21 +02:00
0e7df590ca tutortool: set successfulJobsHistoryLimit=1 on backup CronJob
Completed pods were showing 0/1 Ready and triggering false-positive
monitoring alerts.
2026-05-01 18:39:25 +02:00
e05cebc10c chore: ignore AI artefacts and log files 2026-04-30 01:04:43 +02:00
a2b41b5131 feat: enable DEMO seed via values_override
All checks were successful
Release / release (push) Successful in 3m23s
v0.1.7
2026-04-30 00:50:17 +02:00
cffb97ff76 fix: use Recreate strategy so SQLite + RWO PVC redeploy fits tenant CPU quota
All checks were successful
Release / release (push) Successful in 3m31s
v0.1.6
2026-04-30 00:42:55 +02:00
58248897db fix: lower CPU limit to 200m to fit rolling update within tenant quota
Some checks failed
Release / release (push) Failing after 7m23s
v0.1.5
2026-04-30 00:19:18 +02:00
b42ded93f6 feat: add DEMO env var to seed demo data on startup
Some checks failed
Release / release (push) Failing after 7m24s
v0.1.4
2026-04-29 23:05:05 +02:00
dcb4a92afd fix(deploy): use generic 'http' sectionName for HTTP→HTTPS redirect route 2026-04-29 22:19:51 +02:00
6b296460dd fix(ci): add context: . to Docker build-push step in release workflow
All checks were successful
Release / release (push) Successful in 4m7s
v0.1.3
2026-04-29 21:48:06 +02:00
ee98d6844a fix(frontend): add @types/node, fix Playwright base.extend type in fixtures
Some checks failed
Release / release (push) Failing after 1m27s
v0.1.2
2026-04-29 21:42:32 +02:00
bae4ff24ea fix(ci): run svelte-kit sync before pnpm check to generate .svelte-kit/tsconfig.json
Some checks failed
Release / release (push) Failing after 56s
v0.1.1
2026-04-29 21:28:21 +02:00
03a1e70df3 fix(deploy): correct HTTPRoute parentRefs, cert-manager annotation, imagePullSecrets
Some checks failed
Release / release (push) Failing after 56s
- httproute.yaml: name=default namespace=nginx-gateway (was: itsh-gateway, no namespace)
- httproute.yaml: add cert-manager.io/cluster-issuer annotation for TLS cert issuance
- httproute.yaml: parameterise sectionNames and parentRefs through values
- deployment.yaml: render imagePullSecrets from values (itsh-registry pull secret)
- values.yaml: add parentRefs, annotations, httpRedirectSectionName, imagePullSecrets
v0.1.0
2026-04-29 21:24:13 +02:00
Claude
e01f7808a0 Overhaul build pipeline: pnpm, non-root image, Helm chart, CI+release workflows
Some checks failed
CI / test (push) Failing after 1m35s
CI / test (pull_request) Failing after 1m34s
- db.rs: fix fresh-PVC startup crash by using SqliteConnectOptions with
  create_if_missing(true) and foreign_keys(true); drops after_connect
- Dockerfile: switch to Node 22 + pnpm (corepack), run pnpm check before
  build, copy backend/demo/ for TT_TEST_MODE support, non-root app user,
  add HEALTHCHECK, remove baked-in JWT_SECRET
- .dockerignore: exclude node_modules, build artifacts, data/, logs
- deploy/: new Helm chart replacing k8s/ — Deployment, Service, HTTPRoute
  (Gateway API), PVC (hcloud-volumes), CronJob backup, ServiceAccount, VPA;
  JWT_SECRET sourced from pre-provisioned K8s Secret
- k8s/: removed (superseded by deploy/)
- ci.yml: replaces test.yml — Node 20->22, same test steps, adds no-push
  Docker build; triggers on non-main pushes and PRs
- release.yml: new tag-driven workflow (v*.*.*) — runs tests, pushes image
  to registry.itsh.dev/s0wlz/tutortool, deploys via helm upgrade

https://claude.ai/code/session_01N1kWaQJkz1fC7mUippdQR5
2026-04-29 19:11:29 +00:00
0b806b59be feat: add implementation plans for room editor refactor (core and visualization)
Some checks failed
Test / test (push) Failing after 1m40s
2026-04-29 05:36:44 +02:00
7212e982ef docs: update GEMINI.md with project-specific conventions and conductor references
Some checks failed
Test / test (push) Failing after 1m39s
2026-04-29 05:24:03 +02:00
75203bd796 fix: resolve test pipeline migration conflicts and sync demo layout with frontend 2026-04-29 05:23:42 +02:00
276b367530 docs: track design handoff, plans, specs, and conductor notes
Some checks failed
Test / test (push) Failing after 2m12s
2026-04-29 04:38:26 +02:00
bbcdbf957e feat: add IF NOT EXISTS to migrations, add courses nav item, lock playwright deps 2026-04-29 04:38:20 +02:00
7a0f6aa0a7 chore: gitignore server.log and start_backend.sh 2026-04-29 04:38:14 +02:00
f3f570a63e docs: update CLAUDE.md, GEMINI.md, add README
- Add test-* and seed-demo Make targets to command reference
- Document TT_TEST_MODE, /health route, test_reset route module
- Expand admin subroutes list, add Testing and CI sections
- Fix SQLx contradiction (runtime queries, no DATABASE_URL needed)
- Rewrite GEMINI.md with full Claude parity
- Add root README.md with quickstart, stack, and doc links
2026-04-29 04:35:51 +02:00
3d91017d78 docs: add docs/testing.md and refine gitignore (track project docs, ignore local reference) 2026-04-29 04:25:24 +02:00
4d337064af feat(ci): add Gitea Actions test workflow 2026-04-29 04:22:43 +02:00
8ea3d57239 feat(tests): add playwright config, globalSetup, reset fixture, migrate superadmin spec 2026-04-29 04:22:11 +02:00
412dc01ac2 feat(tests): add make test-up/down/reset/rebuild/e2e targets 2026-04-29 04:13:59 +02:00
205c871d31 feat(tests): add /__test__/reset endpoint and /health route (gated on TT_TEST_MODE) 2026-04-29 04:08:31 +02:00
4dce11dd26 feat(tests): add test-env.sh, gitignore updates, package.json scripts 2026-04-29 04:03:14 +02:00
279c60a5eb Merge branch 'feature-superadmin-crud'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2026-04-29 02:48:43 +02:00
e222085a72 fix: frontend type errors and add k8s manifests 2026-04-29 02:43:23 +02:00
8a45f6a06e feat: implement superadmin CRUD for courses and tutors 2026-04-29 02:42:33 +02:00
e1d7c20354 fix: restore original migration checksums, seed-demo now starts fresh 2026-04-29 02:10:37 +02:00
38fdf42408 feat: merge feature/demo-seed — configurable port and improved seed target 2026-04-29 02:06:23 +02:00
755c084f5e chore: ignore .playwright-mcp/ and refresh GEMINI.md 2026-04-29 02:06:01 +02:00
4aea0f4427 chore: clean up repo state and improve dev tooling
- Add IF NOT EXISTS to all migration DDL for idempotency
- Support PORT env var in backend (for compose flexibility)
- Support HOST_PORT env var in docker-compose
- Improve seed-demo to apply migrations before seeding
- Gitignore .claude/ session cache
2026-04-29 01:39:00 +02:00
b252128c37 docs: update CLAUDE.md for pnpm and corrected route paths 2026-04-29 01:32:15 +02:00
d6ccdaff1e feat(frontend): merge paper/notebook design overhaul
Complete redesign of the SvelteKit frontend with a paper/notebook
aesthetic: design tokens, Google Fonts, 10 new components, responsive
student check-in, live seat map, and redesigned admin pages.
2026-04-29 01:27:55 +02:00
d8869a441c fix(frontend): correct checkin API paths (remove duplicate /api/ prefix) 2026-04-29 01:20:26 +02:00
dd71202969 feat: support configurable ports for parallel development 2026-04-29 01:03:40 +02:00
0c5afb7e29 fix(frontend): render login page when unauthenticated 2026-04-28 23:58:57 +02:00
28c41042eb fix: docker build process and compose environment variables 2026-04-28 23:42:26 +02:00
316b7defb8 feat: add demo seed data, update Makefile, and fix .gitignore 2026-04-28 21:39:17 +02:00
19f2b5ae7f fix(frontend): fix slot deprecation and a11y label warnings 2026-04-28 19:22:30 +02:00