Skip to content

Add android quickstart template#27

Open
anandwana001 wants to merge 1 commit into
AgoraIO:mainfrom
anandwana001:convo-ai-android
Open

Add android quickstart template#27
anandwana001 wants to merge 1 commit into
AgoraIO:mainfrom
anandwana001:convo-ai-android

Conversation

@anandwana001
Copy link
Copy Markdown

Summary

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking, additive)
  • Behavior change to an existing command (potentially user-visible)
  • Breaking change (CLI flag, exit code, JSON shape, or error.code rename/removal)
  • Documentation only
  • CI / packaging / tooling
  • Refactor (no behavior change)

Public-contract impact

  • No public-contract impact.
  • Adds or changes a JSON envelope shape — described below.
  • Adds a new error.code — added to docs/error-codes.md.
  • Renames or removes an error.code — flagged as breaking, included in CHANGELOG.
  • Changes an exit code for an existing command — flagged as breaking.
  • Adds or changes a CLI flag — documented in help text and (if user-facing) docs/automation.md.

Test plan

  • go test ./... passes locally.
  • make lint passes locally (gofmt, golangci-lint, error-code coverage audit).
  • New behavior is covered by a JSON-mode integration test in internal/cli/integration_test.go.
  • Edge cases are covered by unit tests in internal/cli/app_test.go (where applicable).

Documentation

  • CHANGELOG.md updated under ## Unreleased (Added / Changed / Deprecated / Removed / Fixed / Security).
  • docs/automation.md updated for any user-facing JSON shape, env var, or flag change.
  • docs/error-codes.md updated for any new error.code (or N/A).
  • README.md updated if the command tree, install path, or quickstart changed.
  • AGENTS.md updated if engineering or release process changed.

Security checklist

  • No credentials, App Certificates, tokens, or PII added to fixtures, logs, or test output.
  • No new outbound network call without timeout / context cancellation.
  • No new file written under user $HOME without 0o600 perms when it can contain credentials (e.g. session, config).
  • No new unsafe import.

Additional notes

@digitallysavvy
Copy link
Copy Markdown
Contributor

Thanks for adding the Android quickstart. I think this should be brought up to parity with the existing Next.js /
Python / Go scaffolding before merge, rather than shipping it as clone-only.

Right now the PR describes Android as “clone-only” and disables init support, but that creates an inconsistent
CLI experience and also leaves a bug in the current create flow: if the user already has a current project
selected, quickstart create --template android can still try env seeding after clone, fail with
QUICKSTART_TEMPLATE_ENV_UNSUPPORTED, and remove the cloned directory.

Requested changes:

  1. Make Android a full supported quickstart, not clone-only.

    The Android repo includes a Python backend under:

    https://github.com/AgoraIO-Conversational-AI/agent-quickstart-android/tree/main/server

    So the template should be wired like the other full quickstarts:

    • SupportsInit: true
    • env example path should point at the Android repo’s backend env example
    • env target path should point at the backend .env
    • install/run commands should describe both Android frontend and Python backend setup
    • remove “clone-only” wording from README, docs, and EnvDocsSummary
  2. Use the correct default branch/ref.

    The PR currently sets Ref: "rest-api", but the backend path above is on main. Please confirm the intended
    branch. If main is the supported quickstart, do not force rest-api; let the default branch clone or set
    the template ref to main only if we need the JSON envelope to report it explicitly.

  3. Wire env seeding for the Python backend.

    Android should receive the same Agora project credentials flow as the Python quickstart, written into the
    backend server env file. This should work for:

    • agora quickstart create my-android-demo --template android --project <project>
    • agora init my-android-demo --template android
    • agora quickstart env write my-android-demo --template android --project <project>
  4. Add tests for the actual scaffold path.

    Please add integration coverage using AGORA_QUICKSTART_ANDROID_REPO_URL pointed at a local git repo fixture
    with the expected Android + server layout. The test should verify:

    • Android appears in quickstart list
    • quickstart create --template android succeeds without a project
    • quickstart create --template android --project ... writes backend env
    • .agora/project.json records template: "android"
    • quickstart env write --template android updates the backend env
    • init --template android works if Android is marked SupportsInit: true
  5. Update docs/contracts.

    Since this adds a new public template, please update:

    • CHANGELOG.md
    • docs/automation.md quickstart template docs
    • README examples
    • docs/llms.txt

Once Android has the same project binding, env writing, and init behavior as the other supported quickstarts,
this will fit the CLI’s current scaffolding model much better.

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.

2 participants