Repository navigation
Add startup animations and fix terminal web links - #21
Merged
Merged
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
Unresolved moderate issues affect startup rendering, cancellation, live-update merging, link visibility, and opener error handling.
0 open findings
What changed in this PR
Adds animated startup behavior, asynchronous initial loading, and expanded terminal web-link handling with macOS browser support.
Changes:
- Adds three startup animation variants with skip, resize, and quit handling.
- Loads initial forum data asynchronously with localized loading states.
- Supports visible, styled, wrapped links and direct macOS opening.
| File | Summary |
|---|---|
README.md |
Documents startup animations and link behavior. |
internal/ui/web_links.go |
Implements link parsing, wrapping, and hit testing. |
internal/ui/web_links_test.go |
Tests link rendering and interaction behavior. |
internal/ui/web_links_other.go |
Disables local browser opening outside macOS. |
internal/ui/web_links_other_test.go |
Tests non-macOS behavior. |
internal/ui/web_links_darwin.go |
Opens links via macOS /usr/bin/open. |
internal/ui/web_links_darwin_test.go |
Tests macOS opening and click handling. |
internal/ui/ui.go |
Integrates asynchronous initial loading. Moderate finding: initial live updates can bypass the incoming merge. |
internal/ui/text.go |
Integrates Markdown link rendering. Moderate finding: named and reference destinations may remain hidden, especially when links are disabled. |
internal/ui/terminal.go |
Adds startup state and link handling. Moderate finding: opener failures can bypass the error UI in direct composer input. |
internal/ui/tabs.go |
Routes browser-opening errors. Moderate finding: direct composer readers may not display opener failures. |
internal/ui/style.go |
Shares masthead wordmark styling. |
internal/ui/startup.go |
Implements startup animations. Moderate finding: missing initial size reports can leave the UI permanently blank. |
internal/ui/startup_test.go |
Tests animation and loading behavior. |
internal/ui/startup_load.go |
Loads initial forum data asynchronously. Moderate findings: blocked requests are not cancellable on quit, and live updates can be omitted from the initial result. |
internal/ui/cache.go |
Extracts notification-total application logic. |
internal/i18n/locales/fr.yml |
Adds localized loading text. |
internal/i18n/locales/es.yml |
Adds localized loading text. |
internal/i18n/locales/en.yml |
Adds localized loading text. |
internal/i18n/locales/de.yml |
Adds localized loading text. |
go.mod |
Promotes Goldmark to a direct dependency. |
🧠 Review effort: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Add a startup wordmark animation with three randomly selected variants: sliding in from the right, typing after three cursor blinks, and shuffled characters resolving into TERMCOURSE. Each uses the existing block lettering and theme, then shrinks into the masthead. Initial forum data loads in the background; skip inputs are consumed, q/Ctrl+C remain responsive during slow requests, and small terminals open directly.
Fix terminal web links so every domain keeps its full destination visible, including named Markdown links, reference links, table links, and bare URLs. Preserve exact destinations across wrapping, scrolling, truncation and theme styling, with each displayed line owning its hyperlink boundaries. Code remains literal; disabling links keeps addresses visible.
On a local Mac, left-clicking a rendered web link opens the default browser without selecting the containing post or activating navigation. Pass the URL directly to /usr/bin/open without a shell, display opening failures through the existing error UI, and retain terminal-managed opening for SSH and other platforms. There is no domain allow list.
Validation: