Skip to content

docs: document unlinkImportedFiles and the real-time UI for v0.3.0 - #83

Merged
roziscoding merged 2 commits into
mainfrom
docs/v0.3.0-realtime-ui
Aug 1, 2026
Merged

docs: document unlinkImportedFiles and the real-time UI for v0.3.0#83
roziscoding merged 2 commits into
mainfrom
docs/v0.3.0-realtime-ui

Conversation

@roziscoding

@roziscoding roziscoding commented Aug 1, 2026

Copy link
Copy Markdown
Owner

What

Docs for everything user-facing between v0.2.0 and v0.3.0.

Two of the four feature PRs shipped doc changes, but only into the reference. The gap was the guide: unlinkImportedFiles — a new option that decides whether your completed folder grows forever — appeared nowhere a user reads before they have the problem.

The main thing: unlinkImportedFiles (#79, #80)

configuration.md documented the key well. Nothing else did. Following Getting started end to end, you'd never learn that importing doesn't consume the file in completedPath — jack's copy stays, and the folder grows with every grab. The switch that fixes it was reachable only from the config reference.

  • guide/how-it-works.md — the download flow stopped at "*arr imports the file" and implied that was the end. Now it has step 6 plus an After the import section: the two on-disk outcomes (hardlinked → shared bytes, redundant entries; copied → a real second copy of everything), what unlinkImportedFiles does in each case, that it's off by default, and why the unlink is narrow — confirmed imports only, that one file, never your library. Sequence diagram extended to match.
  • guide/getting-started.md — raises the choice while you're writing the downloads block, with the config snippet, rather than leaving you to find it later. Also notes the rest of the block is optional and UI-editable.
  • guide/troubleshooting.md"The completed folder keeps growing": this is expected behaviour, here's the switch, it applies with no restart, and it's not retroactive (deleting rows in the UI clears their files).
  • guide/management-ui.md — a Settings → Downloads section for feat(ui): expose the whole downloads config block in Settings #80's form: placeholders are jack's defaults, clearing a field restores the default, completedPath can't be cleared, and only unlinkImportedFiles skips the restart.

Also: the SSE switch (#78, #77)

#78 replaced the UI's polling with SSE and #77 raised the management API idle timeout to keep those streams alive; neither documented it.

  • guide/management-ui.md — a Live updates section: the three snapshot streams, snapshot-on-connect then snapshot-per-change, the 15s ping, auto-reconnect, the Live/Reconnecting badge, and the reverse-proxy requirements (buffering off, idle timeout > 15s).
  • guide/troubleshooting.md — an entry for a UI stuck on Reconnecting….

The generated API reference already picks the /*/stream endpoints up from the OpenAPI spec at build time, so no manual work there.

Verification

bun run build in website/ passes — VitePress resolves every internal link and anchor, including the new cross-links between the four pages. Behavioural claims (unlink guards, delete-removes-file, restart semantics, stream paths and mount prefixes) were checked against artifact-cleanup.ts, downloads.service.ts, sse.ts, and the routers rather than the commit messages. Rendered appearance not checked — no browser on this box.

The SSE switch in #78 replaced the UI's polling and refresh controls, and the
docs never caught up: nothing described how pages stay current, and nothing
warned that a buffering reverse proxy breaks it.

- Management UI gains a "Live updates" section: the three snapshot streams, the
  15s ping, automatic reconnect, and the Live/Reconnecting badge.
- Troubleshooting gains an entry for a UI stuck on "Reconnecting…" — proxy
  buffering, short idle timeouts, unreachable management API.
- Home page and page descriptions mention live updates.
@greptile-apps

greptile-apps Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR expands the user documentation for download cleanup and real-time management UI updates.

  • Documents unlinkImportedFiles, post-import file handling, and management UI download settings.
  • Explains the management UI’s SSE streams, connection indicators, reverse-proxy requirements, and troubleshooting steps.
  • Updates the landing page and guide metadata to reflect live transfer and connector state.

Confidence Score: 5/5

The documentation-only PR appears safe to merge.

No blocking failure remains.

Reviews (2): Last reviewed commit: "docs: cover unlinkImportedFiles in the g..." | Re-trigger Greptile

v0.3.0 added downloads.unlinkImportedFiles and put the whole downloads block in
the UI, but the guide never said jack's copy of a download outlives the import.
A user following Getting started ends up with a completed folder that grows
forever and no idea there's a switch for it — the option existed only in the
config reference, which you read after you already have the problem.

- How it works: the download flow now ends where it actually ends, with an
  "After the import" section on the two on-disk outcomes (hardlink vs copy),
  what the switch does, and why it's narrow.
- Getting started: surfaces the choice while you're writing the downloads block.
- Troubleshooting: "The completed folder keeps growing".
- Management UI: a Settings -> Downloads section — defaults as placeholders,
  clearing a field restores the default, restart semantics.
@roziscoding roziscoding changed the title docs: document the real-time management UI streams docs: document unlinkImportedFiles and the real-time UI for v0.3.0 Aug 1, 2026
@roziscoding
roziscoding merged commit 49ba944 into main Aug 1, 2026
10 checks passed
@roziscoding
roziscoding deleted the docs/v0.3.0-realtime-ui branch August 1, 2026 00:50
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