Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -666,6 +666,11 @@ removes it, until it is gone. The launchers follow their links to the checkout,
`common/coding-agent-kit/coding-agent-kit/docs/account-launchers.md`. Stow does
the installing here; the kit's own `install.sh` is for hosts without dotfiles.

From v0.3.0 `codex-as --account-info NAME` and `claude-as --account-info NAME`
print an account's last-seen email or label and usage, offline; the zsh
completions describe each account with it and the fzf-tab preview shows it
(see [docs/coding-agent-kit.md](docs/coding-agent-kit.md#account-details-in-completion)).

The kit reads an optional
`${XDG_CONFIG_HOME:-~/.config}/coding-agent-kit/config.toml` for the `codex`
and `claude` executables and the `~/.codex` and `~/.secrets` roots. Dotfiles
Expand Down
11 changes: 10 additions & 1 deletion common/zsh/.oh-my-zsh/custom/fzf-tab.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,16 @@ zstyle ':fzf-tab:complete:*' fzf-preview '[[ -e "$realpath" ]] && my-fzf-preview
# Custom previews for specific commands

# Account launchers: never hand a credential path to the generic file preview.
zstyle ':fzf-tab:complete:(codex-as|claude-as):*' fzf-preview 'printf "%s\n" "$word"'
# An account shows the kit's offline --account-info (last-seen email or label
# and usage; it opens no credential), any other word only itself. fzf-tab keys
# this context on the command alone, so the group, the [%d] description of
# the completion, tells an account from an argument.
zstyle ':fzf-tab:complete:(codex-as|claude-as):*' fzf-preview \
'case $group in
("[Codex accounts]") codex-as --account-info "$word" 2>/dev/null || printf "%s\n" "$word" ;;
("[Claude accounts]") claude-as --account-info "$word" 2>/dev/null || printf "%s\n" "$word" ;;
(*) printf "%s\n" "$word" ;;
esac'

# kill
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
Expand Down
15 changes: 15 additions & 0 deletions docs/coding-agent-kit.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,21 @@ Never run the kit's `install.sh` on a dotfiles host. Stow already links the
launchers and completions, and `install.sh` refuses those links (it replaces
only links of its own) and changes nothing.

## Account details in completion

From v0.3.0 the kit keeps what it last saw about each account in
`${XDG_STATE_HOME:-~/.local/state}/coding-agent-kit/accounts/`: the Codex email
and plan, a Claude label entered at enrolment (or with
`claude-as --set-label NAME [LABEL]`), and the last 5-hour and weekly usage
(Codex from the rollouts of a run, Claude from its status line). The zsh
completions show the email or label next to each account, and dotfiles'
fzf-tab preview (`common/zsh/.oh-my-zsh/custom/fzf-tab.zsh`) runs
`codex-as --account-info NAME` or `claude-as --account-info NAME` for an
account, offline and without opening a credential; any other word previews as
itself. The kit's `docs/account-launchers.md` says where each field comes from
and its gaps. Emails and labels show in previews, screen shares and agent
transcripts; no token is ever printed.

## Configuration

The launchers read an optional TOML file,
Expand Down
6 changes: 6 additions & 0 deletions docs/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,12 @@ client's missing-page error must never reach the preview, and the C client
must never run without `TLDR_AUTO_UPDATE_DISABLED`, without which the real one
fetches a missing page from GitHub.

`tests/test_ai_integration.py` evaluates the account preview of
`custom/fzf-tab.zsh` under the context fzf-tab really looks up; with
`FZF_TAB_TEST_DIR` set to an fzf-tab checkout (the bootstrap clones it to
`~/.oh-my-zsh/custom/plugins/fzf-tab`) it also drives real fzf-tab in an
interactive zsh with a fake fzf. Without that variable the second case skips.

The day-zero bootstrap has four suites. `tests/bootstrap-manifest.sh`
unit-tests the sourced `lib/bootstrap/{manifest,platform,version}.sh` and runs
the standard-library validator `tests/test_bootstrap_manifest.py`, which checks
Expand Down
2 changes: 1 addition & 1 deletion tests/COVERAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ source-to-test behavior matrix instead.
| `wsl-ubuntu` and `lab-ubuntu` zsh and bash overlay rc files | `host-overlays.sh` | the Linuxbrew `brew shellenv` guard under `zsh -f` and `bash --norc --noprofile` in a clean environment: silent with a missing or non-executable brew, applied only when brew is executable; the overlays' conda and mamba prefixes point at missing paths so only the guard is tested |
| `tests/e2e/inside.sh`, `tests/e2e/lib/*.sh` (`blocks.sh` policy, `assert.sh` snapshots and audits), `tests/e2e/hosts/*.env` | `e2e-harness.sh` | HUMAN block parser (notes against commands, `%q` paths with spaces kept byte for byte), the `HUMAN steps pending:` reader, every (step id, kind) policy row with the fail rows (planted extra H7-stow line, another host's stow line, two stow lines, `S2-brew-bundle` sudo and judgment, `S4-nvm`, `X-recovery`, unknown ids and kinds), the exact printed shape of every line the harness runs: the digest gate (sha256sum and shasum forms, the run path bound to the digested one, nothing after it; another path, a `;` tail, an extra pipe stage, an `&&` tail, no `--status`, the `/bin/bash` Homebrew form, a bare run line and an un-gated run line beside the gate refused), `mv -n FILE FILE.pre-dotfiles` for one `%q` path under HOME (chained commands, a mismatched or unescaped path, `$(...)`, backticks and `$'...'` refused) and the stow line (one of the three printed PATH prefixes, then the clone's own `stow-all.sh` and the host; a command between them, command substitution, a `..` path or a trailing argument refused), the by-hand fence holding only the two helper definitions, `E2E_ALLOC_ENV` expansion and refusals with the reason printed, the failure-detail reader, the wrappers.log phase and no-sudo audits and the sudo.log window audit against fixture logs; the real `sudo` and `stow` wrappers with two copies on PATH (the macOS runner's layout) log a call once and run the real tool, and give up with 127 instead of exec'ing each other when there is none; `tests/e2e/timeout.pl` (the per-command limit where neither timeout nor gtimeout exists) exits 124 within seconds of its limit, passes a status and a signal death through, gives 127 for a command it cannot run, kills the whole process group, and is what e2e_find_timeout picks only without timeout or gtimeout; a sandboxed dry run of `inside.sh` under `E2E_SANDBOX_HOME` (a home with a space) against a fixture clone whose stub `setup-host.sh`, `doctor.sh` and `stow-all.sh` print realistic plan lines, blocks and exit codes, with stub sudo, chsh, stow and apt-get wrappers writing the wrappers.log format: all steps pass through four apply runs (apt sudo block, gated inspect line, mv -n and stow line), the reminders are skipped once, the second apply applies nothing, the login shell, doctor runs and negatives pass, the timeline frames every phase and the audits pass; the same at a fixture commit whose `doctor.sh` calls sudo outside a human phase fails the wrappers audit and exits 1; the exit-2 refusals (sandbox not under the temp dir or relative, a source checkout or a sudo, chsh or stow outside the temp dir under the sandbox seam, win, a bad rev, a taken home, no seam) run no step. Docker images, the real bootstrap and the sudo.log a real sudo writes are exercised only by the opt-in `tests/e2e/run.sh` |
| `tests/e2e/run.ps1`, `tests/e2e/lib/*.ps1` | `e2e-harness.ps1`, `e2e-harness-windows.sh`, `tests/run.ps1` parse gate | every file parses with the PowerShell parser on each run of `tests/run.ps1` (the native Windows CI job included); with the libraries dot-sourced unchanged and stubs for each setup-host.ps1 run, the HW-stow child, the registry PATH rebuild and the snapshots: the HUMAN block parser on CRLF output with winget's blank progress lines, the (step id, kind) policy (HW-stow runs, the five reminders skip, HW-clone and every other pair fail), only the exact `& '<clone>\stow-all.ps1' win` line accepted, the real `setup-host.ps1 -PrintManual` blocks against their policy rows, the pending-id, failure-detail and summary readers, HOME snapshots (added, removed, changed, links by target never followed, an unreadable directory, pruned subtrees, the top-level ntuser hives, `E2E_SNAPSHOT_PRUNE`), CryptnetUrlCache noted and every other HOME write failing, `summary.tsv` as UTF-8 without BOM with LF and tabs, a passing step failed by a dirty clone, doctor TSV counts, `Invoke-E2EProcess` (closed stdin, both streams logged, 124 after the timeout), the `run.ps1` exit-2 refusals (arguments, a host but Windows), apply-loop dry runs (exit 3 then 0, reminders recorded once, HW-stow passing only with the applied state recorded and no WARNING line, a pending HW-clone failing before the stow, an HW-stow block with another line refused, no progress, exit 1 and 2, a timeout, eight exit-3 runs), no-write steps (noted cache entries pass; a HOME write, a TEMP leftover or redone work fail) and `Invoke-E2EFlowWin` step order with dependents skipped after a break; runs on Linux and macOS pwsh too, where the Windows-only checks print SKIP. winget, the real bootstrap and the runner's home are exercised only by the opt-in `bootstrap-e2e.yml` windows job |
| `.stowrc`, `common/(claude\|codex\|coding-agent-kit)/**`, `fzf-tab.zsh`, `.zsh_aliases`, `.bash_aliases`, and the real `settings.json` against the pinned coding-agent-kit | `ai-integration.sh`, `test_ai_integration.py`, `tests/run.ps1` | the fzf-tab account preview never reads a credential, both real alias files sourced twice reach `codex-as --help` in Bash and Zsh through a link to its package link, which finds the kit checkout and names its `common/coding-agent-kit/coding-agent-kit/docs/account-launchers.md` with no caller kit configuration in reach, real Stow installs the underscore zsh completions from the coding-agent-kit package, ignores AppleDouble files and leaves its checkout unstowed; the real-data overlay extracts the pinned submodule tree, puts the real `settings.json` over its fixture and reruns its 8 `claude-customizations.cjs` tests (on Windows too, through `tests/run.ps1`) |
| `.stowrc`, `common/(claude\|codex\|coding-agent-kit)/**`, `fzf-tab.zsh`, `.zsh_aliases`, `.bash_aliases`, and the real `settings.json` against the pinned coding-agent-kit | `ai-integration.sh`, `test_ai_integration.py`, `tests/run.ps1` | the fzf-tab account preview, under the context fzf-tab really looks up (`:fzf-tab:complete:TOOL:`), shows the kit's `--account-info` for the `[Codex accounts]` and `[Claude accounts]` groups and only the word for arguments or a name that is no account, never reaching the file preview or a credential, and, with a real fzf-tab checkout in `FZF_TAB_TEST_DIR`, an interactive zsh with a fake fzf runs fzf-tab's own preview command for each candidate, the email or label shown as its description; both real alias files sourced twice reach `codex-as --help` in Bash and Zsh through a link to its package link, which finds the kit checkout and names its `common/coding-agent-kit/coding-agent-kit/docs/account-launchers.md` with no caller kit configuration in reach, real Stow installs the underscore zsh completions from the coding-agent-kit package, ignores AppleDouble files and leaves its checkout unstowed; the real-data overlay extracts the pinned submodule tree, puts the real `settings.json` over its fixture and reruns its 8 `claude-customizations.cjs` tests (on Windows too, through `tests/run.ps1`) |
| `tests/run.sh`, `tests/run.ps1`, the suites' fixture Git, `.pre-commit-config.yaml` and CI | `test-entrypoints.sh`, three native CI jobs | required dependencies fail visibly, local optional skips reported, native Windows job cannot run on Unix, shared backend and AI integration suites required, every entry point unsets the same dotfiles and kit knobs (covering each `DOTFILES_*`/`AWESOME_SKILLS_*` name in any tracked file outside tests, docs, `.github` and Markdown, in shell, PowerShell or Python spelling, and each `CODING_AGENT_KIT_*` or `_CODING_AGENT_KIT_*` name in the kit's code at the recorded gitlink, through the delivery test's `check_kit_knobs`) and a suite passes under the provisioning exports; fixture Git out of a commit hook's repository: the Bash suites with fixture Git in their body (`bootstrap-manifest.sh`, `doctor.sh`, `e2e-harness.sh`, `setup-host.sh`, `unix-installer.sh`) unset `GIT_DIR` and `GIT_INDEX_FILE` and the PowerShell ones (`e2e-harness.ps1`, `windows-installer-controls.ps1`) remove every `GIT_*` variable, the manifest suite passes under a relative `GIT_INDEX_FILE`, and with pwsh the installer controls leave the index, `HEAD` and `core.bare` of a throwaway repository alone under its linked worktree's `GIT_DIR` and `GIT_INDEX_FILE`; `.pre-commit-config.yaml` selection as pre-commit makes it (files, exclude, top-level exclude): the engine hooks on `lib/config_sync.py` and `lib/sync-runtime.sh`, `structured-config-sync` and `codex-config-sync` on the real Codex `config.toml`, the delivery hook on `tests/run.sh`, the bump workflow and its reviewed copy, and the `test-entrypoints` hook on itself, the entry points and `.pre-commit-config.yaml` |

Windows updater mocks do not establish actual Task Scheduler execution. The
Expand Down
2 changes: 1 addition & 1 deletion tests/ai-config-sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

REPO_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
TEST_TMP="$(mktemp -d "${TMPDIR:-/tmp}/dotfiles-ai-sync.XXXXXX")"
Expand Down
2 changes: 1 addition & 1 deletion tests/ai-integration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

TEST_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd -- "$TEST_DIR/.." && pwd)"
Expand Down
2 changes: 1 addition & 1 deletion tests/awesome-skills-update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

REPO_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
UPDATER="$REPO_ROOT/scripts/awesome-skills-update.sh"
Expand Down
2 changes: 1 addition & 1 deletion tests/bootstrap-manifest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

# A commit hook's repository/index overrides must not reach fixture Git or
# the linked worktrees created below.
Expand Down
2 changes: 1 addition & 1 deletion tests/bootstrap-windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

# Run the Windows bootstrap suite (tests/bootstrap.ps1: lib/bootstrap.ps1,
# doctor.ps1 and setup-host.ps1 against fixtures and shims) wherever pwsh
Expand Down
2 changes: 1 addition & 1 deletion tests/codex-config-sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

REPO_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
SYNC="$REPO_ROOT/common/codex/.local/bin/codex-config-sync"
Expand Down
2 changes: 1 addition & 1 deletion tests/coding-agent-kit-delivery.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

# How the coding-agent-kit submodule delivers the Codex and Claude launchers,
# libraries, completions and Claude helpers (docs/coding-agent-kit.md). The
Expand Down
2 changes: 1 addition & 1 deletion tests/config-sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

TEST_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
if [[ ! -f "$TEST_DIR/test_config_sync.py" ]]; then
Expand Down
2 changes: 1 addition & 1 deletion tests/doctor.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

REPO_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
REAL_GIT=$(command -v git) || {
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e-harness-windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

# Run the unit test of the native Windows end-to-end driver
# (tests/e2e-harness.ps1: tests/e2e/run.ps1 and tests/e2e/lib/*.ps1 against
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e-harness.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ set -euo pipefail
unset DOTFILES_AUTO_UPDATE DOTFILES_AUTO_STOW DOTFILES_HOST DOTFILES_DIR _DOTFILES_CHECKED \
DOTFILES_STOW_WITHOUT_OH_MY_ZSH DOTFILES_COLOR AWESOME_SKILLS_AUTO_UPDATE AWESOME_SKILLS_FORCE \
AWESOME_SKILLS_BG AWESOME_SKILLS_INSTALLER_URL AWESOME_SKILLS_REFRESH_DAYS _AWESOME_SKILLS_CHECKED \
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR
CODING_AGENT_KIT_CONFIG CODING_AGENT_KIT_COLOR CODING_AGENT_KIT_USAGE_FILE CODING_AGENT_KIT_TOKEN_ID XDG_STATE_HOME

REPO_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
E2E_DIR="$REPO_ROOT/tests/e2e"
Expand Down
Loading
Loading