Sharpen method summaries, CLI errors, and review UI; add dark mode - #5
Merged
Merged
Conversation
Summary accuracy: - Skip immutable-typed parameters (str, int | None, tuple[...]) as possible callee mutations, and show remaining possible changes as dashed chips. - Resolve imported @DataClass / @total_ordering constructions as direct calls. - List methods called on received objects (db.commit, repository.save) under Calls, and add Raises. - Rank search by name closeness; project code before tests and lambdas. CLI (threadline review): plain-text errors, clearer --base and --output messages, warn on no Python files, quiet request log, free-port fallback, help text for every option. UI: - Test modules with a main guard move to a collapsed group on Commands. - Clearer call-map context, module cards, and Coverage wording. - Dark mode: every color is a light-dark() token; Theme button cycles System / Light / Dark. Light mode is pixel-identical below the header. - Hamburger sidebar toggle; corner Instructions button holds the reading guide and Coverage; resizable code pane. Tests: new unit, semantic-corpus, and browser checks; axe now runs in both themes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
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
A review pass from a first-time user's view (someone who knows some Python), run against the bundled example, Threadline itself, and
agent-kanban-pm.Method summary accuracy
param.method()counted as possibly mutating the caller's argument, even foremail: str. Parameters typed as immutable (str,int | None,Optional[str],tuple[int, ...]) are now skipped. Changes that remain only possible show as dashed chips with the source in the tooltip.@dataclassconstructions were "probably": any decorator downgraded the call. Imported@dataclass/@total_orderingclasses now resolve as direct calls.@staticmethodstays "probably", as the curated corpus requires. Two corpus cases were added.db.execute,db.commit,repository.save). Library calls show solid, with the library method in the tooltip; unresolved ones are dashed. Clicking one highlights its line.threadline reviewCLI--basenames the revision; a missing--outputfolder is caught before analysis.--portis given.--helptext.UI
<module>is gone, and Coverage is explained in plain language.light-dark()tokens. The page follows the system setting, and a Theme button cycles System / Light / Dark (remembered, and applied before first paint). Below the header, light mode is pixel-identical to before.Testing
reviewerrors, the empty-repo warning and the busy-port fallback.test_semantic_accuracy.py: 25 cases pass, 2 of them new.tests/browser_smoke.pyin all four modes (live,--changes,--html,--html --changes): all checks pass, including new ones for summary calls and raises, the theme toggle and persistence, divider drag and reset, and Coverage inside Instructions.tests/browser_accessibility.py --browser chrome: 84 checks pass, and axe now runs in both themes at each of 24 states with zero violations.tests/release_smoke.pyon a freshly built wheel passes (theme.jsis packaged and served). mypy (CI scope) andnode --checkpass.Notes for review
test_usability.pynow expects test modules in their owntestCommandscatalog category, and one browser check looks up each module card's scope id because cards no longer repeat the file name.threadline/static/theme.js, added to the server routes, the HTML export, CInode --check, and the release smoke test.🤖 Generated with Claude Code