Paint combinators early; nontransferable reimbursement shares - #143
Merged
Conversation
Operand bodies fill in with CID fallbacks instead of blocking the whole page spinner on Promise.all.
StatementPage: extend the existing loadTokenRef guard (previously only covering operand fetches) to all state writes after await points — setStatement, setStatementContent, setContentStatus, metrics, setUserBeliefState, and the catch block. A slow load that resolves after the user has navigated to a different statement no longer paints stale content. Sweep the same pattern across the other conceptspace pages: - UserProfilePage: guard against stale writes when navigating between profiles (address param change) - BrowseStatementsPage: guard against stale writes when rapidly toggling sort options All 112 existing tests pass.
Delete unused files that referenced the old causestarter/src/ directory: - vite.config.ts (dev/build now go through ui/ workspace) - index.html (referenced deleted src/main.tsx) - vitest.config.ts (referenced deleted src/test/setup.ts) - tsconfig.app.json (included non-existent src/ directory) Fix tsconfig files: - tsconfig.json: simplify to extend tsconfig.node.json - tsconfig.node.json: update includes to [playwright.config.ts, eslint.config.js, e2e] Update 19 stale causestarter/src path references to ui/src/causestarter across: - docs/founder/ (2 files, 4 refs) - inbox.md (3 refs) - cause-assist/ (2 refs) - services/bridge-creator/ (1 ref) - specs/ (4 files, 6 refs) - fake-data-generation/ (2 refs) - causestarter/README.md (1 ref) Remove completed TODO item.
File foldReimbursements rounding mismatch as a follow-up.
AdamSpitz
commented
Aug 31, 2026
AdamSpitz
left a comment
Owner
Author
There was a problem hiding this comment.
Review
Combinator non-blocking paint and stale-write guards look correct (unmount now bumps the load token). Reimbursement share tokens match ADR 0013. One non-blocking follow-up: foldReimbursements donation rounding vs the contract accumulator — filed in TODO.md.
No blocking bugs.
AdamSpitz
commented
Aug 31, 2026
AdamSpitz
left a comment
Owner
Author
There was a problem hiding this comment.
Review receipt.
Reviewed vs origin/dev. No blocking bugs. Combinator paint + stale-write guards look correct; remaining foldReimbursements rounding mismatch is a TODO follow-up (thread resolved).
Reviewed-with: grok
Reviewed-files: 52
Reviewed-commit: 2a63978
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.
Summary
Several stacked pieces on this branch (not only combinator painting):
setState.ui/src/causestarter/fold.Review
Branch review vs
origin/dev: 0 bugs, 2 suggestions.foldReimbursementsstill splits donations with per-holder integer division instead of the contract’s per-share accumulator — filed inTODO.md, not rewritten here.Test plan
test:fastreview-received+ resolve threads (/code-review --comment+scripts/post-review.sh)