Skip to content

sustainabot/Cargo.toml has path dep on missing bots/panic-attacker/Cargo.toml (rename casualty) #246

Description

@hyperpolymath

Observation (surfaced as meander during shared-context edition-2021 fix, #244)

`bots/sustainabot/Cargo.toml` declares a path dependency:
```toml
[dependencies]
... = { path = "../panic-attacker" }
```

But `bots/panic-attacker/Cargo.toml` does not exist in-tree. Confirmed pre-existing (not introduced by #244): stashed the edition fix, re-checked, same error.

Likely root cause

Earlier rename casualty — `panic-attacker` likely became `panic-attack` (now a top-level repo at `hyperpolymath/panic-attack`) or was relocated. The sustainabot dep was never updated.

Fix shape (one of)

  1. Update path to current location (likely `../../../panic-attack` if cross-tree, or a registry/git dep)
  2. Remove dep if sustainabot no longer uses panic-attacker
  3. Restore vendored copy under `bots/panic-attacker/` if intended to live in-tree

Why this matters

`cargo check --workspace` from fleet root fails until this is resolved. PR #244 verified 10 bots compile (echidnabot, rhodibot, gsbot, glambot, panicbot, seambot, cipherbot, finishingbot, accessibilitybot, the-hotchocolabot, robot-repo-automaton, dashboard, shared-context, fleet-cli) — sustainabot is the outlier.

Refs

Activity

  1. hyperpolymath commented on Jun 20, 2026

    @hyperpolymath
    OwnerAuthor

    Resolved by the sustainabot→oikosbot extraction (#297, follow-up #298)

    This is now fixed on main (f39d3d5) — but by deletion of the whole vendored crate, not by repointing the path dep.

    What happened. The offending manifest was bots/sustainabot/crates/sustainabot-analysis/Cargo.toml, which carried:

    panic-attack = { path = "../../../panic-attacker", optional = true }

    That crate was part of a full standalone copy of OikosBot (a whole Rust workspace + Haskell analyzer + AffineScript bot + containers/policies — 99 files) misfiled inside the bots/sustainabot/ slot. #297 emptied the slot and moved the implementation to its own repo, hyperpolymath/oikosbot. The PR body calls out "one crate of which even grew a hard path dependency" as a reason for the cleanup — i.e. this exact repo‑escaping dep is what the extraction targeted.

    Net effect on #246:

    • The path dep (and the crate that declared it) no longer exist on main.
    • bots/sustainabot/ is now a reserved thin-adapter slot (README only); cargo check --workspace from the fleet root no longer pulls in a broken member.
    • BotId::Sustainabot, the coordinator roster, and safety-triangle routing in shared-context/ are untouched — sustainabot remains a first-class fleet member.
    • Recurrence is guarded: the new "thin adapters, never vendor standalone products, never add repo-escaping path deps" invariant (added in Empty the misfiled sustainabot slot; add anti-vendoring guardrails #297) plus the deletion-guard marker (Deletion-guard PR-body marker, BotId::Oikosbot, rhodibot link fix #298). If the slot is rebuilt, it should depend on hyperpolymath/oikosbot as an external crate/service rather than re-vendoring.

    Of the three fix shapes proposed here, the estate took option 2 (remove) — applied to the entire vendored crate, not just the dep line. Closing as completed.


    Generated by Claude Code

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions