Releases were drafts for exactly one stated reason: nobody had run the plugin in the OBS GUI on any platform, so a human had to look before anything became visible. The first confirmed GUI load (Windows, OBS 32.2.2 on Windows 11, 2026-09-09) retired that gate.
publish-release.sh now posts "draft": False; release.yml and the README no longer describe a click-to-publish step.
The caveats didn't disappear, they moved into the generated notes, which now lead with what is confirmed (module loads and registers its source type, Windows only) and what isn't (video rendering, A/V sync, latency, mid-show publisher restart, Linux and macOS in the GUI at all).
Tradeoff, called out in the script header: assets upload after the release row is created, so a release is briefly visible with no files attached. That's the cost of not needing a human click.
The install path, third and last copy
The release-notes template told every downloader to extract into %APPDATA%\obs-studio\plugins\. On Windows that's OBS's config directory and is never scanned for plugins — it's what stopped a director's correctly-shaped install from loading, with an OBS log that mentioned the module nowhere at all.
plus the exact finished path, a warning that Explorer's Extract All… adds a wrapper folder unless cleared (same silent failure one level deeper), and how to confirm the load in the OBS log. Both failure modes are silent, which is why they belong in front of the person downloading it.
This completes the sweep: download page (streamer-tools PR #36), README (#2), release notes (here).
Verification
Rendered the heredoc with a stub tag to confirm the backslash escaping survives into correct markdown (C:\ProgramData\obs-studio\plugins\, not mangled), and release.yml parses as YAML. bash -n clean.
## Draft → published
Releases were drafts for exactly one stated reason: nobody had run the plugin in the OBS GUI on any platform, so a human had to look before anything became visible. The first confirmed GUI load (Windows, OBS 32.2.2 on Windows 11, 2026-09-09) retired that gate.
`publish-release.sh` now posts `"draft": False`; `release.yml` and the README no longer describe a click-to-publish step.
The caveats didn't disappear, they moved into the generated notes, which now lead with what is confirmed (module loads and registers its source type, Windows only) and what isn't (video rendering, A/V sync, latency, mid-show publisher restart, Linux and macOS in the GUI at all).
**Tradeoff, called out in the script header:** assets upload *after* the release row is created, so a release is briefly visible with no files attached. That's the cost of not needing a human click.
## The install path, third and last copy
The release-notes template told every downloader to extract into `%APPDATA%\obs-studio\plugins\`. On Windows that's OBS's *config* directory and is never scanned for plugins — it's what stopped a director's correctly-shaped install from loading, with an OBS log that mentioned the module nowhere at all.
The notes now carry:
| Platform | Extract into |
|---|---|
| Windows | `C:\ProgramData\obs-studio\plugins\` — **not** `%APPDATA%\obs-studio\` |
| macOS | `~/Library/Application Support/obs-studio/plugins/` |
| Linux | `~/.config/obs-studio/plugins/` |
plus the exact finished path, a warning that Explorer's **Extract All…** adds a wrapper folder unless cleared (same silent failure one level deeper), and how to confirm the load in the OBS log. Both failure modes are silent, which is why they belong in front of the person downloading it.
This completes the sweep: download page (streamer-tools PR #36), README (#2), release notes (here).
## Verification
Rendered the heredoc with a stub tag to confirm the backslash escaping survives into correct markdown (`C:\ProgramData\obs-studio\plugins\`, not mangled), and `release.yml` parses as YAML. `bash -n` clean.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01AzGnvQ6wfD7bw7PZN35ft9
Releases were created as drafts for one stated reason: nobody had run the
plugin in the OBS GUI on any platform, so a human had to look before anything
became visible. The first confirmed GUI load (Windows, OBS 32.2.2 on Windows
11, 2026-09-09) retired that gate, so `publish-release.sh` now posts
`"draft": False` and the workflow no longer needs a human click.
The caveats did not go away, they moved: the generated release notes now lead
with what is actually confirmed (module loads and registers its source type,
Windows only) and what is not (video rendering, A/V sync, latency, mid-show
publisher restart, Linux and macOS in the GUI at all), and the per-platform
table carries the rest.
Also fixes the third and last copy of the wrong Windows install path. The
release notes template told every downloader to extract into
`%APPDATA%\obs-studio\plugins\`, which on Windows is OBS's config directory
and is never scanned for plugins -- that is what stopped a director's
correctly-shaped install from loading. The notes now carry a per-platform
table (`C:\ProgramData\obs-studio\plugins\` on Windows), the exact finished
path, a warning about Explorer's "Extract All..." wrapper folder, and how to
confirm the load in the OBS log. Both failure modes are silent, which is
precisely why they belong in the notes.
Note the tradeoff now that nothing is held back: assets upload after the
release row is created, so a release is briefly visible with no files
attached. Called out in the script header.
Verified by rendering the heredoc with a stub tag: backslash escaping survives
into correct markdown, and the YAML parses.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AzGnvQ6wfD7bw7PZN35ft9
jknapp
merged commit 5a39881af8 into main2026-09-09 23:51:06 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Draft → published
Releases were drafts for exactly one stated reason: nobody had run the plugin in the OBS GUI on any platform, so a human had to look before anything became visible. The first confirmed GUI load (Windows, OBS 32.2.2 on Windows 11, 2026-09-09) retired that gate.
publish-release.shnow posts"draft": False;release.ymland the README no longer describe a click-to-publish step.The caveats didn't disappear, they moved into the generated notes, which now lead with what is confirmed (module loads and registers its source type, Windows only) and what isn't (video rendering, A/V sync, latency, mid-show publisher restart, Linux and macOS in the GUI at all).
Tradeoff, called out in the script header: assets upload after the release row is created, so a release is briefly visible with no files attached. That's the cost of not needing a human click.
The install path, third and last copy
The release-notes template told every downloader to extract into
%APPDATA%\obs-studio\plugins\. On Windows that's OBS's config directory and is never scanned for plugins — it's what stopped a director's correctly-shaped install from loading, with an OBS log that mentioned the module nowhere at all.The notes now carry:
C:\ProgramData\obs-studio\plugins\— not%APPDATA%\obs-studio\~/Library/Application Support/obs-studio/plugins/~/.config/obs-studio/plugins/plus the exact finished path, a warning that Explorer's Extract All… adds a wrapper folder unless cleared (same silent failure one level deeper), and how to confirm the load in the OBS log. Both failure modes are silent, which is why they belong in front of the person downloading it.
This completes the sweep: download page (streamer-tools PR #36), README (#2), release notes (here).
Verification
Rendered the heredoc with a stub tag to confirm the backslash escaping survives into correct markdown (
C:\ProgramData\obs-studio\plugins\, not mangled), andrelease.ymlparses as YAML.bash -nclean.🤖 Generated with Claude Code
https://claude.ai/code/session_01AzGnvQ6wfD7bw7PZN35ft9