Skip to content

v0.3.0: outbound Apache-2.0, remove agentic gate workflows - #542

Merged
Kaden-Schutt merged 4 commits into
betafrom
worktree-apache-only-kill-gates
Jul 26, 2026
Merged

Kaden-Schutt merged 4 commits into
betafrom
worktree-apache-only-kill-gates

Conversation

@Kaden-Schutt

@Kaden-Schutt Kaden-Schutt commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Three changes against beta, all prerequisites for the v0.3.0 promotion.

1. Apache-2.0 becomes the outbound license

v0.3.0 is the first Apache-only release. The license offered for the work as a whole moves from "MIT OR Apache-2.0, at the recipient's option" to Apache-2.0.

This is deliberately not a repeat of 79167568, the unilateral whole-codebase relicense that the 2026-05-19 course correction reverted. No contributor's work is relicensed in absentia:

  • No per-file SPDX-License-Identifier is rewritten. The tree keeps its authorship-derived tags: 1073 Apache-2.0, 69 MIT OR Apache-2.0, 48 MIT.
  • LICENSE-MIT is retained and remains the operative grant for every MIT-tagged file.
  • Dual-license opt-in for existing contributors (MIT → MIT OR Apache-2.0) #305 stays the only mechanism for changing those tags.
  • v0.2.1 and earlier remain dual-licensed; that grant is irrevocable.

Legal basis is unchanged from the existing decision record: MIT's conditions are a strict subset of Apache-2.0 § 4, and the ASF lists MIT/X11 as Category A, freely combinable into an Apache-2.0 work. Offering the aggregate under Apache-2.0 grants no rights contributors did not already grant. What recipients lose is the option to take the whole work under MIT — a downstream-consumer change, not a contributor-rights change.

Recorded in docs/governance/relicense-2026-05.md under "Outbound Apache-2.0 for v0.3.0".

Two pre-existing manifest bugs fixed on the way:

was now
workspace Cargo.toml license = "MIT" — under-declared even the dual posture Apache-2.0
redline-dispatch, redline-rocr "MIT OR Apache-2.0" despite every source file carrying SPDX Apache-2.0, and both being 100% Kaden-authored license.workspace = true

All 29 workspace crates now report Apache-2.0 via cargo metadata.

2. Remove the four agentic gate workflows

Workflow What it was
claude-review.yml Claude PR review via claude-code-action
gpu-gates.yml Tier-3 GPU gate, claude-code-action + self-hosted GPU runners
gate-merge.yml /merge agent auto-merge, gated on a green gpu-gate
gate-sweep.yml Backlog sweep via autoresearch.ar gate --sweep + codex + GPU box

None reached the release line: every beta CI run since 2026-07-17 ended in startup_failure, and both PR-triggered gates are draft-guarded (if: !draft) while #534 is a draft. gate-merge is orphaned once gpu-gates is gone — it required a green gpu-gate check that can no longer be produced.

GPU validation is unchanged: still manual per docs/VALIDATION.md and scripts/gates.sh. Remaining workflows: ci.yml, no-gpu-ci.yml, registry.yml.

3. Allow two permissive dependency licenses

Surfaced only once the workflow could start — the Actions allowlist was missing EmbarkStudios/cargo-deny-action@*, so the file was rejected before any job ran:

Crate License Path
subtle 2.6.1 BSD-3-Clause rustls 0.23
webpki-roots 1.0.7 CDLA-Permissive-2.0 ureq 3.3 → hipfire-cli

Both Apache-2.0-compatible, notice-retention only. cargo-deny (bans licenses sources) is blocking (only advisories is continue-on-error), so this was red-on-arrival for #534.

Follow-up

A pure Apache-2.0 tree needs #305 strengthened — it currently asks for MIT to MIT OR Apache-2.0, which is not sufficient. Affected copyright holders across the 119 MIT/dual files: @fivetide, alpineq, Robin Van Cauter, nickfinease, mad-lab-kbando, Grégory D, Daniil Markevich.

Test plan

  • cargo metadata --locked clean, lockfile unchanged
  • cargo check --workspace --locked clean
  • All remaining workflow YAML parses; no live references to removed workflows
  • CITATION.cff parses; license: Apache-2.0, version: 0.3.0
  • No live "dual-licensed / at your option" claims remain; historical narrative retained
  • cargo-deny (bans licenses sources) green

Delete the four agentic CI gate workflows:

  claude-review.yml   Claude PR review (claude-code-action)
  gpu-gates.yml       Tier-3 GPU gate (claude-code-action + self-hosted)
  gate-merge.yml      /merge agent auto-merge, gated on gpu-gate green
  gate-sweep.yml      backlog sweep via autoresearch.ar + codex + GPU box

These never executed on the release line: every beta CI run since
2026-07-17 died at startup_failure, and both PR-triggered gates are
draft-guarded while #534 is a draft. gate-merge is orphaned once
gpu-gates is gone (it required a green gpu-gate check that can no
longer be produced). The replacement is a cheaper, provider-agnostic
reviewer rather than a repair of this stack.

GPU validation is unchanged and remains manual from a checkout, per
docs/VALIDATION.md and scripts/gates.sh.

Also allow two permissive licenses that cargo-deny rejects on the
current dependency graph, both first observed once CI could actually
start:

  BSD-3-Clause         subtle 2.6.1     <- rustls 0.23
  CDLA-Permissive-2.0  webpki-roots 1.0.7 <- ureq 3.3 <- hipfire-cli

Both are Apache-2.0-compatible and notice-retention only. The second
arrived with the Rust control-plane rewrite; the blocking
`cargo-deny (bans licenses sources)` job had no way to report it while
the workflow was failing at startup.

Claude-Session: https://claude.ai/code/session_01H5JjVKznrxNzyJNq7rTNRp
v0.3.0 is the first Apache-only release. The license offered for the
work as a whole moves from "MIT OR Apache-2.0, at the recipient's
option" to Apache-2.0.

This is deliberately NOT a repeat of 79167568, the unilateral
whole-codebase relicense that the 2026-05-19 course correction
reverted. No contributor's work is relicensed in absentia:

  * No per-file SPDX-License-Identifier is rewritten. The tree keeps
    its authorship-derived tags: 1073 Apache-2.0, 69 MIT OR
    Apache-2.0, 48 MIT.
  * LICENSE-MIT is retained and remains the operative grant for every
    MIT-tagged file.
  * Issue #305 stays the only mechanism for changing those tags.
  * v0.2.1 and earlier remain dual-licensed; that grant is
    irrevocable.

The legal basis is unchanged from the original decision record: MIT's
conditions are a strict subset of Apache-2.0 § 4, and the ASF lists
MIT/X11 as Category A, freely combinable into an Apache-2.0 work.
Offering the aggregate under Apache-2.0 grants no rights contributors
did not already grant. What recipients lose is the option to take the
whole work under MIT — a downstream-consumer change, not a
contributor-rights change.

Also corrects two pre-existing manifest bugs found on the way:

  * workspace Cargo.toml declared license = "MIT", under-declaring
    even the then-current dual posture.
  * redline-dispatch and redline-rocr pinned "MIT OR Apache-2.0"
    while every source file in both carries SPDX Apache-2.0 and both
    crates are 100% Kaden-authored. Now inherit from the workspace.

All 29 workspace crates now report Apache-2.0 via cargo metadata.

Claude-Session: https://claude.ai/code/session_01H5JjVKznrxNzyJNq7rTNRp
@Kaden-Schutt Kaden-Schutt changed the title ci: remove agentic gate workflows; allow two permissive dep licenses v0.3.0: outbound Apache-2.0, remove agentic gate workflows Jul 26, 2026
The repo moved Kaden-Schutt/hipfire -> warpfront/hipfire. GitHub still
redirects, so nothing is broken today — but that redirect only holds
while no repo named `hipfire` is recreated under the old user
namespace, and shipping `curl | bash` installers aimed at a namespace
the project no longer canonically owns is not a posture to release on.

Load-bearing sites corrected (these make real network calls):

  crates/hipfire-registry/src/lib.rs   registry v1.json fetch URL
  scripts/install.sh, install.ps1      GITHUB_REPO / release assets
  scripts/force-update.ps1             self-update fetch
  scripts/uninstall.sh                 documented curl usage
  nix/module.nix                       github.owner fetch default

Plus user-facing docs, skills, and CHANGELOG/README/CITATION links.

Two deliberate non-changes:

  * scripts/uninstall.sh `source_is_managed()` now matches BOTH
    namespaces. Installs predating the transfer still carry the old
    origin, and a blind rewrite would make `uninstall` silently
    refuse to clean up every one of them. Covered by a new regression
    test in scripts/test_uninstall.py that fails (2 subtests) when the
    legacy entries are removed.

  * `Kaden-Schutt` as a GitHub *username* is left alone: the
    autoresearch maintainer/auto-merge lists, the governance decision
    record, and scripts/refresh-credits.sh `OWNER_LOGIN`, which uses it
    as `select(.author.login != $owner)` to exclude Kaden's own PRs
    from the contributors block. Rewriting that one would list the
    maintainer as a third-party contributor.

Historical devlogs, plans, and perf checkpoints keep their original
references.

Claude-Session: https://claude.ai/code/session_01H5JjVKznrxNzyJNq7rTNRp
CI checks rustfmt on CHANGED files only, so touching these three pulled
their pre-existing format debt into the gate. Formatted with
scripts/fmt-changed.sh (BASE_REF=origin/beta), not bare `cargo fmt`.

No semantic change; cargo check clean.

Claude-Session: https://claude.ai/code/session_01H5JjVKznrxNzyJNq7rTNRp
@Kaden-Schutt
Kaden-Schutt marked this pull request as ready for review July 26, 2026 08:52
@Kaden-Schutt
Kaden-Schutt merged commit e701ebc into beta Jul 26, 2026
5 of 6 checks passed
fivetide pushed a commit to fivetide/hipfire that referenced this pull request Aug 29, 2026
…#542)

Apache-2.0 becomes the license offered for the work as a whole. No
contributor file is relicensed in absentia: every per-file SPDX tag is
unchanged (1073 Apache-2.0 / 69 dual / 48 MIT), LICENSE-MIT is retained
as the operative grant for MIT-tagged files, and warpfront#305 remains the only
mechanism for changing them. v0.2.1 and earlier stay dual-licensed.
Recorded in docs/governance/relicense-2026-05.md.

Fixes two manifest bugs: the workspace declared license = "MIT"
(under-declaring even the dual posture), and redline-dispatch /
redline-rocr pinned "MIT OR Apache-2.0" despite every source file in
both carrying SPDX Apache-2.0. All 29 crates now report Apache-2.0.

Removes the four agentic gate workflows (claude-review, gpu-gates,
gate-merge, gate-sweep). None reached the release line: every beta CI
run since 2026-07-17 died at startup_failure, and both PR-triggered
gates are draft-guarded. GPU validation is unchanged and remains manual
per docs/VALIDATION.md.

Allows BSD-3-Clause (subtle <- rustls) and CDLA-Permissive-2.0
(webpki-roots <- ureq <- hipfire-cli), which cargo-deny rejected once
CI could actually start. Both Apache-2.0-compatible, notice-retention
only. This unblocks the blocking supply-chain job on warpfront#534.

Points canonical URLs at warpfront/hipfire after the org transfer,
including the registry fetch URL and all installers. uninstall.sh
deliberately still recognizes the old Kaden-Schutt origin so
pre-transfer installs remain cleanable; covered by a new regression
test.
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