feat(auth): add JWT token refresh endpoint #10925

Closed
HAL9000 wants to merge 6 commits from feat/jwt-token-refresh into master

6 Commits

Author SHA1 Message Date
CleverAgents Bot f414f0bcaa ci: stop master workflow on PR updates
CI / lint (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / security (pull_request) Has been cancelled
CI / quality (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / helm (pull_request) Has been cancelled
CI / push-validation (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
Remove the stale pull_request trigger from master.yml so PR branch commits do not launch the master workflow.

Maintenance patch for PR #10925.
2026-06-10 20:22:00 -04:00
HAL9000 947c5a682b style(auth): apply ruff format to JWT files
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 52s
CI / build (pull_request) Successful in 59s
CI / helm (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 1m14s
CI / security (pull_request) Successful in 1m41s
CI / push-validation (pull_request) Successful in 40s
CI / typecheck (pull_request) Successful in 1m47s
CI / e2e_tests (pull_request) Failing after 4m20s
CI / integration_tests (pull_request) Failing after 4m37s
CI / unit_tests (pull_request) Failing after 4m52s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 4s
Fix CI lint failure caused by ruff format check finding 3 files that
needed reformatting: features/steps/auth_refresh.py, src/cleveragents/a2a/asgi.py,
and src/cleveragents/core/jwt_service.py. No logic changes — pure formatting
(import grouping, blank lines between top-level functions, line wrapping).
2026-05-05 17:52:16 +00:00
HAL9000 e5c818292d fix(auth): resolve all reviewer blockers on JWT token refresh endpoint
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 1m45s
CI / lint (pull_request) Failing after 1m56s
CI / quality (pull_request) Successful in 2m0s
CI / typecheck (pull_request) Successful in 2m15s
CI / security (pull_request) Successful in 2m25s
CI / push-validation (pull_request) Successful in 23s
CI / helm (pull_request) Successful in 25s
CI / integration_tests (pull_request) Successful in 4m17s
CI / e2e_tests (pull_request) Successful in 5m28s
CI / unit_tests (pull_request) Failing after 5m35s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 3s
- Strip 11+ unrelated features bundled in original PR (scope violation)
- Remove # type: ignore[arg-type] from jwt_service.py (zero-tolerance policy)
- Replace hardcoded JWT_SECRET_KEY default with mandatory env var validation
- Fix HS256 docstring: "asymmetric" -> "symmetric (HMAC-SHA256)"
- Add 1 MiB body size limit in _read_body() to prevent OOM DoS
- Fix 405 Allow header: POST paths now advertise POST, not GET
- Fix Scenario Outline -> Scenario in auth_refresh.feature (no Examples table)
- Remove duplicate step definitions conflicting with asgi_app_steps.py
- Add auth/refresh ASGI-level scenarios to asgi_app.feature
- Remove duplicate langchain-anthropic dependency from pyproject.toml
- Set JWT_SECRET_KEY test secret in environment.py before_all hook
2026-05-04 21:02:03 +00:00
HAL9000 bb35080494 feat(auth): add JWT token refresh endpoint
CI / lint (pull_request) Failing after 1m6s
CI / unit_tests (pull_request) Failing after 1m19s
CI / security (pull_request) Failing after 1m21s
CI / integration_tests (pull_request) Failing after 1m21s
CI / quality (pull_request) Successful in 1m24s
CI / typecheck (pull_request) Failing after 1m26s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 29s
CI / helm (pull_request) Successful in 35s
CI / build (pull_request) Successful in 48s
CI / e2e_tests (pull_request) Failing after 1m12s
CI / status-check (pull_request) Failing after 3s
- Add PyJWT>=2.8.0 dependency to pyproject.toml
- Add jwt_config module with JWTConfig dataclass for token settings
- Add jwt_service module with token creation, decoding, and refresh functions
- Add POST /auth/refresh endpoint to ASGI app (src/cleveragents/a2a/asgi.py)
- Add Behave BDD tests covering all refresh endpoint scenarios
- New tokens (access + refresh) are issued atomically on valid refresh
2026-04-29 06:02:03 +00:00
HAL9000 02d0182790 Implement conversation state management 2026-04-29 03:25:18 +00:00
HAL9000 10ed6efac4 fix(plan-tree): visually mark corrected nodes in build_decision_tree
CI / helm (pull_request) Successful in 36s
CI / build (pull_request) Successful in 53s
CI / lint (pull_request) Successful in 57s
CI / typecheck (pull_request) Successful in 1m23s
CI / quality (pull_request) Successful in 1m34s
CI / security (pull_request) Successful in 1m40s
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 23s
CI / integration_tests (pull_request) Successful in 3m27s
CI / unit_tests (pull_request) Failing after 3m43s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 3m57s
CI / status-check (pull_request) Failing after 3s
- Add label key to node dicts in _node_dict
- Append [corrected] marker when decision.is_correction is True
- Add TDD BDD scenario proving corrected nodes are visually marked
2026-04-29 02:21:38 +00:00