108 Commits

Author SHA1 Message Date
WorkClub Automation
9cb80e4517 fix(auth): restore keycloak sign-in for NodePort access
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 58s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 28s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
Trust external host for Auth.js, provide missing frontend auth env/secrets, and submit a proper CSRF-backed sign-in POST so browser login reaches Keycloak reliably.
2026-03-13 06:52:18 +01:00
WorkClub Automation
d4f09295be feat(k8s): expose workclub services via LAN NodePorts
Expose frontend, API, and Keycloak on stable NodePorts and align app/keycloak external URLs for local-network browser access.
2026-03-13 06:33:50 +01:00
WorkClub Automation
eaa163afa4 fix(k8s): stabilize keycloak rollout and align CD deploy manifests
Update Keycloak probe/realm import behavior and authority config so auth services start reliably on the dev cluster, while keeping CD deployment steps aligned with the actual Kubernetes overlay behavior.
2026-03-13 06:25:07 +01:00
WorkClub Automation
7272358746 fix(k8s): extreme probe timeouts for RPi and final Keycloak 26 admin fix
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 51s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 28s
CI Pipeline / Infrastructure Validation (push) Successful in 3s
2026-03-10 22:22:36 +01:00
WorkClub Automation
9b1ceb1fb4 fix(k8s): fix image names, keycloak 26 envs, and bump resource limits for RPi
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 52s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 42s
CI Pipeline / Infrastructure Validation (push) Successful in 5s
2026-03-10 22:16:31 +01:00
WorkClub Automation
90ae752652 fix(k8s): enable keycloak health endpoints and increase probe delays
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m2s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 29s
CI Pipeline / Infrastructure Validation (push) Successful in 3s
2026-03-10 22:07:02 +01:00
WorkClub Automation
3c41f0e40c fix(k8s): use args instead of command for keycloak to allow default entrypoint
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m19s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 26s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-10 22:02:48 +01:00
WorkClub Automation
fce8b28114 fix(cd): force delete postgres statefulset to allow storage changes
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 57s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 34s
CI Pipeline / Infrastructure Validation (push) Successful in 5s
2026-03-10 21:54:26 +01:00
WorkClub Automation
b204f6aa32 fix(k8s): register secrets and postgres-patch in dev kustomization
Some checks failed
CI Pipeline / Frontend Lint, Test & Build (push) Has been cancelled
CI Pipeline / Infrastructure Validation (push) Has been cancelled
CI Pipeline / Backend Build & Test (push) Has been cancelled
2026-03-10 21:42:31 +01:00
WorkClub Automation
0a4d99b65b fix(k8s): add dev secrets and use emptyDir for postgres on storage-less cluster
Some checks failed
CI Pipeline / Frontend Lint, Test & Build (push) Has been cancelled
CI Pipeline / Infrastructure Validation (push) Has been cancelled
CI Pipeline / Backend Build & Test (push) Has been cancelled
2026-03-10 21:18:19 +01:00
WorkClub Automation
c9841d6cfc fix(cd): ensure workclub-dev namespace exists before deployment
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 59s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 26s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-10 20:40:29 +01:00
WorkClub Automation
641a6d0af0 fix(cd): use dynamic KUBECONFIG path and enhanced context diagnostics
Some checks failed
CI Pipeline / Frontend Lint, Test & Build (push) Has been cancelled
CI Pipeline / Infrastructure Validation (push) Has been cancelled
CI Pipeline / Backend Build & Test (push) Has been cancelled
2026-03-10 20:38:21 +01:00
WorkClub Automation
b1c351e936 fix(cd): use printf for robust KUBECONFIG writing and add diagnostics
Some checks failed
CI Pipeline / Frontend Lint, Test & Build (push) Has been cancelled
CI Pipeline / Infrastructure Validation (push) Has been cancelled
CI Pipeline / Backend Build & Test (push) Has been cancelled
2026-03-10 20:35:12 +01:00
WorkClub Automation
df625f3b3a Next try fixing the deployment pipeline
Some checks failed
CI Pipeline / Frontend Lint, Test & Build (push) Has been cancelled
CI Pipeline / Infrastructure Validation (push) Has been cancelled
CI Pipeline / Backend Build & Test (push) Has been cancelled
2026-03-10 20:32:48 +01:00
WorkClub Automation
b028c06636 Fix for Deployment, install kubectl
Some checks failed
CI Pipeline / Frontend Lint, Test & Build (push) Has been cancelled
CI Pipeline / Infrastructure Validation (push) Has been cancelled
CI Pipeline / Backend Build & Test (push) Has been cancelled
2026-03-10 20:29:28 +01:00
WorkClub Automation
9f4bea36fe fix(cd): use robust manual kubectl setup to avoid base64 truncated input error
Some checks failed
CI Pipeline / Backend Build & Test (push) Failing after 13s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 27s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-10 20:25:10 +01:00
WorkClub Automation
c5b3fbe4cb Added Kubernetes Cluster Deployment
Some checks failed
CI Pipeline / Backend Build & Test (push) Failing after 55s
CI Pipeline / Frontend Lint, Test & Build (push) Failing after 33s
CI Pipeline / Infrastructure Validation (push) Successful in 9s
2026-03-10 19:58:55 +01:00
WorkClub Automation
4f6d0ae6df chore: remove old screenshot images
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m1s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 29s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-09 17:31:51 +01:00
c6981324d6 Merge pull request 'fix(backend): resolve shift signup by looking up Member via ExternalUserId' (#3) from fix/shift-signup-external-user-lookup into main
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 49s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 28s
CI Pipeline / Infrastructure Validation (push) Successful in 5s
Reviewed-on: #3
2026-03-09 15:56:12 +01:00
WorkClub Automation
e0790e9132 Fix TaskListItemDto missing title/status properties
All checks were successful
CI Pipeline / Backend Build & Test (pull_request) Successful in 49s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Successful in 30s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 3s
2026-03-09 15:53:38 +01:00
WorkClub Automation
672dec5f21 Fix task and shift self-assignment features
Some checks failed
CI Pipeline / Backend Build & Test (pull_request) Successful in 48s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Failing after 28s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 4s
2026-03-09 15:47:57 +01:00
WorkClub Automation
271b3c189c chore: commit sisyphus evidence and CI/CD artifacts
Some checks failed
CI Pipeline / Backend Build & Test (pull_request) Failing after 49s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Successful in 28s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 4s
2026-03-09 15:05:55 +01:00
WorkClub Automation
867dc717cc fix(shifts): expose ExternalUserId in ShiftSignupDto to fix frontend signup state
Some checks failed
CI Pipeline / Backend Build & Test (pull_request) Failing after 49s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Successful in 29s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 3s
2026-03-09 14:46:35 +01:00
WorkClub Automation
6119506bd3 fix(frontend): remove invalid json parsing on shift signup
All checks were successful
CI Pipeline / Backend Build & Test (pull_request) Successful in 53s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Successful in 27s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 3s
- Backend `/signup` endpoint returns 200 OK with an empty body (`TypedResults.Ok()`), causing `res.json()` to throw 'Unexpected end of JSON input'. Removed the `res.json()` return.
- Added Suspense boundary in login page to fix `useSearchParams` build error.
2026-03-09 14:25:12 +01:00
WorkClub Automation
1322def2ea fix(auth): resolve Keycloak OIDC issuer mismatch and API proxy routing
Some checks failed
CI Pipeline / Backend Build & Test (pull_request) Successful in 49s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Failing after 26s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 4s
- Bypass NextAuth OIDC discovery with explicit token/userinfo endpoints using internal Docker DNS, avoiding 'issuer string did not match' errors.
- Fix next.config.ts API route interception that incorrectly forwarded NextAuth routes to backend by using 'fallback' rewrites.
- Add 'Use different credentials' button to login page and AuthGuard for clearing stale sessions.
2026-03-09 14:21:03 +01:00
WorkClub Automation
a8730245b2 fix(backend): resolve shift signup by looking up Member via ExternalUserId
All checks were successful
CI Pipeline / Backend Build & Test (pull_request) Successful in 52s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Successful in 29s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 5s
The signup/cancel endpoints were passing the Keycloak sub claim (external UUID)
directly as MemberId, but ShiftSignup.MemberId references the internal Member.Id.
Now ShiftService resolves ExternalUserId to the internal Member.Id before creating
the signup record. Integration tests updated to seed proper Member entities.
2026-03-09 13:24:50 +01:00
1117cf2004 Merge pull request 'fix(frontend): restore member self-assignment for shifts and tasks' (#2) from feature/fix-self-assignment into main
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 49s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 31s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
Reviewed-on: #2
2026-03-08 19:13:29 +01:00
WorkClub Automation
add4c4c627 fix(frontend): restore member self-assignment for shifts and tasks
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m12s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 35s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
CI Pipeline / Backend Build & Test (pull_request) Successful in 52s
CI Pipeline / Frontend Lint, Test & Build (pull_request) Successful in 33s
CI Pipeline / Infrastructure Validation (pull_request) Successful in 4s
Root Cause:
- Shift: Next.js 16.1.6 incompatible rewrite pattern caused runtime SyntaxError
- Task: Missing self-assignment UI for member role

Fix:
- Updated next.config.ts rewrite pattern from regex to wildcard syntax
- Added "Assign to Me" button to task detail page with useSession integration
- Added test coverage for self-assignment behavior with session mocks

Testing:
- Lint:  PASS (ESLint v9)
- Tests:  47/47 PASS (Vitest v4.0.18)
- Build:  PASS (Next.js 16.1.6, 12 routes)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 19:07:19 +01:00
WorkClub Automation
785502f113 fix(cd): configure buildx for HTTP-only insecure registry
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m9s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 54s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 16:05:28 +01:00
WorkClub Automation
c657a123df feat(cd): add multi-arch Docker build support (AMD64 + ARM64)
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m40s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 1m18s
CI Pipeline / Infrastructure Validation (push) Successful in 10s
Add Docker Buildx support to build images for both linux/amd64 and linux/arm64 architectures using a single workflow. This enables deployment to ARM-based systems (e.g., Raspberry Pi, Apple Silicon) without separate builds.

Changes:
- Add Docker Buildx setup step to both backend and frontend jobs
- Replace single-arch 'docker build' with multi-arch 'docker buildx build'
- Configure '--platform linux/amd64,linux/arm64' for both architectures
- Consolidate tag and push operations into single buildx command
- Update evidence capture to include platform information
- Update release summary to indicate multi-arch images

Images will now be published as manifest lists containing both AMD64 and ARM64 variants under the same tags.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 15:39:39 +01:00
WorkClub Automation
5c815c824a fix(cd): remove http:// from REGISTRY_HOST for valid image tags
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m17s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 56s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 15:24:51 +01:00
WorkClub Automation
5e3968bd69 fix(cd): remove systemctl-based insecure registry config
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m18s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 57s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
- Remove 'Configure insecure registry' step from both backend and frontend jobs
- systemctl not available in Gitea Actions container environment
- Runner host must be pre-configured with insecure registry support
- Fixes: System has not been booted with systemd error
2026-03-08 15:18:27 +01:00
WorkClub Automation
145c47a439 Merge branch 'sisyphus/club-work-manager' 2026-03-08 15:11:30 +01:00
WorkClub Automation
4d35a76669 fix(cd): remove systemctl restart - requires runner pre-config
- Remove 'Configure insecure registry' step from both jobs
- systemctl is not available in Gitea Actions container environment
- Runner host must be pre-configured with insecure registry in daemon.json
- This is a one-time setup by administrator on the runner host
- Resolves: System has not been booted with systemd as init system error
2026-03-08 15:11:21 +01:00
WorkClub Automation
49466839a3 fix(cd): add insecure registry config for HTTP push
Some checks failed
CI Pipeline / Backend Build & Test (push) Failing after 1m19s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 56s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
- Add Docker daemon configuration step to both backend and frontend jobs
- Configure insecure-registries to allow HTTP connections to registry
- Restart Docker daemon and verify configuration
- Resolves HTTP error when pushing to HTTP-only registry at 192.168.241.13:8080
2026-03-08 15:03:02 +01:00
WorkClub Automation
ba74a5c52e fix(cd): add insecure registry config for HTTP push
- Add Docker daemon configuration step to both backend and frontend jobs
- Configure insecure-registries to allow HTTP connections to registry
- Restart Docker daemon and verify configuration
- Resolves HTTP error when pushing to HTTP-only registry at 192.168.241.13:8080
2026-03-08 15:02:25 +01:00
6a912412c6 Enforce http for Registry
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m27s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 58s
CI Pipeline / Infrastructure Validation (push) Successful in 5s
2026-03-08 14:52:47 +01:00
WorkClub Automation
01d5e1e330 fix(cd): change workflow to manual trigger with inputs
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m27s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 58s
CI Pipeline / Infrastructure Validation (push) Successful in 53s
2026-03-08 14:37:25 +01:00
WorkClub Automation
fce12f7cf0 fix(cd): change workflow to manual trigger with inputs 2026-03-08 14:35:43 +01:00
b4b9d23429 next ci test
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m25s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 1m3s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
v0.0.1
2026-03-08 14:27:08 +01:00
7d9e7d146e simle test to force ci
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m10s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 1m0s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-08 14:22:56 +01:00
WorkClub Automation
493234af2a ci(cd): add release-tag bootstrap image publish pipeline to 192.168.241.13:8080
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m24s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 1m2s
CI Pipeline / Infrastructure Validation (push) Successful in 5s
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-08 14:00:58 +01:00
WorkClub Automation
0b6bdd42fd docs(evidence): record ci troubleshooting and resolution notes
Some checks failed
CI Pipeline / Backend Build & Test (push) Failing after 1m7s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 54s
CI Pipeline / Infrastructure Validation (push) Successful in 3s
2026-03-06 22:44:33 +01:00
WorkClub Automation
3313bd0fba docs(plan): mark task 29 complete after gitea ci success
Some checks failed
CI Pipeline / Frontend Lint, Test & Build (push) Has been cancelled
CI Pipeline / Infrastructure Validation (push) Has been cancelled
CI Pipeline / Backend Build & Test (push) Has been cancelled
2026-03-06 22:43:48 +01:00
WorkClub Automation
cf79778466 fix(ci): install jsdom in frontend workflow before vitest
All checks were successful
CI Pipeline / Backend Build & Test (push) Successful in 1m7s
CI Pipeline / Frontend Lint, Test & Build (push) Successful in 57s
CI Pipeline / Infrastructure Validation (push) Successful in 3s
2026-03-06 22:39:48 +01:00
WorkClub Automation
4db56884df fix(ci): pin node runtime for frontend vitest compatibility
Some checks failed
CI Pipeline / Backend Build & Test (push) Successful in 1m9s
CI Pipeline / Frontend Lint, Test & Build (push) Failing after 50s
CI Pipeline / Infrastructure Validation (push) Successful in 4s
2026-03-06 22:33:44 +01:00
WorkClub Automation
e1f98696b5 fix(ci): install kustomize directly in infra job
Some checks failed
CI Pipeline / Backend Build & Test (push) Successful in 1m7s
CI Pipeline / Frontend Lint, Test & Build (push) Failing after 25s
CI Pipeline / Infrastructure Validation (push) Successful in 3s
2026-03-06 22:27:08 +01:00
WorkClub Automation
5cf43976f6 fix(frontend): resolve lint blockers for gitea frontend-ci 2026-03-06 22:26:55 +01:00
WorkClub Automation
ad6a23621d docs(evidence): record gitea actions validation blocker state
Some checks failed
CI Pipeline / Backend Build & Test (push) Successful in 2m21s
CI Pipeline / Frontend Lint, Test & Build (push) Failing after 20s
CI Pipeline / Infrastructure Validation (push) Failing after 7s
2026-03-06 22:02:32 +01:00
WorkClub Automation
53e2d57f2d ci(gitea): add parallel workflow for backend frontend and infra checks 2026-03-06 22:02:28 +01:00