Skip to content

Release v0.1.1#1

Merged
davindicode merged 18 commits into
mainfrom
post-v0.1.0-fixes
Jun 13, 2026
Merged

Release v0.1.1#1
davindicode merged 18 commits into
mainfrom
post-v0.1.0-fixes

Conversation

@davindicode

Copy link
Copy Markdown
Owner

Release v0.1.1

Patch release: quick-tunnel robustness, file-explorer and editor UX improvements, a markdown media fix, plus repo hygiene (linting, tests, docs). See CHANGELOG.md[0.1.1] for the full list.

Features

  • File explorer: Download and Copy path actions in the dropdown (files & folders)
  • Editor: Plain view mode (native textarea) for mobile-friendly select/copy
  • Markdown preview: renders local images/video referenced by relative/on-disk paths
  • Image viewer: desktop click-and-drag to pan a zoomed image

Fixes

  • Cloudflare quick tunnel: log output, resolve on early exit, retry (no more silent 30s hang)
  • Isolate quick tunnel from system-wide cloudflared config
  • File-explorer dropdown: stays attached on scroll, clamps to pane edge, flips up near the bottom
  • Per-terminal cd picker state + correct tmux pane resolution

Changed

  • Arrow keys pinned to the end of the persistent terminal key bar; y/n moved into it

Tooling / repo hygiene

  • Biome lint + format, enforced in CI
  • Vitest added and wired into CI (29 tests on path/markdown helpers)
  • engines field, dynamic README version badge, CONTRIBUTING.md
  • Manual release flow (release-please removed)

davindicode and others added 18 commits May 16, 2026 19:19
The cd directory picker was sharing a single component-level useState across
all terminal tabs, so its path stayed frozen to whichever terminal was opened
first. Move cdCwd onto the per-session TerminalSession in the store and resync
the picker whenever the active terminal changes.

On the server, /api/terminal/cwd was calling `tmux display-message -p` with no
target, returning the globally-attached pane regardless of which terminal
asked. Locate the tmux client that's a direct child of the requesting PTY,
read its tty, and query tmux with `-c <tty>` so each terminal resolves to its
own pane. Also walk the PTY's deepest descendant for the non-tmux path so
grandchildren are handled correctly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
y/n approve/deny are useful across more than just the code action tab — tmux
kill-pane and other CLI confirms also expect them. Promote them into NAV_TAIL
(the always-visible row beneath the text input) and remove the duplicate
entries from CODE_COMMON_KEYS so users only see them in one place.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pass --config <stub> so cloudflared skips all default config search
paths (~/.cloudflared/, /etc/cloudflared/, /usr/local/etc/cloudflared/).
The previous HOME-swap workaround only covered the user-home path, so
a system-wide named-tunnel config at /etc/cloudflared/config.yml with
an ingress catch-all would silently hijack quick-tunnel traffic and
return empty 404s.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a Copy path action to the file/folder context menu (3-dot, right-click,
long-press) so the absolute path can be grabbed without opening the entry —
useful for pasting into the CLI on both mobile and desktop. Works for files
and directories, with a textarea+execCommand fallback for contexts where the
Clipboard API is unavailable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bump version to 0.1.1, update README version badge, and add a CHANGELOG
documenting the 0.1.1 fixes and the 0.1.0 baseline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add engines field (node >=20.19, pnpm >=10) to match CI/Vite 7 requirements
- Make README version badge dynamic (reads package.json on default branch)
- Add SECURITY.md with private reporting policy and tunnel-exposure note
- Add release-please workflow + config (manifest seeded at 0.1.1) to automate
  version bumps, CHANGELOG, tags, and GitHub Releases from Conventional Commits

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds @biomejs/biome with a curated config (a11y rules off for this dev tool,
intentional-but-noisy rules as warnings, useful auto-fixable rules as errors),
`lint`/`format` scripts, and a "Lint & format check" step in CI (biome ci).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mechanical changes only (node: import protocol, template strings, spacing).
No behavior changes — typecheck and build pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Monaco renders text in its own layer, so mobile browsers' native selection
handles and "Select All" don't work on it. Add:
- a one-tap "Copy" button that copies the whole file contents to the clipboard
- a "Plain" view mode backed by a read-only native <textarea>, where mobile
  native selection, drag handles, and OS Select-All work for partial copies

Also extract the clipboard logic (Clipboard API + execCommand fallback) into
app/lib/clipboard.ts and reuse it for the file explorer's Copy path action.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add CONTRIBUTING.md (setup, checks, Biome style, Conventional Commits,
  PR workflow, project layout)
- Remove SECURITY.md; security fixes are logged in the changelog's Security
  section and reports go via GitHub issues/email
- Note the editor copy/plain-view feature in the 0.1.1 changelog entry

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Relative/absolute on-disk image and video references (e.g. a README's
public/logo.png) resolved against the app route and 404'd, showing a
broken-media icon. Rewrite local img/video/audio/source src and anchor href
in the rendered markdown to the file download API (inline), resolved against
the markdown file's directory. External URLs are left untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add Vitest (jsdom) with a `test` script and a CI step. First suite covers the
pure path helpers and the markdown asset-rewriter (29 tests).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add mouse click-and-drag panning of a zoomed image (hand tool) by scrolling
the overflow container, with grab/grabbing cursors. window listeners ensure a
release outside the pane ends the drag. Matches the existing mobile
swipe/pinch controls.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The toolbar had two near-identical copy icons (path vs file contents).
Select-all + copy (in Plain view or the desktop editor) already covers copying
contents, so drop the dedicated button to keep the header clean. The path-copy
button and the Plain view (mobile-friendly selection) remain.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop the release-please workflow + config/manifest in favor of a simple manual
release process (bump package.json, update CHANGELOG, tag, create GitHub
Release). Conventional Commits and the CHANGELOG stay; CONTRIBUTING documents
the manual steps.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@davindicode davindicode merged commit 071fa70 into main Jun 13, 2026
1 check 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.

1 participant