Fix #323: issues default open-only #330
No reviewers
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub!330
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/issue-323"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #323 — the Issues tab (
/:owner/:name/issues) now defaults to open-only when the URL carries no?state=param; the State select visibly reads "open" on a bare visit.Representation choice (URL honesty)
Reserved
state=allas the explicit both-value (the issue's option A):resolveIssueState(web/src/lib/issueState.js, new): absent param →open;allor legacy empty?state=→all(both);open/closedpass through exactly; unknown values pass through for the server to 400 as before.issueListState:all→""on the wire — the SDKqs()skips empties, so the param is OMITTED and the list endpoint (which accepts onlyopen|closed|absent, absent = both) needs NO backend change.allnever reaches the server.?state=all(shareable/refreshable); refreshing or deep-linking it shows both. Deep links?state=closed/?state=openhonored exactly. Pagination key already includes the query JSON, soopenvs both windows stay distinct.Deliberate decisions
?milestone=<id>, #314) inherit the open default — no special-casing, matches GitHub behavior. Called out as a decision, not an accident.Pulls.jsxintentionally NOT touched — its tab UI already defaults to open (empty state = open tab) and has no both-view; left as-is. FLAG FOR FOLLOW-UP: if pulls ever gains an explicit both-view, align its URL token withstate=allhere for consistency.resolveIssueState(search.state)), so the control reflects the effective default rather than the raw param.Verification
web/test/unit/issue-state.test.js(6 tests: absent→open, both spellings→both, open/closed exact, unknown passthrough, wire mapping, end-to-end) — green.smoke.test.jsexcluded: it hangs identically on pristineorigin/mainin this sandbox — port 8080 is squatted by another process so its skip-probe never settles; pre-existing environmental, unrelated.)/, a repo issues page, and/setupconsole on merge CI.docs/features/02_issues.mdDecisions appended in the same change (law 12).Do NOT merge — review only.