Repository navigation
Conversation
entire activity and entire recap tried the caller's home entire-api cell first and fell back to the data API (the BFF) when the cell client could not be built. The BFF serves /me/activity, /me/commits and /me/recap by proxying to that same home cell (proxyHomeMe), so the fallback could never succeed where the cell path failed; it only added a hop and hid the real error. Both commands now use the home cell only. Client errors go through renderDataAPIAuthError: no login prints the login hint (recap used to render the BFF's 401 instead), cancellation stays silent, and anything else, including a home jurisdiction without a cell, surfaces verbatim. runAuthenticatedDataAPI, logCellClientFallback and currentRepoSlug lose their last callers and are removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M4GNVFC303Y9TKGWSAWCAKBN
Contributor
There was a problem hiding this comment.
馃煝 Approval recommended
The implementation consistently removes the fallback while preserving authentication error handling and relevant test coverage.
0 open findings
What changed in this PR
Routes activity and recap directly through the caller鈥檚 home Entire API cell, removing the redundant BFF fallback.
Changes:
- Removed data-API fallback and fallback logging.
- Standardized authentication error rendering.
- Updated recap scoping, tests, and routing documentation.
| File | Description |
|---|---|
docs/鈥媎evelopment/鈥媋pi-routing.md |
Documents cell-only /me routing. |
cmd/鈥媏ntire/鈥媍li/鈥媟ecap.go |
Uses the home-cell client and repo ULID scope. |
cmd/鈥媏ntire/鈥媍li/鈥媟ecap_test.go |
Updates routing seams and tests login guidance. |
cmd/鈥媏ntire/鈥媍li/鈥媏ntireapi_client.go |
Removes activity fallback behavior. |
cmd/鈥媏ntire/鈥媍li/鈥媋uthcmd.go |
Removes the obsolete data-API authentication helper. |
cmd/鈥媏ntire/鈥媍li/鈥媋uth/鈥媍ell_data_api.go |
Updates no-cell error documentation. |
cmd/鈥媏ntire/鈥媍li/鈥媋ctivity_cmd_test.go |
Tests activity against cell authentication. |
馃 Review effort: Balanced
馃挕 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Soph
marked this pull request as ready for review
October 9, 2026 18:07
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.
https://entire.io/gh/entireio/cli/trails/1532
What
entire activityandentire recapnow talk only to the caller's home entire-api cell. The data-API (BFF) fallback is removed.Why
Both commands tried the home cell first and fell back to the BFF when the cell client could not be built. The BFF serves
/me/activity,/me/commitsand/me/recapby proxying to that same home cell (proxyHomeMein entire.io), so the fallback could never succeed where the cell path failed. It only added a hop and hid the real error behind a later 401.Changes
runAuthenticatedActivityAPI(entireapi_client.go) andnewRecapClient(recap.go) build the client withauth.NewEntireAPICellClientand nothing else.renderDataAPIAuthError: no login prints the login hint (recap used to render the BFF's 401 instead), the caller's own cancellation stays silent, and anything else, including a home jurisdiction without a cell, surfaces verbatim.runAuthenticatedDataAPI,logCellClientFallbackandcurrentRepoSluglost their last callers and are removed.docs/development/api-routing.mddocuments/merouting as home cell with no fallback.Tests
SetResolveContextForCellAPIForTest) and isolate config/cache dirs andENTIRE_TOKEN, so they no longer reach real discovery.TestRunRecap_PrintsLoginHintWhenNotLoggedIncovers the not-logged-in path.mise run checkpasses.Note
Medium Risk
Changes auth and API routing for user-facing activity/recap commands; failures that previously succeeded via BFF fallback may now error or show different messages.
Overview
Activity and recap now authenticate only against the caller鈥檚 home entire-api cell via
auth.NewEntireAPICellClient; the previous data-API/BFF fallback (runAuthenticatedDataAPI,ResolveDataAPI, andlogCellClientFallback) is removed because the BFF proxies/me/*to that same cell.Client build failures go through
renderDataAPIAuthError:ErrNotLoggedInshows the login hint, Ctrl+C stays silent, and other errors (no cell for jurisdiction, refresh/network) surface directly instead of being masked or deferred to a server 401. Recap repo scope is always the cell path (repo ULID fromcurrentRepoRef); slug-based data-API scoping andcurrentRepoSlugare dropped.Tests switch to
SetResolveContextForCellAPIForTestwith isolated config dirs; recap adds a not-logged-in hint test.api-routing.mddocuments the no-fallback/merouting.Reviewed by Cursor Bugbot for commit c557cbc. Configure here.