Skip to content

Consistent Statuses for detail view and main table#15

Closed
grantlouisherman wants to merge 1 commit intogastownhall:mainfrom
grantlouisherman:web/status-table-changes
Closed

Consistent Statuses for detail view and main table#15
grantlouisherman wants to merge 1 commit intogastownhall:mainfrom
grantlouisherman:web/status-table-changes

Conversation

@grantlouisherman
Copy link
Copy Markdown
Contributor

@grantlouisherman grantlouisherman commented Mar 6, 2026

Currently if you go to the main page, https://wasteland.gastownhall.ai/ you can see a table view and filter. However, there is an inconsistency between the table view and the detail view. For example, "Write public protocol spec (sanitized design.md)" is "In Review" in the table, but open in the detail view https://wasteland.gastownhall.ai/wanted/w-hop-001.

My Changes

Updated UI
WasteLand

Summary of changes:

  1. wl join bug fix — internal/backend/remote.go

DoltHub returns HTTP 400 with a toCommitId null error when a write produces no changes (e.g. rig already registered via ON DUPLICATE KEY UPDATE). The polling
code was treating this as a fatal error. Fixed it to treat it as a no-op success, allowing wl join to complete.


  1. Status consistency fix — internal/sdk/reads.go

The browse list was overlaying item status with the furthest upstream PR state (e.g. an open item showing as in_review because someone had a pending PR). This
caused the filter, list, and detail page to all disagree on status. Removed the status overlay so all three views show the raw DB status consistently.


  1. Pending hover card — multiple files

Replaced the plain title tooltip on the "pending" badge with a hover card showing each competing submission's rig handle, status, and PR/branch link. Required:

  • internal/api/types.go — added PendingItemJSON struct and pending_items field to the browse response
  • internal/sdk/reads.go — wired UpstreamPending data through to the API
  • web/src/api/types.ts — added PendingItemSummary interface and pending_items to WantedSummary
  • web/src/components/BrowseList.tsx — replaced inline spans with a PendingIndicator component that renders the hover card
  • web/src/components/BrowseList.module.css — added hover card styles

  1. Test updates — internal/sdk/sdk_test.go

Updated two tests that were asserting the old status overlay behavior to reflect the new raw DB status expectation.

@grantlouisherman grantlouisherman force-pushed the web/status-table-changes branch from 7fc608c to b35755f Compare March 6, 2026 17:34
julianknutsen added a commit that referenced this pull request Mar 6, 2026
- Restore web/dist/.gitkeep (blocker: go:embed requires dist/ to exist)
- Remove web/tsconfig.tsbuildinfo and add to .gitignore
- Add slog.Debug for toCommitId no-op path in pollOperation
- Remove dead stateRank code and simplify best-selection loop
- Add keyboard/ARIA accessibility to pending hover card (button + focus-within)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@julianknutsen
Copy link
Copy Markdown
Collaborator

Merged via maintainer adoption — rebased onto main with 3 fixup commits addressing triple-model review findings:

  1. Restored web/dist/.gitkeep (go:embed build blocker)
  2. Removed web/tsconfig.tsbuildinfo + added to .gitignore
  3. Added slog.Debug for toCommitId no-op path
  4. Removed dead stateRank code
  5. Fixed invalid HTML nesting in hover card (<a> inside <button>, <div> inside <span>)

Thanks for the contribution @grantlouisherman! The status consistency fix and pending hover card are live. 🎉

@steveyegge
Copy link
Copy Markdown
Collaborator

Thanks @grantlouisherman!

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants