Skip to content

[Frontend][Review] Revision metadata publish discards a newer in-flight GET; history.invalid latches permanently (from PR #2516 review) #2524

Description

@Chris0Jeky

From the fresh-context review of PR #2516 (#2458), non-blocking. (1) MEDIUM: useProposalRevisions.ts ~154-169 publishPersistedRevisionMetadata bumps loadGeneration before the completeness check, so a strictly newer in-flight GET (another session saved rev3 while our rev2 POST was in flight) is dropped without merging and a complete-looking {1,2} chain is published with no reload; the next edit bases on a superseded revision until the ~15 s poll moves latestRevisionId. Fix: let the in-flight GET land and merge (the active-proposal guard already re-checks), or re-publish after mergeLoadedRevisions. (2) MEDIUM: history.invalid (~100-115, consumed ~131) is never cleared, so one inconsistent response leaves the proposal's metadata unknown for the composable lifetime (badges/diff panes vanish, previews refetch); reset on the next authoritative GET. (3) LOW: add a spec for the cross-proposal guard (mismatched proposalId); revisionHistoryByProposal is unbounded across a queue walk; the A1-before-A2 spec should assert the intermediate publish / monotonicity. Refs #2458, #2448, #2456.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority VMeta-tracking, archival consistency, historical context.bugSomething isn't workingfrontendPrimary implementation impact in Vue/TypeScript UI and client runtime.

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions