Skip to content

Add startup animations and fix terminal web links - #21

Merged
merefield merged 2 commits into
masterfrom
feat/startup-animation
Oct 11, 2026
Merged

merefield merged 2 commits into
masterfrom
feat/startup-animation

Conversation

@merefield

@merefield merefield commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

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:

  • Full race/coverage test suite and Go vet
  • Deterministic animation, docking, resizing, skipping and asynchronous initial loading tests
  • Link regression tests covering all domains, Markdown variants, full wrapped destinations, actual styled terminal cells, Unicode click geometry, code literals and link disabling
  • macOS tests for click consumption, ordinary mouse input, SSH exclusion, literal opener arguments and error delivery, without launching a browser
  • Cross-compilation for macOS, Linux and Windows on AMD64 and ARM64
  • Linux govulncheck with Go 1.27.2: zero reachable vulnerabilities
  • Startup PTY smoke checks with synthetic forum data: completion, theme-preserving skip and quit during a slow request

@merefield merefield changed the title Animate TERMCOURSE wordmark at startup Add startup animations and fix terminal web links Oct 11, 2026
@merefield
merefield requested a lite review from Copilot October 11, 2026 12:24

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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.

@merefield
merefield merged commit 2b60413 into master Oct 11, 2026
5 checks passed
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.

2 participants