Skip to content

Split igord into product and research binaries#23

Merged
simonovic86 merged 1 commit intomainfrom
claude/nice-swirles
Mar 13, 2026
Merged

Split igord into product and research binaries#23
simonovic86 merged 1 commit intomainfrom
claude/nice-swirles

Conversation

@simonovic86
Copy link
Owner

Summary

  • Separate product CLI (igord) from research CLI (igord-lab) so Phase 2 product features (HTTP hostcalls, KV store) can be built without dragging in libp2p, migration, replay, and pricing dependencies
  • Product binary now has zero libp2p transitive dependencies — down from 83
  • All existing behavior preserved in igord-lab for continued research use

Changes

  • cmd/igord/main.go — stripped to product subcommands only (run, resume, verify, inspect)
  • cmd/igord-lab/main.go — new binary with legacy P2P/migration/replay/lease code
  • internal/runner/research/ — new subpackage for research-specific runner functions (VerifyNextTick, HandleDivergenceAction, ExtractSigningKey, lease helpers)
  • internal/runner/runner.go — kept product-safe functions (SafeTick, LoadManifestData, types)
  • Makefile — added build-lab target, updated run-agent to use igord-lab
  • .gitignore — fixed pattern to not ignore cmd/igord/ source directory

Test plan

  • make build — product binary compiles
  • make build-lab — lab binary compiles
  • make test — all tests pass (zero failures)
  • Product binary has 0 libp2p deps (go list -deps ./cmd/igord/ | grep -c libp2p)
  • igord CLI shows clean help with only 4 subcommands
  • Pre-commit hooks pass (fmt, vet, lint, test)

🤖 Generated with Claude Code

Separate the product CLI (igord) from the research/P2P CLI (igord-lab)
so Phase 2 product features can be built on a clean foundation without
dragging in libp2p, migration, replay, and pricing dependencies.

- igord: product CLI with run/resume/verify/inspect subcommands (0 libp2p deps)
- igord-lab: research CLI preserving legacy flag-based P2P interface
- internal/runner/research/: subpackage for research-specific runner functions
- Makefile: add build-lab target, update run-agent to use igord-lab

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@simonovic86 simonovic86 merged commit 7b5281a into main Mar 13, 2026
1 check passed
@simonovic86 simonovic86 deleted the claude/nice-swirles branch March 13, 2026 14:18
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9a72d972e5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +47 to +49
default:
fmt.Fprintf(os.Stderr, "Unknown command: %s\n\n", os.Args[1])
printUsage()

Choose a reason for hiding this comment

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

P2 Badge Restore legacy flag handling for igord entrypoint

The new switch-only command dispatch makes any legacy flag invocation (for example igord --run-agent ...) hit the unknown-command path and exit, which is a behavior regression from the previous CLI. This now conflicts with in-repo usage I checked (scripts/prepare-release.sh:78 still emits ./bin/igord --run-agent ...), so generated release quick-start instructions are broken unless users manually discover igord-lab; consider adding a compatibility shim or updating all remaining callers in the same change.

Useful? React with 👍 / 👎.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant