feat(api): challenges list, invite push, participant set-habits (#204) - #276
Merged
Conversation
…its (#204) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
AgentCatalogServiceTests.EveryControllerAction_IsMappedToTheCatalog requires every controller action be registered; add ChallengesController.GetMine and SetHabits to the Manage Social capability's controller-action registry. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds ChallengeValidatorsTests for GetUserChallengesQueryValidator and SetChallengeHabitsCommandValidator (previously 0% covered), lifting new-code coverage above the 80% quality gate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Paired backend for the co-op challenges UI (#204). Additive only — no DB migration; EF model snapshot unchanged.
Additions
GET /api/challenges— lists the caller's challenges (active-first, then completed) as a lightweightChallengeListItemResponse[]; progress computed via the sharedChallengeProgressCalculator(extracted from the detail query). Enables the challenges list surface.CreateChallengeCommandnow notifies each invited friend (localized viaLocaleHelper, non-fatal on failure), mirroring the accountability invite.PUT /api/challenges/{id}/habits—SetChallengeHabitsCommandlets an active participant (incl. a create-time-invited friend) set their own linked habits so they can contribute. Replaces through the aggregate + EF orphan-removal.Tests
GetUserChallengesQueryHandlerTests,SetChallengeHabitsCommandHandlerTests, and updatedCreateChallengeCommandHandlerTests(invite push).dotnet buildclean; Orbit.Application.Tests 2523 + Orbit.Domain.Tests 481 pass.Merge order
Merge + deploy this before the client PR — the challenges UI depends on these endpoints. Backward-compatible (all additive), safe to deploy ahead of the client.
Refs thomasluizon/orbit-ui-mobile#204
Paired client PR: thomasluizon/orbit-ui-mobile#371
🤖 Generated with Claude Code