Skip to content

feat(auth,http,docs): post-OAuth cleanup — auth getters, idle tests, deadlock fix, docs - #30

Merged
LimiNode merged 4 commits into
mainfrom
feat/0xx-post-oauth-cleanup
Jun 1, 2026
Merged

feat(auth,http,docs): post-OAuth cleanup — auth getters, idle tests, deadlock fix, docs#30
LimiNode merged 4 commits into
mainfrom
feat/0xx-post-oauth-cleanup

Conversation

@LimiNode

Copy link
Copy Markdown
Owner

Summary

Post-OAuth cleanup PR addressing reviewer feedback and a deadlock uncovered by new idle-group tests.

Changes

  • docs(agents): explicitly reference guides/git-workflow.md from AGENTS.md Read First and Critical Defaults sections.
  • feat(auth): add clear_auth_provider(), has_auth_provider(), and auth_provider() getters to HttpClient.
  • fix(http): prevent cancel_requests() from deadlocking when called on an empty group with no processor running. The callback was queued in m_groups_to_cancel but never processed; now it mirrors wait_requests_by_group_id() and invokes immediately when the group has zero requests.
  • test(http): add Test 9 (wait_requests() on empty group returns immediately) and Test 10 (wait_requests_for() on empty group returns true immediately). Test 10 exposed the above deadlock.

Verification

  • Auth tests: ctest --test-dir build-auth-tests — 5/5 passed.
  • Integration tests: http_client_wait_requests_test passed 5/5 consecutive runs.
  • http_client_auth_provider_test passed.

🤖 Generated with Claude Code

LimiNode and others added 4 commits May 24, 2026 06:12
…faults

Add explicit link to Git workflow rules in AGENTS.md Read First and
Critical Defaults sections. Replace inline Git section in
critical-defaults.md with a pointer to the canonical guide.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add clear_auth_provider(), has_auth_provider(), and auth_provider()
to HttpClient for inspecting and resetting the current IAuthProvider
without explicitly passing nullptr.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
If cancel_requests() (called from ~HttpClient) was invoked on a group
with zero pending/active/failed requests while no processor was running,
the callback was queued in m_groups_to_cancel but never processed,
causing future.get() to block forever. Mirror the immediate-invoke
pattern already used in wait_requests_by_group_id() for empty groups.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add Test 9 (wait_requests returns immediately on empty group) and
Test 10 (wait_requests_for returns true immediately on empty group).
Test 10 uncovered a deadlock in cancel_requests_by_group_id when no
processor is running and the group is empty — fixed in prior commit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@LimiNode
LimiNode merged commit 67547ff into main Jun 1, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant