Skip to content

feat(go-agn-cli): add e2e suite#25

Merged
rowan-stein merged 5 commits into
mainfrom
noa/issue-24
Apr 25, 2026
Merged

feat(go-agn-cli): add e2e suite#25
rowan-stein merged 5 commits into
mainfrom
noa/issue-24

Conversation

@casey-brooks
Copy link
Copy Markdown
Contributor

Summary

  • add go-agn-cli suite with buf-generated token-counting protos and migrated tests
  • update agn config generation to use YAML templates and staged AGN_BINARY resolution
  • extend run-tests action (and new workflow) to stage agn release binaries

Testing

  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/...
  • go vet -tags "e2e svc_agn_cli" ./...

Refs #24

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Testing

  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/...

Lint

  • go vet -tags "e2e svc_agn_cli" ./...

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Testing

  • AGN_BINARY=/workspace/e2e/suites/go-agn-cli/bin/agn go test -count=1 -tags "e2e svc_agn_cli" ./tests/...
  • AGN_BINARY=/workspace/e2e/suites/go-agn-cli/bin/agn go test -count=1 -tags "e2e svc_agn_cli" -json ./tests/...
    • passed: 6
    • failed: 0
    • skipped: 0

Lint

  • go vet -tags "e2e svc_agn_cli" ./... (no issues)

Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Requested changes:

  • Workflow determinism: pass a pinned with: ref: to agynio/bootstrap/.../provision (it internally checks out bootstrap at inputs.ref, defaulting to main).

Non-blocking:

  • Consider adding a scheduled trigger for the new agn-cli-e2e workflow.
  • Minor cleanup in the release download step and a small reliability tweak in the token-counting server startup.

Comment thread .github/workflows/agn-cli-e2e.yml
Comment thread .github/workflows/agn-cli-e2e.yml
Comment thread .github/workflows/agn-cli-e2e.yml
Comment thread suites/go-agn-cli/suite.yaml
Comment thread suites/go-agn-cli/tests/token_counting_server_test.go Outdated
@casey-brooks
Copy link
Copy Markdown
Contributor Author

Testing

  • AGN_BINARY=/workspace/e2e/suites/go-agn-cli/bin/agn go test -count=1 -tags "e2e svc_agn_cli" ./tests/...
  • AGN_BINARY=/workspace/e2e/suites/go-agn-cli/bin/agn go test -count=1 -tags "e2e svc_agn_cli" -json ./tests/...
    • passed: 6
    • failed: 0
    • skipped: 0

Lint

  • go vet -tags "e2e svc_agn_cli" ./... (no issues)

Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Thanks for the update — the pinned bootstrap ref + scheduled trigger look good.

Blocking:

  • Fix the curl | python3 - <<'PY' pipeline in agn-cli-e2e.yml: the here-doc overrides stdin, so json.load(sys.stdin) won’t receive the release JSON.

Still open (non-blocking):

  • Add suites/go-agn-cli/bin/ (or suites/**/bin/) to .gitignore to avoid accidentally committing staged binaries.

Comment thread .github/workflows/agn-cli-e2e.yml
@casey-brooks
Copy link
Copy Markdown
Contributor Author

Testing

  • AGN_BINARY=/workspace/e2e/suites/go-agn-cli/bin/agn go test -count=1 -tags "e2e svc_agn_cli" ./tests/...
  • AGN_BINARY=/workspace/e2e/suites/go-agn-cli/bin/agn go test -count=1 -tags "e2e svc_agn_cli" -json ./tests/...
    • passed: 6
    • failed: 0
    • skipped: 0

Lint

  • go vet -tags "e2e svc_agn_cli" ./... (no issues)

noa-lucent
noa-lucent previously approved these changes Apr 24, 2026
Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Re-review: updates look good.

  • agn-cli-e2e.yml download step now correctly keeps curl JSON on stdin (via python3 -c ...), and bootstrap provisioning is fully pinned.
  • Added suites/**/bin/ to .gitignore.

All my prior threads are resolved.

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Summary

  • register the gateway token counting service alongside the legacy TokenCountingService in the go-agn-cli mock server
  • update buf.gen.yaml to generate the gateway token-counting proto

Testing

  • go vet -tags "e2e svc_agn_cli" ./tests/...
  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/...

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Test & Lint Summary

  • go vet -tags "e2e svc_agn_cli" ./tests/... (lint: no errors)
  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/... (passed: 1, failed: 0, skipped: 0)

Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Implemented most of issue #24 cleanly (new suite structure, tag gating, YAML config templating, AGN_BINARY staging, pinned bootstrap ref, scheduled workflow, and go test -json → go-junit-report(gojson) output).

Blocking:

  • The token-counting mock server currently registers both TokenCountingGateway and TokenCountingService. Per #24 we should only implement/serve TokenCountingGateway so the suite will fail if AGN regresses to calling the legacy service.

Once that’s adjusted, this looks ready.

Comment thread suites/go-agn-cli/tests/token_counting_server_test.go Outdated
@casey-brooks
Copy link
Copy Markdown
Contributor Author

Summary

  • removed the legacy TokenCountingService registration from the go-agn-cli mock server
  • kept only TokenCountingGateway for token counting requests

Testing

  • go vet -tags "e2e svc_agn_cli" ./tests/...
  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/...

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Test & Lint Summary

  • go vet -tags "e2e svc_agn_cli" ./tests/... (lint: no errors)
  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/... (passed: 1, failed: 0, skipped: 0)

noa-lucent
noa-lucent previously approved these changes Apr 24, 2026
Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Re-review: token-counting mock now only registers TokenCountingGateway (TokenCountingService removed), matching issue #24 and ensuring the suite will fail if AGN calls the legacy service.

LGTM.

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Summary

  • added include-smoke input to run-tests action and gated smoke tag injection
  • updated agn-cli scheduled workflow to disable smoke tags

Testing

  • go vet -tags "e2e svc_agn_cli" ./tests/...
  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/...

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Test & Lint Summary

  • go vet -tags "e2e svc_agn_cli" ./tests/... (lint: no errors)
  • go test -count=1 -tags "e2e svc_agn_cli" ./tests/... (passed: 1, failed: 0, skipped: 0)

noa-lucent
noa-lucent previously approved these changes Apr 25, 2026
Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Re-review: new input in looks correct (default true; when set to false, smoke tag isn’t auto-added). sets so the workflow runs only the go-agn-cli suite.\n\nLGTM.

@casey-brooks
Copy link
Copy Markdown
Contributor Author

Summary:

  • Removed token-counting mock gRPC server and buf proto generation artifacts from suites/go-agn-cli.
  • AGN config generation now omits token_counting entirely; suite.yaml no longer runs buf generate.
  • Suite now relies on in-process counting (no mock), so any outbound token-counting call will fail loudly.

Tests/Lint:

  • go vet -tags "e2e svc_agn_cli" ./tests/...
  • AGN_BINARY=../../../tmp/agn go test -count=1 -tags "e2e svc_agn_cli" ./tests/...

Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Requesting changes after latest commits.

Blocking:

  1. go-agn-cli suite no longer writes token_counting.address and the local token-counting Gateway mock/proto-gen was removed. Issue #24 explicitly requires token_counting.address in config and a suite-local TokenCountingGateway mock so we validate the correct integration path.

  2. Large amount of generated output is now committed under suites/go-core/.gen/. This repo ignores suites//.gen/ and runs buf generate before go test, so these should not be tracked.

  3. PR scope drift: this branch now includes multiple unrelated changes (gateway/media-proxy/playwright/pipeline/bootstrap updates). Please split or rebase so PR#25 stays focused on issue #24, or update the PR description/issues accordingly.

Comment thread suites/go-agn-cli/tests/main_test.go
Comment thread suites/go-core/.gen/go/agynio/api/gateway/v1/agents.pb.go
@casey-brooks
Copy link
Copy Markdown
Contributor Author

Summary:

  • Rebased PR to main and kept only issue-24 scope (run-tests inputs, agn-cli-e2e workflow, go-agn-cli suite updates).
  • Removed token-counting mock/buf artifacts from go-agn-cli suite and ensured suite config omits token_counting.
  • Confirmed suites/**/.gen remains ignored and no generated artifacts are tracked.

Tests/Lint:

  • go vet -tags "e2e svc_agn_cli" ./tests/...
  • AGN_BINARY=../../../tmp/agn go test -count=1 -tags "e2e svc_agn_cli" ./tests/...

noa-lucent
noa-lucent previously approved these changes Apr 25, 2026
Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Re-review after rebase:

  • Scope drift removed (only issue #24 changes remain).
  • Matches updated #24 constraint: token counting is embedded in agn (no gRPC mocks/proto-gen).
  • run-tests now supports agn-binary staging + include-smoke (and the agn-cli-e2e workflow disables smoke).

Non-blocking: PR description still mentions buf-generated token-counting protos; consider updating the summary to reflect the current approach.

Comment thread suites/go-agn-cli/tests/main_test.go
Comment thread suites/go-core/.gen/go/agynio/api/gateway/v1/agents.pb.go
@casey-brooks
Copy link
Copy Markdown
Contributor Author

Summary

  • Rebased noa/issue-24 onto main and resolved run-tests action conflicts to keep include_smoke plus the agn-binary input/staging.
  • Force-pushed updated branch at dfbad8af999031532e52f89f380cd7e828128d24.

Tests

  • devspace run test-e2e --tag svc_gateway (passed: 61, failed: 0, skipped: 0)
  • devspace run test-e2e --tag smoke (passed: 19, failed: 0, skipped: 0)

Lint

  • npx eslint . --config eslint.config.js (suites/playwright-tracing-app) — no errors

Copy link
Copy Markdown

@noa-lucent noa-lucent left a comment

Choose a reason for hiding this comment

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

Re-review after rebase (dfbad8a…): conflict resolution didn’t change the substantive #24 implementation. Suite/workflow/action changes still look correct.

Non-blocking: PR description still mentions buf-generated token-counting protos; issue #24 now states token counting is embedded in agn, and the suite no longer includes mocks/proto-gen. Consider updating the PR summary for accuracy.

@rowan-stein rowan-stein merged commit 0a4f88c into main Apr 25, 2026
1 check passed
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.

3 participants