The browser login flow only requested identity scopes, so the resulting
access token lacked permission to call the Responses API.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Only show providers where the API key is set, reducing noise for users
who only have one or two providers configured.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Redesign the install CLI output for a friendlier experience:
- Bold header with ⚡ emoji and dim description paragraph
- Collapse 4 steps into 2: "LLM Providers" and "GitHub App"
- Dim all intermediate progress lines (browser, waiting, wrote, etc.)
- Replace [ok] markers with green ✔ checkmarks
- Write .env incrementally after each step instead of once at end
- Include GitHub App slug in success line
- Add closing message with bold+cyan "arc init" call-to-action
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Match the styled card design used by the GitHub App manifest callback,
replacing the plain unstyled HTML on the /auth/callback page.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When the codex binary is found on PATH, arc install now offers browser-based
OpenAI OAuth login before the standard provider picker. Falls back to manual
API key entry if OAuth fails or user declines.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Catches missing GitHub App installations early by verifying the app
is installed for the repo's GitHub remote after scaffolding project
files. Shows install URL and optional interactive prompt if not
installed; never fails init on check errors.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Instead of deferring key validation to the optional `arc doctor` step,
each API key is now validated right after entry with a retry loop if
invalid.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The function is only called from a #[cfg(feature = "server")] block,
so it triggers a dead_code warning when compiled without the feature.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Uses gh CLI to download the latest release, detect platform
(macOS ARM with Rosetta detection, Linux x86_64), and install
the binary to /usr/local/bin (or ARC_INSTALL_DIR).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract resolve_workflow() in project_config to handle bare name, .toml,
and .dot resolution in one place. Previously validate and parse treated
bare words as literal file paths while run resolved them via arc.toml.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use green checkmarks, dim file paths, bold header, and cyan+bold
command to match qlty CLI conventions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
System deps (openssl, node, dot) are only needed in server mode.
Remove them from standalone arc doctor output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Start with a single-choice prompt for the first LLM (Anthropic, OpenAI,
or Gemini), then optionally offer a multi-select for additional providers.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The redirect_uri path must be /auth/callback (not /callback) to match
what OpenAI's auth server expects for this client ID. Also use localhost
instead of 127.0.0.1 to match the Codex CLI convention.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Standalone library implementing OpenAI's OAuth PKCE flow (browser + device)
for authenticating with ChatGPT subscriptions instead of API keys.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Show the web UI immediately after the tagline and link to the
Why Arc docs page from the pain statement.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Put the DOT example right after the feature table so readers see
proof before being asked to install.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Highlight comprehensive docs with links to each major section.
Convert feature bullets to emoji table matching Qlty readme style.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add emoji to feature bullets, update tagline, add human-in-the-loop
feature, highlight traceability in git checkpointing, remove system
requirements section, and link to new CONTRIBUTING.md instead of
CLAUDE.md.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace feature tables with a focused bulleted list highlighting
deterministic graphs, human-in-the-loop, multi-model routing, cloud
sandboxes, SSH/preview, git checkpointing, retros, API, single binary,
and open source. Merge the stylesheet example into the workflow example
for one cohesive story. Remove TOC, node types table, supported models
section, and outdated access warning.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pre-built binaries for macOS ARM and Linux x86_64 are now the
primary install method. Build-from-source moved to a details block.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Swap LLM providers and GitHub App steps so LLM setup comes first
- List specific providers with connectivity issues in arc doctor warnings
- Style the GitHub App callback page with a centered card and checkmark
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds a temporary local HTTP server in `arc install` that handles the
GitHub App manifest registration flow, enabling standalone users to
register a GitHub App without running the arc-web server.
Also gates server-only install steps (pre-flight checks, server.toml,
secrets/certs, start servers) behind #[cfg(feature = "server")] and
removes the `gh` CLI from system dependency checks. Reloads .env before
running arc doctor so it picks up freshly written credentials.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Self-hosted runner lacks credentials for HTTPS checkout.
Switch both compile (Linux) and release jobs to ubuntu-latest.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Live service probes now run by default instead of requiring --live.
Added --dry-run flag to skip probes when needed. Install command now
runs doctor with live probes to validate setup.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove rust-toolchain/rust-cache setup (pre-installed on self-hosted),
disable checkout clean, enable sccache and incremental compilation.
Split macOS tests into a separate job that only runs on workflow_dispatch
since release.yml already gates on macOS tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extend conclusion.json with per-stage operational data (cost, duration,
retries) so the Arc Details section of PR descriptions no longer depends
on retro.json. The retro section remains optional and only appears when
the retro agent runs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add release.yml: tag-triggered (v*) workflow that cross-compiles
for aarch64-apple-darwin and x86_64-unknown-linux-gnu, packages
archives with SHA256 checksums, and creates a GitHub Release
- Add workflow_dispatch, concurrency groups, and cache-on-failure
to rust.yml and typescript.yml
- Run clippy and test on both ubuntu-latest and macos-15
- Add release profile with thin LTO and strip to Cargo.toml
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Project-level arc.toml can now set [pull_request] with enabled/draft
fields, slotting between cli.toml defaults and workflow.toml overrides.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add app_id(), slug(), and git_author() methods to CliConfig to
replace repeated .git.as_ref().and_then(...) chains across 5 call
sites in main.rs and doctor.rs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move GitHub App credentials (app_id, slug) and run defaults (llm,
sandbox, pull_request) into cli.toml so standalone commands (run, pr
create, llm) no longer require server.toml. The server.toml loading is
now limited to `arc serve` and server-mode doctor checks.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>