Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Sonnet 4.6 f03a2f4613 fix: move run_once flag to first task in all service 01_core.yml files
Ensures the run_once guard is set before any other task executes,
preventing infinite recursion when load_app.yml re-evaluates service
roles mid-run. Also introduces new 01_core.yml + main.yml for
web-svc-asset and web-svc-libretranslate following the standard schema,
and adds a lint test enforcing this structure across all SERVICE_REGISTRY
roles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 02:42:51 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 8a94f037b1 docs: fallback to curl -k when make trust-ca lacks root permissions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 01:24:58 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 9e41810ba4 fix: load email (web-app-mailu) before oidc (web-app-keycloak)
Move the email entry above oidc in SERVICE_REGISTRY so that Mailu is
deployed before Keycloak, which depends on it for SMTP notifications.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 01:18:01 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 be341234bb feat: register web-app-mailu as 'email' service and enforce dependency
- Add 'email' key (role: web-app-mailu, type: frontend) to SERVICE_REGISTRY
- Declare compose.services.email with enabled: true and shared: true in all
  33 app roles that reference web-app-mailu or use SYSTEM_EMAIL_* variables
- Add integration test test_mailu_service_dependency.py that enforces this
  constraint for any future role additions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 01:13:56 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 66f18001d0 docs: allow multiple APPS roles and rename placeholder to <roles>
Add note that multiple apps can be passed space-separated to APPS to speed up debugging. Replace all <role> placeholders with <roles> for consistency.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 00:01:27 +02:00
kevinveenbirkenbach 862493f4e2 Refactor network stack refresh helpers 2026-03-31 23:55:35 +02:00
kevinveenbirkenbach 03c58e24bf Refine IPv6 disable flow for local development 2026-03-31 23:33:14 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 3bd965c682 ci: remove cancel-on-failure jobs from test workflows
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:43:31 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 6ef2e05dde test: robustify Playwright auth controls and sync Keycloak state via hooks
- Refactor login/logout test to use reusable expectLoggedOutHeaderAuthState
  and expectLoggedInHeaderAuthState helpers
- Make dropdown detection and logout item discovery more resilient across
  Keycloak versions and timing variations
- Sync Keycloak auth state via onReady/onAuthSuccess/onAuthLogout hooks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:41:07 +02:00
kevinveenbirkenbach 00193b4a23 Rename the canonical services map to SERVICE_REGISTRY 2026-03-31 21:43:29 +02:00
kevinveenbirkenbach 9cbb12d540 Propagate host MTU to the local compose network 2026-03-31 21:00:51 +02:00
kevinveenbirkenbach ef6b645cd7 Add uri_probe action plugin for short reachability checks 2026-03-31 20:35:57 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 7d05ba0a92 docs: add make disable-ipv6 / restore-ipv6 to network debugging guide
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 19:35:11 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 79ca7137da docs: restructure debugging and CI flow documentation
- Rename continuous_integration.md to ci.md
- Move debugging.md into debugging/ci.md and apply documentation standards
- Add debugging/network.md with Docker pull error guidance (MTU, IPv6, connectivity)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 19:21:38 +02:00
kevinveenbirkenbach b46337df52 Document iframe reload handling for Playwright agents 2026-03-31 17:28:37 +02:00
kevinveenbirkenbach 5e14d936ca Merge branch 'main' into feature/taiga-ldap 2026-03-31 17:09:42 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 e8de7cb7dc docs: add communication guidelines and link from SUPPORT.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 15:28:04 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 e7bbc01e9c docs: add continuous integration flow documentation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 15:14:46 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 b8b65d1a33 docs: add Code of Conduct, Investor Relations, and headline emoji conventions
- Add Code of Conduct section to README.md with link to CODE_OF_CONDUCT.md
- Add Invest section to README.md linking to Investor Relations in SUPPORT.md
- Add Investor Relations section to SUPPORT.md with contact details and meeting link
- Add emojis to all headings in SUPPORT.md and docs/contributing/documentation.md
- Add Headlines section to documentation.md defining emoji placement convention

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 15:09:58 +02:00
kevinveenbirkenbach 6c6f56a160 Stabilize Pixelfed Playwright iframe reload flow 2026-03-31 14:46:39 +02:00
kevinveenbirkenbach d06c3baae4 Fix dashboard card hover flicker 2026-03-31 12:26:08 +02:00
kevinveenbirkenbach 0fa1ec0024 Extract dashboard simpleicons refresh tasks 2026-03-31 11:36:32 +02:00
kevinveenbirkenbach 9a55f8d551 Applied linting 2026-03-31 11:30:45 +02:00
kevinveenbirkenbach 3eecff192c Add dashboard Playwright integration 2026-03-31 11:23:22 +02:00
Alejandro Roman 1f1ae89ef3 fix(playwright-mailu): change teh appraoch to test if CI pass now with a separate browser context 2026-03-31 11:20:17 +04:00
kevinveenbirkenbach dbc4dc7485 documentation/update contributing guide links and sphinx index 2026-03-30 23:03:47 +02:00
kevinveenbirkenbach 623fa60c64 fix(docker): increase healthcheck timeout 2026-03-30 22:34:51 +02:00
kevinveenbirkenbach 1770dd7f9f test(environment): clarify HTTP 000 expectation 2026-03-30 22:31:38 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 9c1e62fd50 fix(tests): expect HTTP 000 when subdomain is missing from certificate SAN
curl returns 000 (no HTTP response) instead of 404 when the TLS handshake
fails because the target subdomain is not listed as a SAN in the deployed
certificate. Updated both assertions and added explanatory comments.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 22:29:47 +02:00
kevinveenbirkenbach 5ec585272d Merge branch 'main' into feature/taiga-ldap 2026-03-30 20:39:23 +02:00
kevinveenbirkenbach b199d08745 docs(workflows): clarify act matrix filtering 2026-03-30 20:29:28 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 9a068f0fd0 feat(config): allow act commands in Claude Code settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:23:40 +02:00
kevinveenbirkenbach 02a20617eb docs(agents): prefer single distro workflow iteration 2026-03-30 20:17:14 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ec2b513bde feat(config): enforce shared consistency for all enabled services
- Add shared: true to logout, oauth2, and greenlight services wherever
  enabled: true was set without a shared declaration
- Add # noqa: shared comment before role-local internal containers
  (redis, worker, web, opensearch, search) that are intentionally
  not shared
- Add missing enabled: false to ollama in svc-ai-ollama (shared was
  declared without enabled, violating the new consistency rule)
- Add integration test test_service_shared_consistency to enforce:
  Rule 1: enabled=true requires shared=true or a # noqa: shared comment
  Rule 2: shared key requires enabled key to be present

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:13:34 +02:00
kevinveenbirkenbach f9be24cc5b docs(agents): recommend act workflow iteration 2026-03-30 20:02:36 +02:00
kevinveenbirkenbach 017818976a test(services): cover pixelfed dashboard dependency 2026-03-30 19:49:42 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 acd3b716eb feat(config): set dashboard shared for all enabled dashboard roles
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 19:47:05 +02:00
kevinveenbirkenbach 093892bd3d Set dashboard shared 2026-03-30 19:43:38 +02:00
kevinveenbirkenbach 39cafb2cf0 Enabled shared dashboard for pixelfed 2026-03-30 19:22:58 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 3bdbd1831e feat(asset): register web-svc-asset as frontend service and wire dependencies
Adds 'asset' service key in 20_services.yml pointing to web-svc-asset so
it is loaded via 01_services.yml when needed. Sets asset: enabled: false,
shared: true in web-svc-asset/config to avoid self-injection. Enables
asset: enabled+shared in dashboard, discourse, and listmonk — the three
roles that consume the asset server for logo/image URLs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 18:25:31 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 10b889e76f refactor(deploy): single deploy-fresh-purged-apps target with FULL_CYCLE flag
Consolidates into one target. FULL_CYCLE defaults to false (deploy only);
set FULL_CYCLE=true for deploy + update pass. Extracts run_pass function
in fresh-purged-app.sh to eliminate duplicated init+deploy logic. Updates
makefile.md, playwright.md, iteration.md, and environment.sh with correct
FULL_CYCLE usage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:14:44 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 e6f519d70c fix(cdn): disable css/javascript injection for web-svc-cdn itself
CDN is the provider of CSS and JS assets, not a consumer. Setting
enabled: false prevents sys-front-inj-css/javascript from running against
the CDN vhost and trying to load non-existent style/javascript files.
shared: true is kept so the needed flag resolves correctly from other apps.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 16:55:45 +02:00
kevinveenbirkenbach 63365c6531 Merge pull request #116 from AlejandroRomanIbanez/fix/wsl2
fix(wsl2): Fix all errors in wsl env
2026-03-30 16:23:32 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 1241fa4011 style(tests): apply linter formatting to test_services_canonical.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 16:14:33 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ce27e05e3d docs(services): document css/javascript services, canonical field, and CDN loading
Updates services.md to cover shared-role entries (cdn/css/javascript),
the canonical field rules, bidirectional lookup behaviour, and links to
the new integration/lint tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 16:01:33 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 c74bd98969 feat(services): introduce canonical field for shared-role service entries
Adds canonical: cdn to css/javascript entries in 20_services.yml so that
role-based reverse lookup (web-svc-cdn → cdn) is deterministic. Updates
_build_role_to_key to use the canonical field. Adds an integration test
verifying bidirectional resolution and a lint test enforcing canonical
consistency rules (exactly one primary, no chaining, matching roles).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 15:58:54 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 563b0c3c8c feat(cdn): add css/javascript as frontend services pointing to web-svc-cdn
Ensures web-svc-cdn is loaded whenever any app has css or javascript
injection enabled, by registering css and javascript as service keys in
20_services.yml (both mapping to web-svc-cdn). Adds shared: true to all
css/javascript compose service entries across app and svc role configs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 15:47:07 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 84323aa471 refactor(cdn): replace cdn_paths/cdn_urls filter plugins with cdn lookup plugin
Eliminates scope-dependent CDN variable bugs by introducing a `cdn` lookup
plugin that resolves paths and URLs at call-time using an explicit application_id
argument. Deletes the old cdn_paths.py and cdn_urls.py filter plugins and their
tests; adds a new unit test for the lookup plugin's _cdn_paths and _to_url_tree
helpers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 15:10:59 +02:00
Alejandro Roman e8ee4a12f7 fix(playwright-mailu): add a timer to give time to log out correctly 2026-03-30 16:52:42 +04:00
Alejandro Roman 5645e7ce1e feat(playwright-mailu): make sure biber keycload is terminated when logout 2026-03-30 14:36:01 +04:00