diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2ccd332..6ded944 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -208,10 +208,19 @@ jobs: - name: Verify Bun subminer wrapper run: ./subminer --help >/dev/null + - name: Package optional assets bundle + run: | + VERSION="${GITHUB_REF#refs/tags/}" + tar -czf "release/subminer-assets-${VERSION}.tar.gz" \ + config.example.jsonc \ + plugin/subminer.lua \ + plugin/subminer.conf \ + assets/themes/subminer.rasi + - name: Generate checksums run: | shopt -s nullglob - files=(release/*.AppImage release/*.dmg release/*.zip subminer) + files=(release/*.AppImage release/*.dmg release/*.zip release/*.tar.gz subminer) if [ "${#files[@]}" -eq 0 ]; then echo "No release artifacts found for checksum generation." exit 1 @@ -263,11 +272,21 @@ jobs: ### Manual Installation See the [README](https://github.com/${{ github.repository }}#installation) for manual installation instructions. + ### Optional Assets (config example + mpv plugin + rofi theme) + 1. Download `subminer-assets-*.tar.gz` + 2. Extract and copy `config.example.jsonc` to `~/.config/SubMiner/config.jsonc` + 3. Copy `plugin/subminer.lua` to `~/.config/mpv/scripts/` + 4. Copy `plugin/subminer.conf` to `~/.config/mpv/script-opts/` + 5. Copy `assets/themes/subminer.rasi` to: + - Linux: `~/.local/share/SubMiner/themes/subminer.rasi` + - macOS: `~/Library/Application Support/SubMiner/themes/subminer.rasi` + Note: the `subminer` wrapper script uses Bun (`#!/usr/bin/env bun`), so `bun` must be installed and on `PATH`. files: | release/*.AppImage release/*.dmg release/*.zip + release/*.tar.gz release/SHA256SUMS.txt subminer draft: false diff --git a/backlog/tasks/task-88 - Bundle-config-example-in-release-assets-artifact.md b/backlog/tasks/task-88 - Bundle-config-example-in-release-assets-artifact.md new file mode 100644 index 0000000..f64f2a0 --- /dev/null +++ b/backlog/tasks/task-88 - Bundle-config-example-in-release-assets-artifact.md @@ -0,0 +1,37 @@ +--- +id: TASK-88 +title: Bundle config.example.jsonc in release assets artifact +status: Done +assignee: [] +created_date: '2026-02-20 09:27' +updated_date: '2026-02-20 09:27' +labels: [] +dependencies: [] +priority: medium +ordinal: 70000 +--- + +## Description + + +Release users should get a version-matched `config.example.jsonc` without cloning the repo. Include the file in `subminer-assets-*.tar.gz` and align install snippets/docs. + + +## Acceptance Criteria + +- [x] #1 Release workflow includes `config.example.jsonc` in `subminer-assets-*.tar.gz`. +- [x] #2 Release notes optional-assets section includes config copy step. +- [x] #3 Installation docs show config copy from extracted release assets bundle. + + +## Implementation Notes + + +Updated `.github/workflows/release.yml` optional assets packaging to include `config.example.jsonc`, and updated release body instructions accordingly. Updated `docs/installation.md` and `docs/mpv-plugin.md` release-bundle install snippets to copy `/tmp/config.example.jsonc` into `~/.config/SubMiner/config.jsonc`. + + +## Final Summary + + +`config.example.jsonc` is now bundled in the release `subminer-assets-*.tar.gz` artifact, with release/install docs aligned so users can copy it directly after extracting the bundle. + diff --git a/docs/installation.md b/docs/installation.md index 64bd365..2c386ef 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -154,12 +154,34 @@ mpv must be launched with `--input-ipc-server=/tmp/subminer-socket` for SubMiner ::: ```bash -# Copy plugin files -cp plugin/subminer.lua ~/.config/mpv/scripts/ -cp plugin/subminer.conf ~/.config/mpv/script-opts/ -# or: make install-plugin +# Option 1: install from release assets bundle +wget https://github.com/ksyasuda/SubMiner/releases/latest/download/subminer-assets-0.1.0.tar.gz -O /tmp/subminer-assets.tar.gz +tar -xzf /tmp/subminer-assets.tar.gz -C /tmp +mkdir -p ~/.config/SubMiner +cp /tmp/config.example.jsonc ~/.config/SubMiner/config.jsonc +cp /tmp/plugin/subminer.lua ~/.config/mpv/scripts/ +cp /tmp/plugin/subminer.conf ~/.config/mpv/script-opts/ + +# Option 2: from source checkout +# make install-plugin ``` +## Rofi Theme (Optional) + +SubMiner ships a default rofi theme at `assets/themes/subminer.rasi`. + +Install path (default auto-detected by `subminer`): + +- Linux: `~/.local/share/SubMiner/themes/subminer.rasi` +- macOS: `~/Library/Application Support/SubMiner/themes/subminer.rasi` + +```bash +mkdir -p ~/.local/share/SubMiner/themes +cp /tmp/assets/themes/subminer.rasi ~/.local/share/SubMiner/themes/subminer.rasi +``` + +Override with `SUBMINER_ROFI_THEME=/absolute/path/to/theme.rasi`. + All keybindings use a `y` chord prefix — press `y`, then the second key: | Chord | Action | diff --git a/docs/mpv-plugin.md b/docs/mpv-plugin.md index 5506760..ff2abbd 100644 --- a/docs/mpv-plugin.md +++ b/docs/mpv-plugin.md @@ -5,9 +5,14 @@ The SubMiner mpv plugin (`subminer.lua`) provides in-player keybindings to contr ## Installation ```bash -cp plugin/subminer.lua ~/.config/mpv/scripts/ -cp plugin/subminer.conf ~/.config/mpv/script-opts/ -# or: make install-plugin +# From release bundle: +wget https://github.com/ksyasuda/SubMiner/releases/latest/download/subminer-assets-0.1.0.tar.gz -O /tmp/subminer-assets.tar.gz +tar -xzf /tmp/subminer-assets.tar.gz -C /tmp +mkdir -p ~/.config/SubMiner +cp /tmp/config.example.jsonc ~/.config/SubMiner/config.jsonc +cp /tmp/plugin/subminer.lua ~/.config/mpv/scripts/ +cp /tmp/plugin/subminer.conf ~/.config/mpv/script-opts/ +# Or from source checkout: make install-plugin ``` mpv must have IPC enabled for SubMiner to connect: diff --git a/docs/subagents/INDEX.md b/docs/subagents/INDEX.md index 741262c..9569d6e 100644 --- a/docs/subagents/INDEX.md +++ b/docs/subagents/INDEX.md @@ -6,7 +6,7 @@ Read first. Keep concise. | ------------ | -------------- | ---------------------------------------------------- | --------- | ------------------------------------- | ---------------------- | | `codex-main` | `planner-exec` | `Fix frequency/N+1 regression in plugin --start flow` | `in_progress` | `docs/subagents/agents/codex-main.md` | `2026-02-19T19:36:46Z` | | `codex-config-validation-20260219T172015Z-iiyf` | `codex-config-validation` | `Find root cause of config validation error for ~/.config/SubMiner/config.jsonc` | `completed` | `docs/subagents/agents/codex-config-validation-20260219T172015Z-iiyf.md` | `2026-02-19T17:26:17Z` | --02-20T08:44:42Z` | +| `codex-task85-20260219T233711Z-46hc` | `codex-task85` | `Resume TASK-85 maintainability refactor from latest handoff point` | `in_progress` | `docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md` | `2026-02-20T02:56:34Z` | | `codex-anilist-deeplink-20260219T233926Z` | `anilist-deeplink` | `Fix external subminer:// AniList callback handling from browser` | `done` | `docs/subagents/agents/codex-anilist-deeplink-20260219T233926Z.md` | `2026-02-19T23:59:21Z` | | `codex-texthooker-highlights-20260220T002354Z-927c` | `codex-texthooker-highlights` | `Add optional texthooker highlight toggles for known/n+1/frequency/JLPT` | `completed` | `docs/subagents/agents/codex-texthooker-highlights-20260220T002354Z-927c.md` | `2026-02-20T00:30:49Z` | | `codex-texthooker-ui-playwright-20260220T003827Z-k3p9` | `codex-texthooker-ui-playwright` | `Run Playwright MCP smoke/regression checks for texthooker-ui changes` | `completed` | `docs/subagents/agents/codex-texthooker-ui-playwright-20260220T003827Z-k3p9.md` | `2026-02-20T00:42:09Z` | @@ -15,3 +15,5 @@ Read first. Keep concise. | `codex-subtitle-bg-20260220T054247Z-h9cu` | `codex-subtitle-bg` | `Update default subtitle background color to requested RGBA value` | `completed` | `docs/subagents/agents/codex-subtitle-bg-20260220T054247Z-h9cu.md` | `2026-02-20T05:44:45Z` | | `codex-narrow-space-tokenizer-20260220T061716Z-p97s` | `codex-narrow-space-tokenizer` | `Fix tokenization when subtitle line contains narrow/invisible Unicode spacing between segments` | `completed` | `docs/subagents/agents/codex-narrow-space-tokenizer-20260220T061716Z-p97s.md` | `2026-02-20T06:20:07Z` | | `codex-preserve-linebreaks-20260220T063538Z-s4nd` | `codex-preserve-linebreaks` | `Add config option to preserve subtitle line breaks in visible overlay rendering` | `completed` | `docs/subagents/agents/codex-preserve-linebreaks-20260220T063538Z-s4nd.md` | `2026-02-20T06:42:51Z` | +| `codex-release-mpv-plugin-20260220T035757Z-d4yf` | `codex-release-mpv-plugin` | `Package optional release assets bundle (mpv plugin + rofi theme), move theme to assets/themes, update install/docs` | `completed` | `docs/subagents/agents/codex-release-mpv-plugin-20260220T035757Z-d4yf.md` | `2026-02-20T04:02:26Z` | +| `codex-bundle-config-example-20260220T092408Z-a1b2` | `codex-bundle-config-example` | `Bundle config.example.jsonc in release assets tarball and align install docs` | `completed` | `docs/subagents/agents/codex-bundle-config-example-20260220T092408Z-a1b2.md` | `2026-02-20T09:26:24Z` | diff --git a/docs/subagents/agents/codex-bundle-config-example-20260220T092408Z-a1b2.md b/docs/subagents/agents/codex-bundle-config-example-20260220T092408Z-a1b2.md new file mode 100644 index 0000000..b770329 --- /dev/null +++ b/docs/subagents/agents/codex-bundle-config-example-20260220T092408Z-a1b2.md @@ -0,0 +1,28 @@ +# Agent Log: codex-bundle-config-example-20260220T092408Z-a1b2 + +- alias: codex-bundle-config-example +- mission: bundle `config.example.jsonc` in release assets tarball + docs/install updates +- status: completed +- started_utc: 2026-02-20T09:24:08Z +- planned_files: `.github/workflows/release.yml`, `README.md`, `docs/installation.md`, `docs/subagents/INDEX.md`, `docs/subagents/collaboration.md`, `docs/subagents/agents/codex-bundle-config-example-20260220T092408Z-a1b2.md` +- assumptions: + - existing workspace changes are from another active session; preserve + - release assets tarball is canonical place for optional install files +- notes: + - intent: include `config.example.jsonc` in `subminer-assets-*.tar.gz` so release users can copy a version-matched example config + - [2026-02-20T09:24:52Z] phase: edit started (workflow + docs). + - [2026-02-20T09:25:44Z] edit: add `config.example.jsonc` to release assets tarball. + - [2026-02-20T09:25:44Z] edit: update release notes optional-assets section to include config copy step. + - [2026-02-20T09:26:01Z] edit: update `docs/installation.md` + `docs/mpv-plugin.md` install snippets to copy `/tmp/config.example.jsonc`. + - [2026-02-20T09:26:28Z] validation: `rg` checks confirm config example referenced in workflow/docs at expected points. + - [2026-02-20T09:26:24Z] backlog: linked work in `backlog/tasks/task-88 - Bundle-config-example-in-release-assets-artifact.md` (`TASK-88`). + - touched_files: + - `.github/workflows/release.yml` + - `docs/installation.md` + - `docs/mpv-plugin.md` + - `backlog/tasks/task-88 - Bundle-config-example-in-release-assets-artifact.md` + - `docs/subagents/INDEX.md` + - `docs/subagents/collaboration.md` + - `docs/subagents/agents/codex-bundle-config-example-20260220T092408Z-a1b2.md` + - blockers: none + - next_step: ship with current release workflow edits; run release workflow once to validate uploaded tarball contents end-to-end. diff --git a/docs/subagents/collaboration.md b/docs/subagents/collaboration.md index ff4d0fa..6bfbe69 100644 --- a/docs/subagents/collaboration.md +++ b/docs/subagents/collaboration.md @@ -11,3 +11,4 @@ Shared notes. Append-only. - [2026-02-20T06:20:07Z] [codex-narrow-space-tokenizer-20260220T061716Z-p97s|codex-narrow-space-tokenizer] completed TASK-90 fix in `src/subtitle/stages/normalize.ts`; normalize `U+200B/U+2060/U+FEFF` to spaces for tokenizer input; added regression test `src/subtitle/stages/normalize.test.ts`; targeted tokenizer suite green. - [2026-02-20T06:35:38Z] [codex-preserve-linebreaks-20260220T063538Z-s4nd|codex-preserve-linebreaks] overlap note: touching subtitle config + renderer render path (`src/types.ts`, `src/config/*`, `src/renderer/subtitle-render.ts`, docs/config examples) to add optional preserve-line-breaks behavior while keeping default normalization unchanged. - [2026-02-20T06:42:51Z] [codex-preserve-linebreaks-20260220T063538Z-s4nd|codex-preserve-linebreaks] completed TASK-91; added `subtitleStyle.preserveLineBreaks` config (default false), renderer token/source alignment helper to preserve visible overlay line breaks when enabled, config+renderer tests green. +- [2026-02-20T09:24:08Z] [codex-bundle-config-example-20260220T092408Z-a1b2|codex-bundle-config-example] conflict note: target file .github/workflows/release.yml already modified by codex-release-mpv-plugin session; applying minimal additive delta for config example bundling only.