Repository navigation
feat(about): portal links + copy-diagnostics on every host (#58 slice: Raycast learnings) - #63
Merged
Merged
Conversation
The Raycast teardown (2.9.0.0, docs/UX-BENCHMARKS.md) showed a pattern worth adopting: the About surface as a one-stop hub for updates, links, feedback, and diagnostics. PRODUCT-SPEC §8 now specifies it; this lands it on all three hosts. - About gains User Manual and Changelog links beside Website and Report an Issue (i18n: aboutManual, aboutChangelog). - A diagnostics block — release identity, platform + arch, OS version, and the ~/.taskly contract paths — rendered selectable, with a Copy Diagnostics button that puts the block on the clipboard for pasting into an issue (aboutCopyDiagnostics). Confirmation is a transient status message on macOS/Linux and a temporary button-label swap on Windows. Labels are English fixed strings, machine-oriented like the CLI's --json output. - GTK notes: the diagnostics string is a function-local static so the clicked-callback's user_data outlives the dialog; the loopback HTTP server lesson from the release suite does not apply here. - docs/UX-BENCHMARKS.md records the full Raycast teardown: adopted, adapted (silent auto-install declined — a data tool keeps the user's install confirmation), and rejected (accounts, store, web-shell settings, English-only, macOS 26 floor). Verified on the macOS leg: raco rivet build clean, About sheet renders all four links plus the diagnostics block via the AX tree, Copy Diagnostics puts the exact block on the clipboard, and raco rivet acceptance passes 6/6 suites including the release-update suite merged in #61.
MSVC (with the project's warning-as-error settings) rejects getenv as C4996; the Win32 call is the project-idiomatic replacement.
The lambda rewrite left three stale lines from the non-static version behind (undeclared names/home, cascade type error), and the clicked callback still owned a heap-allocated copy — the diagnostics string is a function-local static now, so &diagnostics is the right pointer.
gtk_label_set_attributes needs the GTK_LABEL cast like every other label call in this file, and the clicked callback's gpointer user_data cannot take a pointer-to-const.
4 tasks
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.
Refs #58. Implements the confirmed Raycast-study slice (About 门户 + 诊断复制), absorbing the original slice 3 (诊断可预览).
What
About becomes the update/link/feedback hub Raycast's teardown showed (docs/UX-BENCHMARKS.md has the full record):
taskly.jrtx.site/manual.html) and Changelog (GitHub CHANGELOG) links join Website and Report an Issue — four links, two per row, all three hosts.Contract
aboutManual,aboutChangelog,aboutCopyDiagnostics,statusDiagnosticsCopied(137 keys, zh/en parity green via sync-i18n --check).Verification
raco rivet buildclean; AX-driven check — About renders 4 links + diagnostics block; Copy Diagnostics puts the exact block on the clipboard;raco rivet acceptance6/6 suites pass (includes release-update from feat(release): release-kind acceptance bound to the publish gate (#58 slice 1) #61).