Repository navigation
🌱 sync: forward-merge v5 into v6 (top-up) - #12835
Conversation
* ✨ feat(dashboard): add evidence maintainability trend panel Render monthly complexity and tool warnings with first-observed ACMM policy markers. Keep reporting independent of merge eligibility. Hive-Run: #12369 Hive-Plan: RFC-12062 panel 7 maintainability trend Hive-Spec: RFC-12062#B.7 Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> Signed-off-by: mendezr <mendezr@users.noreply.github.com> * 🐛 Include claim-vs-verdict helper in maintainability UI harness Signed-off-by: mendezr <mendezr@users.noreply.github.com> * 🐛 fix: explain maintainability and isolate its renderer harness Signed-off-by: mendezr <mendezr@users.noreply.github.com> * 🐛 fix(dashboard): honor custom from/to window in maintainability panel evMaintainabilityRows derived its month bounds from dto.hours alone, so a past custom range rendered the most recent months instead. Use dto.from / dto.to (exclusive) when the server returns them and cover it in the node harness. Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> * 📝 evidence: size maintainability panel from EV_SVG_W, document panel 7 and acmm_changes - evMaintainabilitySvg draws at EV_SVG_W (320) like every other .ev-svg so one viewBox unit stays one CSS px; the node fixture stubs 320 to match. - evidenceACMMChanges bounds levels by acmmadvisor.MaxLevel instead of a literal 6. - review-evidence.md: add the Maintainability trend (panel 7) bullet, list acmm_changes in the summary fields, and state that the panel is deliberately ungraded. - api-reference.md: /api/evidence/summary row documents acmm_changes and its all-bundles (no latest-per-PR, author_kind or window) semantics. Hive-Fix-Attempt: 2/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> * 🐛 fix(dashboard): give report-only explainers a Not graded badge The maintainability explainer returned grade `none`, which evGradeLine rendered as "Rated: Not enough data — report-only; not graded", contradicting review-evidence.md ("shows no grade") and implying more data would yield a grade. Add an `ungraded` grade key rendered as a plain "Not graded" badge (no "Rated:" prefix), drop the grade-referencing limits sentence from the panel's "What ours shows", and correct both doc sentences plus the Evidence FAQ panel enumeration to match. Document ACMMChanges' all-bundles and omitempty semantics on the struct field like its siblings. Fixes review findings on #12415. Hive-Fix-Attempt: 3/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> * test(dashboard): track the v5 evidence helper renames in the maintainability harness #12610 replaced evWriteCountersSvg with evWriteActivitySvg and added the CI gate / convergence helpers that renderEvidenceSummary now calls; the node harness must extract those (and the two grading constants) to run. Signed-off-by: scanner <scanner@hive.kubestellar.io> * refactor(evidence): declare maintainability lane presentation on metrics Signed-off-by: mendezr <mendezr@users.noreply.github.com> --------- Signed-off-by: mendezr <mendezr@users.noreply.github.com> Signed-off-by: Raúl Méndez <18744521+mendezr@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: mendezr <mendezr@users.noreply.github.com> Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…12674) * 🐛 fix(evidence): read historical work balance from issue series Use backfilled issue events for weeks before collector coverage, keeping collector-covered weeks authoritative and audit fallback scoped per repository. Preserve partial-window counts and observed zero weeks, and disclose backfill provenance in the dashboard. Share the issue-series storage helpers unchanged with PR #12527 so the reader can ship independently on v5. Hive-Run: #12670 Hive-Plan: historical-work-balance Hive-Spec: issue-12670#acceptance Co-authored-by: Andy Anderson <407614+clubanderson@users.noreply.github.com> Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> * 📝 docs(evidence): disclose issue series semantics in work balance docs Document issue_series_weeks and the series file path in the /api/evidence/summary row, restate when missing.issues_human_opens_unobserved clears, note that series events carry no issue number so the audited agent override cannot apply to series weeks, and flag that the series writer is pending #12527. Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> * ♻️ refactor(evidence): own issue-series layout and loader in pkg/evidence Rebase onto v5 now that #12527 landed, dropping the duplicated issue-series files and re-applying the api-reference row on top of v5's. Export IssueSeriesDirName, IssueActionOpened/Closed, IssueWeekKey, IssueWeek.Covers and LoadIssueSeries so the dashboard, the review-bundle walker skip and the backfill writer share one definition of the on-disk layout, the per-event coverage gate and the action strings. Add doc comments to the exported issue-series functions. Hive-Run: #12670 Hive-Fix-Attempt: 2/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> * test(evidence): cover shared issue-series loader and validation Exercise observed empty weeks, malformed snapshot isolation, invalid event rejection, UTC ISO-week boundaries and half-open coverage windows in pkg/evidence after the loader moved there. Hive-Run: #12670 Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> * 📖 docs(evidence): document the available issue backfill writer Refresh the operator guidance now that #12527 is merged. Explain how to backfill a whole collector boundary week. Preserve the concurrent loader-coverage repair. Hive-Run: #12670 Hive-Plan: historical-work-balance Hive-Spec: issue-12670#acceptance Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> --------- Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: Andy Anderson <407614+clubanderson@users.noreply.github.com> Co-authored-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
…ues (#12757) The recover branch of the self-report relay closed the first open issue whose body carried the requested fingerprint marker. That marker is on every hive-filed fleet issue and the fingerprints are deterministic and fleet-wide, so the request's class alone did not bound what a spoke could close. Require the hive-observation label on the matched issue; otherwise answer not_observation without commenting or closing. Fixes #12754 Signed-off-by: sec-check <sec-check@hive.kubestellar.io> Co-authored-by: sec-check <sec-check@hive.kubestellar.io> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* 🐛 Preserve needs-human label state Signed-off-by: Andy Anderson <andy@clubanderson.com> * 🐛 Remove unused containsLabelFold helper Drop the dead helper that golangci-lint flags after reparkDecisionRefusal switched to containsDecisionParkLabel, and narrow the changelog fragment to the flows the diff actually touches. Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> --------- Signed-off-by: Andy Anderson <andy@clubanderson.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tions (#12776) Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
#12774) Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: scanner <scanner@hive.kubestellar.io>
* fix(adoption): link fixer commits to app bot Signed-off-by: Andy Anderson <andy@clubanderson.com> * fix(adoption): key App noreply email by bot user id GitHub links <id>+<login>@users.noreply.github.com by the bot USER id, not the App id used for JWT auth, so the agent git identity never produced a linked commit: commitByApp stayed false, MarkHivePushedHead never fired and strict attribution never armed. Resolve the bot user id via GET /users/<slug>[bot] (cached on the client) and pass it lazily to agent launches; fix fixtures that hard-coded the App-id form. Reference governor.labels.stage.adoption.strict_attribution in the Settings UI so the hive.yaml parity test passes, and reword comments/docs that described the stage store as an independent evidence source. Hive-Fix-Attempt: 1/6 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> --------- Signed-off-by: Andy Anderson <andy@clubanderson.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Reject recovery before any GitHub mutation unless the matched observation has one unambiguous hive id evidence field matching the authenticated requesting hive. Preserve detector-defined fingerprints. Hive-Run: #12772 Hive-Plan: observation-recovery-hive-binding Hive-Spec: #12772#matched-observation-ownership Signed-off-by: mendezr <mendezr@users.noreply.github.com> Co-authored-by: mendezr <mendezr@users.noreply.github.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
…y stop (#12786) Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: scanner <scanner@hive.kubestellar.io>
Automated release commit. Compiles changelog.d/ fragments and moves the CHANGELOG.md Unreleased section into a dated v5.183.0 entry. See src/docs/releases.md. Signed-off-by: hive-release-bot <actions@github.com>
release: v5.183.0
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Signed-off-by: Andy Anderson <andy@clubanderson.com>
Automated release commit. Compiles changelog.d/ fragments and moves the CHANGELOG.md Unreleased section into a dated v5.183.1 entry. See src/docs/releases.md. Signed-off-by: hive-release-bot <actions@github.com>
release: v5.183.1
…butor-lane vouching (#12798) The trusted-author lane logged untrusted-author-role for the App's own PRs even though the contributor lane vouches for them. Record the contributor lane's app-authored hand-off reason instead; no behaviour change. Closes #12795 Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
* ✨ feat(evidence): per-axis criteria table in the hub drill-down Signed-off-by: scanner <scanner@hive.kubestellar.io> * test(evidence): match the omitted time_to_merge key, not the criterion name Signed-off-by: scanner <scanner@hive.kubestellar.io> --------- Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: scanner <scanner@hive.kubestellar.io>
…l-down (#12771) * feat(evidence): per-hive author-kind revert re-pool in the hub drill-down Trims #12771 to the by_author_kind half per maintainer decision; the per-axis criteria table landed in #12758. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * docs(api-reference): drop stale 'not emitted yet' clause for by_author_kind Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
Automated release commit. Compiles changelog.d/ fragments and moves the CHANGELOG.md Unreleased section into a dated v5.184.0 entry. See src/docs/releases.md. Signed-off-by: hive-release-bot <actions@github.com>
release: v5.184.0
* ✨ feat(hivectl): persist repository selection and canonical Hive identity Add optional consent and preset review state to profiles, origin-based onboarding helpers, and aligned shell-safe repository scopes with persisted commit generations. Preserve legacy same-origin contributor identities and keep local selection out of profile exports. Hive-Run: #12804 Hive-Plan: repository selection state and canonical identity (#12804) Hive-Spec: contributor-repository-selection-RFC-12570#sections-2-and-6 Signed-off-by: mendezr <mendezr@users.noreply.github.com> * ✨ feat(hivectl): edit contributor repository selections Add CLI selection edits, public membership snapshots, and a Hives overlay exclusion toggle using shared profile operations and the existing commit/signal path. Preserve personal exclusions, distinguish explicit empty consent from legacy scope, and reload after Hive addition/removal. Hive-Run: #12807 Hive-Plan: RFC-12570 section 5 — edit a running contribution selection Hive-Spec: contributor-repository-selection-RFC-12570#section-5 Signed-off-by: mendezr <mendezr@users.noreply.github.com> * 🐛 fix(tui): align overlay containment test with repository binding Signed-off-by: mendezr <mendezr@users.noreply.github.com> --------- Signed-off-by: mendezr <mendezr@users.noreply.github.com> Co-authored-by: mendezr <mendezr@users.noreply.github.com>
…s a hive defect (#12814) * 🐛 fix(fleetreport): require recurrence before reporting agent stall as a hive defect Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * fix(fleetreport): restore SetFleetReportStatePathForTest godoc placement Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
… acknowledged contributor scope (#12810) * feat(contribute): advertise eligible repos and filter candidates by acknowledged contributor scope Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * fix(contribute): document GET /api/contribute/repositories in openapi.json Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> * feat(contribute): stamp forge/host on task_assign so relay scope checks are deterministic Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> --------- Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* 📖 docs: document supported stage adoption settings Document in-place adoption and both 15-minute waits using the v5 configuration defaults. Clarify the superseding PR fallback. Hive-Run: #12777 Hive-Plan: adoption-example-currency Hive-Spec: issue-12777#supported-adoption-settings Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> * 📖 docs: refresh actionable issue ranking citation Point the scale envelope citation at the current RankActionableIssues declaration and complete sorting body, including AgeMinutes. Hive-Run: #12777 Hive-Plan: adoption-example-currency Hive-Spec: issue-12777#supported-adoption-settings Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> * 📖 docs: document strict_attribution adoption setting Document the setting requested by the review swarm on #12780. Hive-Run: #12777 Hive-Plan: adoption-example-currency Hive-Spec: issue-12777#supported-adoption-settings Co-authored-by: guide <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> --------- Signed-off-by: Karibhou <157208370+Karibhou@users.noreply.github.com> Co-authored-by: guide <280983584+hivecommons-hive[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Per the maintainer decision on #12816 (option B): numbers below 0100 are allocated on v5 first; v6-only ADRs live at 0100+ so forward-merges no longer collide. Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
… changelog fragment Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Forward-merges the v5 commits that landed after #12835's merge base (#12830, #12829, #12834, #12832, #12837, #12840, #12780). Conflicts: config.go keeps v6's split layout and v5's new ReviewConfig.SelfAuthoredDecisionPolicy moves to review_config.go; review-swarm.md keeps both paragraphs; running-at-level-6.md keeps v5's new "Adopted PR with unsigned commits" row and v6's richer "Issue parked" row (/hive done); api-reference.md keeps v6's rows (v5's change was citation-only) and check-api-reference-citations.sh --fix re-pointed 208 drifted citations. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
330f0ec
ℹ️ Sentinel notice — informational; author is trusted (hive agent), merge is not blockedHive flagged this PR (author @hivecommons-hive[bot], head
Hive did not add the |
…ner policy v5's #12832 grew src/policies/scanner-automerge.md to 33554 bytes on v6 (v6 already sat at 32764), so TestShippedTemplatesFitUnderCap no longer had 2x headroom under the 64 KiB cap. Raise DefaultMaxPromptBytes to 96 KiB, keep the reject-whole semantics, and update the three docs that quote the default. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
…ionEnabled StrictAttributionEnabled arrived from v5 (#12770) uncovered in pkg/config, which sits at the 90% floor on v6. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
|
Reviewed the forward-merge (merge-tree of the two parents vs Pushed four commits on top:
Local: |
73e8b50
ℹ️ Sentinel notice — informational; author is trusted (hive agent), merge is not blockedHive flagged this PR (author @hivecommons-hive[bot], head
Hive did not add the |
|
/lgtm |
|
/approve |
|
LGTM label has been added. DetailsGit tree hash: 09c0ea605930e0c45d5a1857dd99d4e43c1de485 |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: clubanderson The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
This is the v5 -> v6 top-up that the
v6 Top-upworkflow could not auto-push because the forward-merge conflicts (failing run: https://github.com/hivecommons/hive/actions/runs/39084575571). It merges all 39 commits inorigin/v6..origin/v5as one--no-ffmerge commit, so v5's history is not squashed. The previous top-up was #11983.Conflicts and how each was resolved (union of both sides; v5 wins where both changed the same thing)
src/cmd/hive/main.go: theagent.ProjectContextliteral keeps v6'sTaskMCPURL,TaskMCPLaunchTokenandExperimentEnvplus v5'sAppBotLogin/AppBotUserID. Kept v6'sexperimentAgentEnv,taskMCPURLForAgents,resolveSpokeDashboardURLandtaskMCPLaunchTokenForAgentsand v5'sappBotUserIDResolver.src/pkg/agent/manager.go:ProjectContextkeeps v6'sTaskMCPURL/TaskMCPLaunchTokenfields and v5'sAppBotLogin/AppBotUserIDfields.src/pkg/config/config.go:Configkeeps v6'sNousand v5'sSelfExperiments. v6 split the rest of this file into per-area files, so v6's layout is kept. v5's only other change there (StageAdoptionConfig.StrictAttribution+StrictAttributionEnabled(), from 🐛 fix adoption fixer commit attribution #12770) is moved tosrc/pkg/config/governor_config.go, where v6 now keepsStageAdoptionConfig.src/pkg/dashboard/contribute_ws.go: the task payload keeps v5'sForge/Hostand v6'sStandbyLane/StandbyTier.src/pkg/github/client.go:Clientkeeps v6'sissueOwnerStepscache and v5'sappBotUserMu/appBotUserIDcache.src/docs/api-reference.md: v6's rows are kept (/api/logs/*,/api/diag/*, hub, contribute and static routes). Two rows take v5's text:/api/evidence/summary, where v6's row was a stale description of code both branches have (write_activity,ci_recovery,/data/hive-metrics), and/api/hub/evidence, which v6 had not changed. Thensrc/scripts/check-api-reference-citations.sh --fixre-pointed the drifted line citations (37 rewritten, 0 unresolved).src/docs/labels-and-control-signals.md: v5's updatedreview.human_decision_labelwording with v6'sreview_config.gocitation, since v6 moved that config out ofconfig.go.src/docs/scale-envelope.md: v6'sRankActionableIssuescitation, shifted to the mergedclient.golines (4062-4072).ADR numbering
v6 had two ADR-0024s: v5's Provider credential lifecycle and v6's Spek continuous convergence (v6 had already renumbered the spek ADR from v5's 0020 because v6's 0020 is the external work-source ADR). Following the #10828/#10840 precedent, v5's numbering is kept and the v6-only spek ADR becomes ADR-0025. The file, the
src/docs/adr/README.mdindex,src/docs/spektacular.mdand thechanged-spek-recheck-in-place-v6.mdchangelog.d fragment are updated to match.Checks
— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88
ADR numbering (decision B on #12816)
The v6-only Spek ADR is moved to the reserved
0100block (src/docs/adr/0100-spek-continuous-convergence.md) andsrc/docs/adr/README.mdrecords that numbers below 0100 are allocated on v5 first, so later v5 ADRs cannot collide with it again.Closes #12816