Update official addons to SDK 3.6.0#4
Conversation
Fix "Invalid input: Account scope includes unknown account 'TOTAL'": the legacy magic "TOTAL" aggregate accountId was removed in the 3.x data-model refactor, and SDK 3.5.1 now validates account scope and rejects unknown ids. Aggregate holdings across the real account ids referenced by activities instead, deduped by holding id. Bump SDK/UI/dev-tools deps and manifest/store metadata to 3.5.1.
Bump Goal Progress Tracker, Investment Fees Tracker, and Swingfolio to
3.6.0 and require Wealthfolio 3.6.0 as the minimum runtime.
- Bump version and sdkVersion to 3.6.0 across manifest.json and
addon.store.json; align distribution r2Path to the 3.6.0 folder.
- Move @wealthfolio/addon-sdk, @wealthfolio/ui, and @wealthfolio/addon-dev-tools
peer/dev deps to ^3.6.0 and refresh pnpm-lock.yaml.
- Migrate route registration to the SDK 3.6.0 API: routes now render via
the render({ root }) callback with createRoot(...) and are unmounted on
disable, replacing the removed RouteConfig.component/React.lazy shape.
- Swingfolio: ship the calendar trade-breakdown dialog, mobile section
switcher, and calendar week-start preference.
- Add 3.6.0 CHANGELOG entries and regenerate official/README.md.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11e07580dc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // the 3.x data-model refactor (getHoldings now resolves a single real | ||
| // account and returns [] for an unknown id), so aggregate holdings across | ||
| // every account referenced by the activities instead. | ||
| const accountIds = [...new Set(activities.map((activity) => activity.accountId))]; |
There was a problem hiding this comment.
Include activity-less accounts in portfolio value
When a user has holdings-mode accounts or any account with current holdings but no activity rows, deriving accountIds only from activities omits those accounts from the per-account getHoldings calls. The portfolioValue denominator then excludes part of the portfolio, so feeAsPercentageOfPortfolio is overstated compared with the previous aggregate TOTAL behavior; fetch all active accounts/valuations rather than using activities as the portfolio universe.
Useful? React with 👍 / 👎.
Updates the three official addons to the Wealthfolio 3.6.0 SDK and sets 3.6.0 as the minimum runtime.
Changes
version+sdkVersion→3.6.0inmanifest.jsonandaddon.store.json;minWealthfolioVersionis3.6.0; distributionr2Pathpoints at the3.6.0folder.@wealthfolio/addon-sdk,@wealthfolio/ui,@wealthfolio/addon-dev-toolsmoved to^3.6.0(peer + dev);pnpm-lock.yamlrefreshed to resolve all@wealthfolio/*at3.6.0.RouteConfig.component. All routes now register via therender({ root })callback usingcreateRoot(root).render(...)and callroot.unmount()on disable.3.6.0entries to eachCHANGELOG.md; regeneratedofficial/README.md(was stale at 3.4.0).Verification
pnpm check(validate:addons + type-check:official) passes.pnpm build:officialbuilds all three bundles cleanly.Notes
assets/cover-light.webp/cover-dark.webpreferenced by eachaddon.store.jsonare still placeholders (pre-existing validation warning) and should be added before store publish.