Skip to content

Add Reading settings and comprehensive documentation - #101

Merged
f merged 1 commit into
masterfrom
codex/v1.7.0-reading-docs
Aug 22, 2026
Merged

Add Reading settings and comprehensive documentation#101
f merged 1 commit into
masterfrom
codex/v1.7.0-reading-docs

Conversation

@f

@f f commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a dedicated Reading settings pane with an accurate animated Centered/Near Top preview and a natural cue-rich sample script
  • render paragraph breaks as spaced, centered dots and improve text breathing room above compact notch controls
  • preserve Director paragraph breaks during live editing, honor its locked read boundary, and reject invalid HTTP+WebSocket port pairs
  • make Reset All restore every documented setting
  • publish a complete responsive guide at /docs/, add the Docs link to the homepage, and document URL-scheme and authenticated Director API automation
  • align README protocol documentation with the current Director authentication handshake

Validation

  • macOS Debug build (Textream, arm64, signing disabled)
  • macOS Release build with Swift warnings treated as errors
  • html-validate across the homepage, docs, privacy, and support pages
  • duplicate-ID and local-fragment audit (40 IDs, 24 links)
  • local HTTP checks for /, /docs/, /support.html, and /privacy.html
  • git diff --check

There is no macOS test target in the project, so the native validation is build- and runtime-smoke-based.

Copilot AI lite review requested due to automatic review settings August 22, 2026 21:40
@f
f merged commit 623a541 into master Aug 22, 2026
1 check passed

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.

🟡 Changes recommended

Reduce Motion is not fully honored for the new reading-position preview transition path (implicit scrollOffset animation still occurs when duration is set to 0).

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a dedicated Reading settings pane and publishes a comprehensive /docs/ guide, while tightening Director live-edit behavior and polishing paragraph-break rendering and notch UI spacing.

Changes:

  • Introduces a new Reading settings tab (position, paragraph dividers, last-spoken words, keep-awake) and improves the settings notch preview behavior/layout.
  • Preserves Director paragraph breaks/locked read boundary during live edits and clamps preserved read progress more safely.
  • Publishes/links a full responsive documentation site and updates README Director authentication + protocol details.
File summaries
File Description
Textream/Textream/TextreamService.swift Clamps preserved read prefix to recognized + director-locked boundary when updating Director text.
Textream/Textream/SettingsView.swift Adds Reading tab, refines notch preview sample/animation identity, tightens port bounds, expands Reset All coverage.
Textream/Textream/NotchSettings.swift Validates persisted server ports to 1024…65534 (HTTP) on load.
Textream/Textream/NotchOverlayController.swift Improves compact notch control spacing and adds a fade mask for breathing room.
Textream/Textream/MarqueeTextView.swift Adds paragraph divider dots/spacing and preview-only reading-position transition support.
Textream/Textream/DirectorServer.swift Normalizes Director text to preserve paragraph breaks and locks the read prefix during live editing.
README.md Updates Director connection/auth handshake docs + adds cueColor to state schema and client example.
docs/support.html Adds Docs link in nav/footer.
docs/privacy.html Adds Docs link; improves semantic markup for summary section.
docs/index.html Adds Docs link to homepage nav and improves responsive/accessibility styling.
docs/docs/index.html Adds new full documentation page content for /docs/.
Review details
  • Files reviewed: 11/11 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +266 to +283
if let transitionDuration = readingPositionTransitionDuration {
captureStableLineMetrics(from: wordYPositions)
readingPositionAnimationGeneration &+= 1
let generation = readingPositionAnimationGeneration
isAnimatingReadingPositionChange = transitionDuration > 0

if let animation = readingPositionTransitionAnimation {
withAnimation(animation) {
recalculateTracking(containerHeight: containerHeight)
}
DispatchQueue.main.asyncAfter(deadline: .now() + transitionDuration) {
guard generation == readingPositionAnimationGeneration else { return }
isAnimatingReadingPositionChange = false
}
} else {
recalculateTracking(containerHeight: containerHeight)
}
} else {
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