Skip to content

🐝 Hive Advisory Report #2364

Open

Description

@hivecommons-hive

This issue collects advisory findings from Hive agents.

At lower ACMM levels, some agents work in advisory mode β€” they analyze code and post findings here but do not create issues or PRs. At higher levels, designated agents (e.g. quality) can open issues and PRs directly, while other agents remain advisory-only.

The governor posts periodic digest comments summarizing what advisory agents found.

Do not close this issue. It is a living document.

Affected hives (2):

Activity

  1. added
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Jul 31, 2026
  2. hivecommons-hive commented on Jul 31, 2026

    @hivecommons-hive
    ContributorAuthor

    🐝 Advisory Digest β€” 2026-10-27 01:20 EDT

    Automated code review findings from Hive agents. Each finding includes a file reference and suggested fix. This comment is updated periodically.

    Advice

    Frozen for governor mode IDLE until 2026-11-03 (next review in 7 day(s)). The list of recommendations is frozen; their numbers, items and links are recomputed on every digest.

    Counts quoted: governor actionable queue 7 PRs / 3 issues (what mode and cadence key on; excludes held, draft, in-review and human-gated items) β€” Overview chart 7 open PRs / 14 open issues (every open or held item across repo cards; the queue-health advice counts these).

    • Enable a disabled agent β€” The hive has spare capacity; enabling one disabled lane can increase useful throughput. (signals: mode=IDLE, disabled_agents=1)
    • Clear the human gate on PRs β€” 2 of 7 open PRs (28%) wait on a human: 0 held, 1 labelled needs-human, 2 needs-decision β€” release, review, or close them. (signals: overview_open_prs=7, needs_human=2, held=0, needs_human_label=1, needs_decision=2)
    • Close what agents already finished β€” 1 issues are agent-marked done; confirming them shrinks the backlog by 7%. (signals: overview_open_issues=14, agent_done=1)

    Bands named above (same rules as the Overview chart):

    • Needs human (PRs): held, or labelled needs-human, stage/085-needs-decision, needs-decision, 2-discussing, blocked, stage/045-needs-decision, epic, needs-triage β€” a human must review, decide, or release the hold before automation continues
    • Confirm & close (issues): an agent applied hive/already-done, 🐝 covered by PR, hive/covered-by-pr, hive/likely-done β€” verify the work landed and close the issue

    Findings: 10

    πŸ’‘ Showing top 10 findings (by severity). 7103 more exist. Set governor.advisory.show_all: true to see all.

    Severity Count
    πŸ”΄ critical 10

    πŸ”΄ CRITICAL (10)

    β˜‘οΈ Recently Closed β€” Fix Not Verified (10)

    Closed on an agent's word or a hive heuristic (a merged PR's title matching the finding, or the issues/PRs it cites closing). The hive did not re-check the condition, so it may still hold.

    • sec-check scan 2026-10-26j: hivecommons/docs@59856bc delta 52812d5..59856bc (6 commits) clean β€” Crux section (versions/shared.json/netlify 302s/sync README), rewriteDocLinks.ts (always emits root-absolute /docs/, skips scheme/abs/protocol-relative, '..' cannot escape), codeql upload-sarif pin 9b32540 verified = v4.39.1, all workflows SHA-pinned, npm audit 0/0, no HTML in crux/readme.md sec-check β€” closed Oct 27 (no evidence recorded), fix not verified
    • sec-check scan 2026-10-26h: hivecommons.github.io@d17c851 delta 8610ac7..HEAD (9 commits: Crux card/JSON-LD/llms.txt, carousel focus/hover fixes, stories copy-button recover block, PR template, test-coverage gates) clean β€” CSP hashes rotated and gated (page-csp/update-csp-hashes tests), stories JS textContent-only + opener=null kept, 3 workflows SHA-pinned/perms/persist-credentials:false, 768/768 tests pass; dependabot API 403 at contributor tier (no manifests anyway); no findings sec-check β€” closed Oct 27 (no evidence recorded), fix not verified
    • pluk npm 0.10.0 is 91 commits / 50 changelog.d fragments behind main; README documents omp + --dangerous mappings npm lacks; first OIDC publish needs owner npm config β€” pluk#377 gh-pluk-377 outreach β€” closed Oct 27 (the issues/PRs it cites closed), fix not verified
    • hivecommons/hive crux: inference translator :18444 trusts caller-set x-api-key as agent identity (route borrowing between agents) β€” fix PR πŸ› fix(crux): attribute inference translator callers by socket UID, not x-api-keyΒ #14441; crux scaffolding/workflows/deps clean #14439 sec-check β€” closed Oct 27 (the issues/PRs it cites closed), fix not verified
    • sec-check scan 2026-10-26i: hive@663f43a06 delta 9c2934a..663f43a (45 commits, 215 files) clean β€” crux callback server fail-closed (0600 unix sock/0700 dir, loopback+token TCP, ConstantTimeCompare), credential writers 0600/in-place; translator x-api-key spoof (prior d2cd2abf) FIXED via socket-UID attribution πŸ› fix(crux): attribute inference translator callers by socket UID, not x-api-keyΒ #14441; hub/dashboard robots+X-Robots-Tag; chat /prs+grounded read-only, client escapes; Bob 2.x key alias never echoed; workflows only SHA-pinned docker/login-action 4.6β†’4.7 + matrix reslicing; sidecar token via env not argv; no dep changes; govulncheck 0. Note: public /api/health now embeds crux_runtime (pid, binary path, last_error) β€” consistent with existing /api/health/deep err.Error() disclosure, not filed sec-check β€” closed Oct 27 (the issues/PRs it cites closed), fix not verified
    • crux: README cosign verify-blob command fails on cosign>=2; wildcard workaround accepts any signer β€” pin identity+issuer (crux#11, PR opened) #11 sec-check β€” closed Oct 26 (the issues/PRs it cites closed), fix not verified
    • sec-check scan 2026-10-26g: hivecommons/crux@48aabb9 first standalone scan β€” govulncheck clean, workflows SHA-pinned/persist-credentials:false/least-priv, cosign signing OK; 1 finding (crux#11 docs verify pins) hivecommons/crux@48aabb9 sec-check β€” closed Oct 26 (the issues/PRs it cites closed), fix not verified
    • crux repo homepage field empty; docs.hivecommons.dev Crux section exists (docs#489) β€” needs admin gh repo edit --homepage gh-crux-homepage outreach β€” closed Oct 26 (the issues/PRs it cites closed), fix not verified
    • docs.hivecommons.dev has no Crux section; sync-sibling-docs lacks crux β€” docs#489 (wire like dibs) gh-docs-489 outreach β€” closed Oct 26 (the issues/PRs it cites closed), fix not verified
    • hivecommons.dev + llms.txt omitted Crux (v0.1.0 released 10-25); card/JSON-LD/llms.txt added in PR hivecommons.github.io#279 gh-hivecommons.github.io-278 outreach β€” closed Oct 26 (the issues/PRs it cites closed), fix not verified
    • …plus 20 more closed without a verified fix in the last 48h, collapsed so the open findings above stay readable

    Analyzed at hivecommons/hive@7016ede87494 (branch v5) β€” the latest commit when this digest was generated. File references that no longer exist at this commit are flagged as outdated. Findings marked ⚠️ were computed at an older commit and have NOT been re-verified here.

  3. clubanderson commented on Aug 8, 2026

    @clubanderson
    Member

    πŸ” Scanner Advisory β€” 2026-08-08

    Stale Bead Reaped

    New Beads Created (11 new findings, linked to existing issues)

    πŸ”΄ Critical / Security (p0)

    Issue Finding Evidence
    #2877 Webhook kick endpoint HMAC validation optional β€” unauthenticated requests can trigger agent kicks POST /api/kick/{agent} behind auth middleware, but no HMAC signature check on webhook payloads per sec-check filing
    #2878 Dockerfile: su-exec.c fetched from mutable master branch, no checksum curl -sL https://raw.githubusercontent.com/ncopa/su-exec/master/su-exec.c then chmod u+s β€” SUID binary
    #2879 Dockerfile.hub: kubectl downloaded dynamically with no checksum curl -sLo kubectl "https://dl.k8s.io/release/$(curl stable.txt)/...kubectl" β€” version and binary both fetched at build time

    🟠 High (p1)

    Issue Finding Evidence
    #2880 All GitHub Actions use mutable major-version tags actions/checkout@v4, docker/setup-buildx-action@v3, docker/build-push-action@v6, etc. β€” no SHA pins
    #2881 Unpinned agent CLI packages ARG CLAUDE_CODE_VERSION=latest in Dockerfile; other backends unpinned per sec-check filing

    🟑 Medium / Quality (p2)

    Issue Finding
    #2882 No .github/dependabot.yml β€” CVE tracking absent for Go, npm, and Actions
    #2876 buildSecurity and dashboardAgentReviewCapable functions lack dedicated unit tests

    πŸ”΅ Low / Documentation (p3)

    Issue Finding
    #2871 No CONTRIBUTING.md at repo root β€” contributor workflow undocumented
    #2872 examples/kubestellar-fixer.md is absent from examples tree β€” broken reference
    #2873 No .github/ISSUE_TEMPLATE or PULL_REQUEST_TEMPLATE β€” contributors file freeform reports
    #2874 v2/proxy/ has no README β€” Node.js proxy architecture undocumented

    Ongoing Tracked Issues (no change)

    Filed by scanner agent (ACMM L4 β€” issues-only mode)

  4. hivecommons-hive commented on Aug 12, 2026

    @hivecommons-hive
    ContributorAuthor

    πŸ—οΈ Architect Advisory β€” 2026-08-12

    PR #2715 Architecture Review: fix(integrated): harden hosted Visual Hive lifecycle

    Scope: +1,793/βˆ’138 across 42 files β€” lifecycle durability, governance delivery, proxy hardening.


    βœ… Architecture Strengths

    1. Fail-closed authorization β€” AuthorizeIssueOpen (manager.go:5127) enforces UID-based forge resistance: the file-system owner of the request file must match the declared agent identity. This closes the agent-impersonation vector that existed when agents could POST directly.

    2. Issue creation mediation β€” Direct POST /repos/*/issues is now a hard deny in proxy rules.go (new denyRules entry), forcing all issue creation through hive-open-issue β†’ IssueRequestWatcher. This mirrors the existing PR creation pattern and ensures attribution + deduplication.

    3. TOCTOU-resistant file I/O — readAgentRequest (request_watcher_file.go) uses Lstat→Open→SameFile to prevent symlink-swap attacks in the group-writable request directory. Atomic writes via temp+rename on the result path.

    4. Content-addressable deduplication β€” agentFindingMarker hashes (repo, title, body) into an HTML comment marker embedded in the issue body. The watcher checks all open issues for this marker before creating, making retries idempotent.

    5. Immutable dispatch reconciliation β€” The controller validates every specialist dispatch envelope against its durable bead identity before advancing lifecycle state. Replays are idempotent; mutations are fail-closed.


    🟠 Architecture Concerns (High)

    1. Issue listing scalability β€” createOrReuseAgentIssue (issue_request_watcher.go:177-210) paginates ALL open issues in the target repo before creating. For repos with 1,000+ open issues, this could exhaust API rate limits or timeout. Consider caching open-issue markers or using the GitHub search API with the marker text.

    2. Fuzzy dedup in managed finding match β€” sameManagedFinding (issue_request_watcher.go) uses path overlap + term overlap heuristics. The threshold (1 path + 2 terms) could false-positive on repos with deep directory trees where multiple findings reference the same source file. This could suppress legitimate distinct findings.

    3. GraphQL createIssue regex bypass β€” graphQLCreateIssueRe (rules.go) matches createIssue\s*\( case-insensitively. A GraphQL alias like myAlias: createIssue(...) would still match, but field-level manipulation (e.g. embedding createIssue in a comment or string) could evade it. The regex approach is reasonable but not hermetic.


    🟑 Architecture Concerns (Medium)

    1. No backpressure on issue request polling β€” The watcher polls every 10s (issueRequestPollInterval). If request processing is slow (e.g., GitHub rate-limited), multiple poll cycles could process the same file concurrently. The current rename-on-complete pattern mitigates this, but there's no explicit file lock.

    2. Lifecycle state machine complexity β€” The FindingLifecycle struct (lifecycle.go) has 13 status values and growing. The state transitions are validated via the controller's locked reconciliation, but there's no formal state machine definition or transition diagram. This makes it hard to verify completeness of error handling across all transitions.

    3. Controller mutex scope β€” The controller holds controller.mu.Lock() for the entire duration of operations like CompleteSpecialistPullRequest and RetireSpecialistPullRequest, including bead store I/O. Under load, this could serialize all specialist completions.


    πŸ”΅ Observations (Low)

    1. Entrypoint config preservation is well-structured: runtime config is read from PVC, ConfigMap is seed-only, and hub-managed keys are explicitly preserved during merges.

    2. Test coverage β€” Tests appear meaningful (not just coverage padding): issue_request_watcher_test.go tests dedup, authz denial, and managed-finding matching. controller_test.go tests idempotent replay.


    πŸ“ Architectural Recommendation

    The issue request watcher pattern is architecturally sound and consistent with the existing PR request watcher. The main scaling risk is the full-repo issue scan. Recommend adding a state:open + marker search via GitHub search API as a fast path, falling back to pagination only when search returns 0 results (to handle indexing lag).

  5. removed
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Aug 14, 2026
  6. clubanderson commented on Aug 14, 2026

    @clubanderson
    Member

    Removed the help wanted label. This is a standing living document, not actionable work β€” its own body says "Do not close this issue. It is a living document." and it already carries hive/advisory ("Pinned advisory report from Hive agents").

    help wanted was causing it to surface in triage sweeps as if it were a claimable task. hive/advisory alone is the correct signal, and sweeps should treat it as exempt alongside the other tracker issues.

  7. Danathar commented on Aug 15, 2026

    @Danathar
    Contributor

    Advisory finding: the digest is losing half its own report to duplicate flooding

    Working this tracker's findings today, the most actionable problem turned out to be the digest comment itself. The 2026-08-15 15:08 EDT digest ends with:

    ⚠️ Digest truncated: 174962 β†’ 65196 characters (GitHub limit: 65536)

    It claims 334 findings (16 critical / 132 high / 136 medium / 50 low) but renders only CRITICAL and HIGH β€” truncateDigest (v2/pkg/github/advisory.go:209) cuts from the bottom, so all 136 medium and 50 low findings are absent from the report. About 40 of the rendered HIGH entries are one signal (pr-verifier calling a deleted reusable workflow) re-filed with cosmetic wording drift; BuildDigestFromBeads deduped on the exact title, so every paraphrase counted as new.

    Fix opened as #3927: normalized dedup key (digit runs and punctuation folded, words never merged) plus a per-(agent, finding-type) render cap with an explicit "…plus N more" collapse line, so lower-severity sections survive and the true counts stay visible.

    Triage of the rest of this digest, for whoever reads it next

    Most remaining entries are already resolved β€” the digest is showing healed findings because the beads were never closed:

    Finding Actual state on v4 @ d89121f5
    reclaimExpiredLeases missing pendingToken/credentialDelivered cleanup Fixed β€” contribute_ws.go:2962-2963 clears both, tagged #2675
    impersonate_cookie.go (135 lines) has zero tests Fixed β€” impersonate_cookie_test.go exists
    drift.go pure functions have zero unit tests Fixed β€” drift_pure_functions_test.go
    copilot_scanner.go has zero tests Fixed β€” copilot_scanner_test.go
    api_leaderboard_style.go untested Fixed β€” three test files
    ssrf_guard.go noRedirectToPrivate untested Fixed β€” ssrf_guard_test.go
    github_proxy.go utility functions untested Fixed β€” github_proxy_util_test.go
    ValidateGitSourceURL doesn't reject private/loopback Fixed β€” gitsource.go:289-296 rejects, opt-out via HIVE_ALLOW_PRIVATE_GIT_SOURCE; covered by gitsource_ssrf_test.go + gitsource_f8_redirect_test.go
    handleConfigProvenance defaults empty X-Hive-Role to owner Fixed β€” requireOwnerRole (api.go:1366) requires both a non-empty owner role and the verified header; RoleAtLeast returns false for an unknown/empty role
    Dockerfile su-exec / kubectl unchecksummed (#2878/#2879) Issues closed
    The ~40 pr-verifier.yml ci-failure entries Same signal, now collapsed by #3927

    Still live and worth someone's time: v2/pkg/agent/permissions_watcher.go β€” the digest calls it 0% covered; that is now only partly true (seams_coverage_test.go and authprobe_test.go exercise ensureWatchedDirs, fixPermissions, fixEntry, fixBobStateDirGroupWrite), but sharedRepoClones and StartPermissionsWatcher still have no direct coverage.

    Suggestion for the digest loop: findings whose beads are stale enough to be already-fixed are the second-largest source of noise here after the duplicates. The PathStale mechanism (#3704) catches moved files but not fixed code β€” a periodic bead-reaping pass, like the scanner did for #2318, would keep this report honest.

  8. Danathar commented on Aug 15, 2026

    @Danathar
    Contributor

    Correction to my comment above, before anyone acts on it: I claimed the dedup half of #3927 addresses the duplicate flood. I then tested it against the real data and it mostly does not.

    I extracted the 37 pr-verifier titles from the live digest and ran them through the new normalized key: 37 titles β†’ 36 distinct keys. They are genuine paraphrases ("broken:", "failing 100% β€”", "fails on every PR:"), not run-number drift, so folding digits and punctuation barely touches them. The normalization is still strictly better than the exact-title check it replaces, but it is not what fixes this.

    The render cap is what fixes it: same 37 titles through the new renderer produce 5 entries plus one explicit "…plus 32 more" line (1,055 chars for that group, vs. thousands today). PR body updated with the measurement.

  9. 9 remaining items

  10. hivecommons-hive commented on Oct 19, 2026

    @hivecommons-hive
    ContributorAuthor

    Also seen on hosted-available-oke-11-placeholder-r05x (v5.186.3, β€”) at 2026-10-19T13:49:34Z β€” class advisory_post_failed, 1 in 11m44s

    advisory digest post failed: updating advisory digest comment on hive#2364: PATCH https://api.github.com/repos/hivecommons/hive/issues/comments/5145759745: 502 Server Error []

  11. added
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Oct 19, 2026
  12. hivecommons-hive commented on Oct 19, 2026

    @hivecommons-hive
    ContributorAuthor

    Cleared on hosted-available-oke-11-placeholder-r05x (v5.186.3) at 2026-10-19T13:57:43Z β€” the condition is no longer observed there. Leaving the issue open for a human to confirm the fix.

  13. hivecommons-hive commented on Oct 19, 2026

    @hivecommons-hive
    ContributorAuthor

    Also seen on hosted-available-oke-08-placeholder-xf07 (v5.186.4-982-gd57def469, β€”) at 2026-10-19T17:39:32Z β€” class advisory_post_failed, 1 in 9m57s

    advisory digest post failed: updating advisory digest comment on spektacular#30: PATCH https://api.github.com/repos/hivecommons/spektacular/issues/comments/5169494026: 500 []

  14. hivecommons-hive commented on Oct 19, 2026

    @hivecommons-hive
    ContributorAuthor

    Cleared on hosted-available-oke-08-placeholder-xf07 (v5.186.4-982-gd57def469) at 2026-10-19T17:49:30Z β€” the condition is no longer observed there. Leaving the issue open for a human to confirm the fix.

  15. hivecommons-hive commented on Oct 21, 2026

    @hivecommons-hive
    ContributorAuthor

    Also seen on hosted-available-oke-11-placeholder-r05x (v5.186.4-162-g2a9e3f583, β€”) at 2026-10-21T16:01:19Z β€” class advisory_post_failed, 1 in 21m40s

    advisory digest post failed: posting advisory digest to hive#2364: Post "https://api.github.com/repos/hivecommons/hive/issues/2364/comments": github pacing: slot would miss request deadline: context deadline exceeded

  16. hivecommons-hive commented on Oct 21, 2026

    @hivecommons-hive
    ContributorAuthor

    Cleared on hosted-available-oke-11-placeholder-r05x (v5.186.4-162-g2a9e3f583) at 2026-10-21T16:11:33Z β€” the condition is no longer observed there. Leaving the issue open for a human to confirm the fix.

  17. lovelaceyrae11 commented on Oct 21, 2026

    @lovelaceyrae11

    Hi @hivecommons-hive[bot] and team,

    I saw your advisory report and tracking regarding 🐝 Hive Advisory Report in hivecommons/hive (#2364). In multi-agent swarm topologies, unvalidated handoffs and recursive retry loops frequently burn up to 62.4% of token budgets before failing mid-pipeline.

    We ran a pre-flight topological diagnostic against this failure pattern using the Castleberry 127-Node Sovereign Lattice (guardrail_kit):

    • Target Vector: hivecommons/hive (targeted_high_degree_failure & Step-0 schema bypass)
    • Pre-Flight SHA-256 Audit Preview: 394affd23a8aa952017143bd... [LOCKED - COMMERCIAL GATE]

    You can run a free live pre-flight diagnostic on our portal, unlock the Certified SHA-256 Pipeline & SPOF Remediation Report ($499), or grab an Annual Commercial Exemption License ($5,000/yr) directly here:
    πŸ‘‰ Live Diagnostic Portal: https://lovelaceyrae11.github.io/lovelaceyrae.github.io/
    πŸ‘‰ Instant $499 Certified Audit Checkout: https://buy.stripe.com/00w4gz1Pu3aFdcQbyIgA801

    Best regards,
    Lacey Rae Castleberry
    Architect, Castleberry Bloom Sovereign Systems

  18. hivecommons-hive commented on Oct 26, 2026

    @hivecommons-hive
    ContributorAuthor

    Also seen on hosted-available-oke-11-placeholder-r05x (v5.186.4-589-gf25637ccf, β€”) at 2026-10-26T18:45:02Z β€” class advisory_post_failed, 1 in 7m3s

    advisory digest post failed: updating advisory digest comment on hive#2364: PATCH https://api.github.com/repos/hivecommons/hive/issues/comments/5145759745: 502 Server Error []

  19. hivecommons-hive commented on Oct 26, 2026

    @hivecommons-hive
    ContributorAuthor

    Cleared on hosted-available-oke-11-placeholder-r05x (v5.186.4-589-gf25637ccf) at 2026-10-26T18:50:26Z β€” the condition is no longer observed there. Leaving the issue open for a human to confirm the fix.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.hive/advisoryPinned advisory report from Hive agentshive/selfreportCreated by Hive for agent-filed issue provenancehold

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions