Skip to content

Sync Boatstack from Intelligence Flow Labs @ c5f3e330d616 - #88

Merged
operator-stack-publisher[bot] merged 1 commit into
mainfrom
sync/intelligence-flow-c5f3e330d616
Jul 24, 2026
Merged

Sync Boatstack from Intelligence Flow Labs @ c5f3e330d616#88
operator-stack-publisher[bot] merged 1 commit into
mainfrom
sync/intelligence-flow-c5f3e330d616

Conversation

@operator-stack-publisher

Copy link
Copy Markdown
Contributor

What this sync releases

Boatstack can attach visual evidence to a pull request on its own

Until now, captured screenshots reached a pull request only through a signed-in host
browser or a manual drag-drop — Boatstack recorded the evidence locally but left the
last step to a human. GitHub exposes no public API that mints its user-attachments
CDN URLs, so there was a real browserless gap.

publish-pr now closes it for public repositories. When it opens or updates a PR,
Boatstack commits the exact captured PNG bytes to a dedicated, Boatstack-owned
evidence branch on origin (built with Git plumbing against a temporary index, so it
never disturbs the working tree), then posts or updates one Boatstack-owned comment
that renders each scenario from an immutable raw.githubusercontent.com URL pinned to
the evidence commit. The comment carries the same trust fingerprints as the manifest
— source commit, product diff, and manifest fingerprint — and repeats the standing
warning that public-branch screenshots are publicly accessible.

The publisher is idempotent: a recorded comment is reused, and a lost comment URL is
recovered by a hidden marker so an update never orphans a duplicate. It engages only
when it can actually render — a GitHub origin, gh authenticated, and a public
repository. For a private or non-GitHub repository the existing manual-attachment
fallback stays in force, so a suggest-policy PR is never blocked by a limitation
Boatstack cannot overcome. On any publication failure the flow fixes forward: the PR
is preserved and the manifest records the pending state instead of losing evidence.

Boatstack can render visual evidence inline on a private pull request

The programmatic visual-evidence publisher could render screenshots inline only for a
public repository, because it committed the bytes to a public branch and served them
from raw.githubusercontent.com — a URL GitHub's image proxy cannot fetch for private
content. On a private repository the publisher declined and left the manual-attachment
fallback in force, so a private PR never got inline screenshots automatically.

A new opt-in mode closes that gap. Set workflow.visual_evidence_publish.mode to
external-host and Boatstack uploads the exact captured PNG bytes to an anonymous host
(litterbox, which auto-expires uploads after a chosen 1h/12h/24h/72h window,
or permanent catbox) and posts the returned URLs inline in the same single,
idempotent Boatstack-owned comment — on a private repository too.

Because the bytes leave the repository to a third party, the mode is never selected
automatically: only that explicit config value turns it on, and the comment carries a
standing reminder naming the host and its expiry so reviewers know the images are
external and temporary. The default behavior is unchanged — a public repository still
gets durable inline evidence from a Boatstack-owned public branch, and any repository
without the opt-in keeps the manual-attachment fallback.

Projection provenance

Generated from operatorstack/intelligence-flow@c5f3e330d6167247446e1915deaf1bc593cf2e0d.
Review provenance, tests, and examples before merging.

@operator-stack-publisher
operator-stack-publisher Bot merged commit b29297e into main Jul 24, 2026
4 checks passed
@operator-stack-publisher
operator-stack-publisher Bot deleted the sync/intelligence-flow-c5f3e330d616 branch July 24, 2026 01:19
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.

0 participants