Skip to content

release: support clickable links - #32

Draft
dwilding wants to merge 11 commits into
mainfrom
support-links
Draft

dwilding wants to merge 11 commits into
mainfrom
support-links

Conversation

@dwilding

Copy link
Copy Markdown
Owner

This is experimental work. I'm not sure whether I actually want to merge it.

dwilding and others added 9 commits October 22, 2026 13:12
Render a transparent overlay behind the task editor that mirrors the
textarea's metrics. Any http(s) URL in Today or Inbox is underlined
with a subtle themed color. Hold Cmd (macOS) or Ctrl (Windows/Linux)
and click a link to open it in a new tab.

Zero dependencies: plain DOM APIs only.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Set the textarea cursor to pointer when Cmd (macOS) or Ctrl
(Windows/Linux) is held and the pointer is over a link. Track the
pointer position so pressing or releasing the modifier key updates
the cursor without mouse movement.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Extract modifierHeld() to replace three copies of the platform
modifier check. Merge the keydown and keyup listeners into one
loop. Comment the non-obvious mechanics: the width sync, the
scroll copy, the pointer-events toggle, and the overlay technique.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The tests embed app/index.html in an iframe and drive the real app:
rendering, re-render triggers, scroll sync, hit-testing, and the hand
cursor. Serve the repository root and open tests/test_links.html in
a browser to run them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The final pass over link handling found one gap: the url regex was
case-sensitive, so a pasted HTTPS://... url never became a link. Match
schemes in any case, and cover the gap in the tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Serve the repository and run the test page in the runner's
preinstalled headless Chrome. The virtual time budget lets the
async test sequence settle before Chrome dumps the DOM, and the
step greps the dumped title for the passing result. On failure
it prints the test output block so the run log shows which
checks failed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move the headless test run into a just recipe so CI and local
runs share one entry point. Pin the actions to commit SHAs,
drop the workflow's permissions to nothing, and rename the
file to .yaml.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The uvx indirection existed only to install just on the
runner. Run the headless tests directly in the workflow
instead, and keep the app-test recipe for local use.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The app tests stay out of the commit hooks: just app-test opens a
browser and waits for Ctrl+C, so it can't gate commits. Run it on
demand, and let the CI workflow gate pushes and pull requests.

The first run of the fixers appended missing final newlines and
trimmed one trailing space, so the sha1 references are updated too.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dwilding dwilding added the server Affects server installations label Oct 22, 2026
The overlay no longer sets z-index: 1. It still paints above the
static textareas, and the action menus now paint above it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

server Affects server installations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant