Skip to content

✨ feat: opt-in Spektacular recheck outward discovery (takeover of PR 10677) - #10752

Merged
clubanderson merged 1 commit into
v5from
feat/spektacular-discovery-takeover
Oct 6, 2026
Merged

clubanderson merged 1 commit into
v5from
feat/spektacular-discovery-takeover

Conversation

@clubanderson

Copy link
Copy Markdown
Member

Supersedes #10677 — carries @arteeh's commit with authorship preserved, rebased onto v5.

Refs #10667 (closed by #10683) and #10734.

Summary

  • Carries forward @arteeh's exact-document runs.spektacular.recheck.sources discovery path with durable drift.drift_source evidence.
  • Keeps the security envelope from ✨ feat: add opt-in Spektacular recheck discovery #10677: explicit relay proxy, exact HTTPS host allow-list, GET-only reads, no redirects, no NO_PROXY bypass, 16-source / 30s / 10s / 32 KiB bounds.
  • Rebases onto v5 after ✨ add Spek recheck outward discovery sources #10683 by layering exact document snapshots alongside the existing typed runs.spektacular.recheck.discovery release/activity/feed evidence.
  • Keeps TestRecheckDiscoveryFeedFiltersSinceAndCaps active; it is no longer skipped on current v5.

Validation

  • gofmt -l on touched Go files
  • git diff --check HEAD~1..HEAD
  • Per repository AGENTS.md, Go tests/vet/coverage are left to CI.

@kubestellar-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign danathar for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Oct 6, 2026
@kubestellar-prow kubestellar-prow Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Open PR overlap check

Base branch: v5

Conflicts are checked with every PR merged onto the current tip of v5, so a PR that only needs a rebase is not reported as conflicting with its siblings.

PR Title Relation Files
#10677 ✨ feat: add opt-in Spektacular recheck discovery same files changelog.d/added-spektacular-discovery.md
src/docs/adr/0020-spek-continuous-convergence.md
src/docs/spektacular.md
src/pkg/config/runs_config.go
src/pkg/config/spektacular_discovery.go
src/pkg/config/spektacular_discovery_test.go
src/pkg/config/validate.go
src/pkg/dashboard/api_campaigns.go
src/pkg/dashboard/campaign_discovery.go
src/pkg/dashboard/campaign_discovery_test.go
src/pkg/dashboard/campaign_recheck.go
src/pkg/knowledge/inception.go

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Supersession sweep found that this PR's claimed issue is already closed by another merged PR.

  • Claimed issue: hive#10667
  • Closing PR: #10683

A different merged PR closed the claimed issue. Leaving this contributor PR open for a human to review.

This comment is edited in place by the supersession sweep; it is not duplicated.

@clubanderson
clubanderson force-pushed the feat/spektacular-discovery-takeover branch 3 times, most recently from 692fea2 to 766fb16 Compare October 6, 2026 01:50
Capture bounded declared-document evidence through an explicit relay proxy before starting a recheck spec lease. Enforce exact-host egress validation and preserve source snapshots on the revision.

Hive-Run: #10667
Hive-Plan: #10652/outward-looking-discovery
Hive-Spec: src/docs/spektacular.md#continuous-convergence
Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: arteeh <arteeh@users.noreply.github.com>
@clubanderson
clubanderson force-pushed the feat/spektacular-discovery-takeover branch from 766fb16 to 4b61e2d Compare October 6, 2026 01:50
@clubanderson clubanderson changed the title ✨ feat: opt-in Spektacular recheck outward discovery (takeover of #10677) ✨ feat: opt-in Spektacular recheck outward discovery (takeover of PR 10677) Oct 6, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor

hive/awaiting-ci: CI pending — sweep will merge when green.


🐝 Hive Agent: scanner | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown

— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code does what the body says — I read the new files and the v5 callers, not just the diff. The egress envelope checks out: http.ProxyURL ignores NO_PROXY, exact-host allowlist, HTTPS/443 only, userinfo and fragments rejected, redirects refused, LimitReader(32 KiB+1) + UTF-8 check. And the "evidence only" claim holds on this head: drift_source[] is persisted and projected via campaignDriftFromArchive, but recheckSpecStageTitle (src/pkg/dashboard/stage_leases.go:901-907) iterates only Drift.External, so nothing fetched here reaches a spec prompt.

What I can't settle, and think a maintainer should before this lands: v5 already carries an outward-discovery schema from #10683 — runs.spektacular.recheck.discovery.sources[] with kinds upstream_release/repo_activity/standards_feed/landscape and field url_or_repo (src/pkg/config/runs_config.go:180-194), validated against variables.security.http_allowlist (src/pkg/config/validate.go:42-43). This PR adds a sibling schema: runs.spektacular.recheck.sources[] with kinds release/changelog/repo/standards/landscape and field url, plus discovery_proxy and egress_allowlist, validated by a separate ValidateDiscovery (src/pkg/config/spektacular_discovery.go:20) that never consults http_allowlist. Net effect: two source lists with overlapping kind vocabulary and two allowlists for one feature, and the proxy/no-redirect envelope applies only to the new path while the existing collector still uses http.DefaultClient (src/pkg/dashboard/recheck_discovery.go:51).

The one-sentence question: should exact-document snapshots be a fourth kind under the existing recheck.discovery.sources (reusing variables.security.http_allowlist), or is a separate recheck.sources + egress_allowlist surface intended — and if the latter, should the stricter proxy envelope also be applied to the #10683 path?

Smaller, verified: the spektacular.md rewrite deletes the "Supported source kinds" prose for the existing discovery.sources (those kinds are still implemented at recheck_discovery.go:79-84 and still appear in the YAML example), so readers can no longer learn what url_or_repo accepts per kind. Worth restoring alongside the new section.

Since this supersedes #10677, a maintainer may want to close that one once this is decided. I have not closed or changed anything.

— hive: agent=reviewer backend=copilot model=claude-fable-5.1 copilot=1.0.88

@clubanderson
clubanderson merged commit cd9b084 into v5 Oct 6, 2026
64 of 65 checks passed
@clubanderson
clubanderson deleted the feat/spektacular-discovery-takeover branch October 6, 2026 02:16
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Thank you for your contribution! Your PR has been merged.

We'd love to hear how your experience was: share feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-signoff: yes Indicates the PR's author has signed the DCO. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants