Skip to content

Current implementation structure ​

Structure recorded October 17, 2026. The current go.mod pins Go 1.27.2 and MyGo v0.5.5; earlier verification records used MyGo v0.4.8. The root main.go delegates to internal/app.Run. Native application composition stays in one package, while business logic retains its existing boundaries.

text
rivu/
├── main.go
├── mygo.json
├── Makefile
├── internal/
│   ├── app/
│   ├── config/
│   ├── desktop/
│   ├── files/
│   ├── problem/
│   ├── session/
│   ├── storage/
│   ├── torrent/
│   ├── updater/
│   ├── watchfolder/
│   └── windowtask/
├── resources/
│   ├── embed.go
│   └── ...
├── locales/
├── tools/genicon/
└── docs/
    ├── guide/
    ├── development/
    ├── history/
    ├── design/
    ├── images/
    ├── public/
    ├── zh/
    └── .vitepress/

Application filenames below are relative to internal/app/; session and torrent filenames are relative to their respective packages.

AreaFiles and ownership
BootstrapRoot main.go: thin entry; app run.go, cli.go, application.go: process, single session, app lifecycle
Windowswindow_base.go: native lifetime and cancellable work; window.go: main state; window_actions.go: main actions; settings_window.go: settings draft; add_window.go: import draft
Main UIview.go, view_sidebar.go, view_toolbar.go, view_task_list.go, view_statusbar.go, view_inspector.go, view_palette.go
Dialogs and inputsadd_view.go, remove_window.go, recovery_actions.go, file_tree.go
Preferencessettings.go: rendering; settings_inputs.go: units, policy controls and automation; settings_save.go: validation/persistence; settings_updates.go: updater
Desktop compositionmenu.go, tray.go, capture.go, localization.go, presentation.go, theme.go; icons.go: SVG parsing/cache; controls.go: UI controls
Sessionmanager.go: lifecycle/serialization; model.go, types.go: data contracts; validation.go, commands.go: validated mutations; import.go, removal.go, persistence.go, recovery.go, observation.go, snapshot.go, scheduler.go, space.go
Torrent adapterengine.go, source.go, storage.go, preview.go, diagnostics.go
Automationinternal/config/schedule.go, internal/watchfolder/watcher.go, internal/app/watch_folder.go
Supporting packagesinternal/problem, config, files, storage, desktop, updater; internal/windowtask manages cancellable window jobs, separate from transfers
Resources and localizationresources/embed.go: embedded artwork and relative-path reads; locales: MyGo catalogs and generated accessors

Tests remain beside implementations, including application tests in internal/app/. resources contains shipped assets, tools/genicon generates icons, snapshots and build contain generated output. The native application has no web runtime. The VitePress documentation in docs uses a separate pnpm toolchain.

go run . and MyGo dev/build commands still use the root entry. make snapshots targets internal/app; the release workflow updates the version in internal/app/run.go.

See architecture for ownership and persistence contracts, validation report for feature behavior, and desktop acceptance before release. The October 12 proposed tree is retained as historical design, not current implementation documentation.

A native BitTorrent app for macOS, Windows, and Linux.