ObolNetwork / ObolNetwork/obol-stack

Dead-code triage: production-unreachable subtrees needing product decisions (TEE/CoCo, encrypted replies, unwired validation, OpenClaw wallet)

Open
#748 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
11
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Context

A repo-wide deadcode ./cmd/... triage (2026-07-14, alongside #745/#746/#747) found, beyond mechanically-deletable symbols, several production-unreachable subtrees kept alive only by their own tests. These need owner/product decisions, not routine cleanup — some look like shelved features, one may indicate missing input validation.

Subtrees needing a decision

Subtree ~LOC What it is Recommendation
internal/tee/coco.go + internal/tee/verify.go (+MarshalReport) 577+ Entire CoCo (Confidential Containers) install/check + TDX/SNP/Nitro attestation-verification machinery. The tee package itself is live (ParseTEEType/NewKey/Attest), but this whole half is orphaned (from monetization M1-M3, b2bc2582). Biggest item — decide: is confidential-compute verification still on the roadmap? Kill or wire in.
internal/inference/client.go 239 Encrypted-replies HTTP client (EnableEncryptedReplies, pubkey fetch, RoundTripper). Staged feature, never wired. Decide with the TEE item — they're the same story.
internal/inference/detect.go (ProbeEndpoint/ScanLocalEndpoints/DetectServerType/ParseModelsResponse subtree) 345 Local inference-server auto-detection — apparently superseded by the discovery path actually used at stack up. Verify which scan path autoDetectLocalProviders really uses before killing. Confirm supersession, then kill.
internal/validate/validate.go (whole package) 134 Generic CLI input-validation helpers (Namespace, WalletAddress, ChainName, Price, Path, NoControlChars) — built, tested, never wired to any command. ⚠️ Check first whether the CLI is missing input validation these were meant to provide; wiring in may beat deleting.
internal/openclaw/wallet.go, wallet_backup.go, wallet_resolve.go ~1200 OpenClaw-specific wallet import/backup/namespace-resolution — shadowed by the live hermes package equivalents (same names, different packages). Kill after verifying no OpenClaw runbook still documents these paths.
internal/openclaw/openclaw.go overlay-sync cluster SyncOverlayModels root removed in #747; unit-tested helpers (rankModels, patchAgentModelsJSON, patchOverlayModelList) remain, now with no prod caller. Wire in (model changes → overlay sync?) or kill helpers + tests.
internal/erc8004/client.go superseded methods ~150 Register/RegisterDetailed/SetAgentURI/SetMetadata/NewClient — cleanly superseded by the ...WithOpts(Detailed) variants prod calls. Kill (with their tests) — textbook superseded API.
internal/x402/chains.go ResolveAssetInfo/BuildV1Requirement, internal/x402/tokens.go TokenSupportedOnChain, internal/x402/serviceoffer_source.go RouteRulesForOffer ~200 Superseded x402 helpers; RouteRulesForOffer is pinned by a cross-package golden test (moderate blast radius). Kill the first three; decide on RouteRulesForOffer with the golden-test owner.
internal/hermes/hermes.go hermesExecArgs Doc comment self-identifies as "legacy argv-builder signature". Kill.

Not debt (deadcode false positives, verified): internal/images test-support exports ("exported for tests" by design), internal/ui.NewForTest, internal/enclave.LoadKey/DeleteKey (cross-package test setup), all legacy/deprecated-commented migration code (actively functioning compat paths).

Mechanical zero-reference deletions and stale flow-script fixes were applied in #747. Full triage table lives in that PR's history.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the full triage table in PR #747 and rerun deadcode ./cmd/...; then inspect callers and tests for the listed subtrees, especially internal/tee, internal/inference, internal/validate, and internal/openclaw. Check the relevant runbooks and the golden test before proposing changes. Done means each subtree has an owner decision and a concrete follow-up to delete, wire in, or verify.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, blockchain, cli
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.