Skip to content

fix(ci): Lint can start again; stable global test and local lint; a clear fleet message - #74

Merged
nabil-becker merged 1 commit into
mainfrom
fix/ci-stability/1
Oct 24, 2026
Merged

nabil-becker merged 1 commit into
mainfrom
fix/ci-stability/1

Conversation

@nabil-becker

Copy link
Copy Markdown
Owner

The Operator asked for everything to be stable before the next tests. Found on main:

  1. The Lint workflow has not started since ci: lint runs inside the devcontainer, with pinned tool versions #69. Every run is a startup_failure: the repo's Actions allowlist (Set-RepoGovernance.ps1) allows only GitHub-owned actions and devcontainers/action@*, and ci: lint runs inside the devcontainer, with pinned tool versions #69 added devcontainers/ci. feat(claude-code): claude-host resumes the live session after /clear; claude-fleet (claude-code 1.5.0, devcontainer-cli 1.9.0) #70 to feat(ssh-agent): dedicated keys and one-command rotation (ssh-agent 1.1.0, devcontainer-cli 1.10.0) #73 merged without a CI lint run.
    • This PR adds devcontainers/ci@* to the script.
    • It takes effect only when the Operator runs task repo:govern (or allows devcontainers/ci@* under Settings → Actions). An agent's token cannot change repository settings.
  2. main's global Feature test failed after feat(ssh-agent): dedicated keys and one-command rotation (ssh-agent 1.1.0, devcontainer-cli 1.10.0) #73. The registry check counted lines mentioning 16 task names, and feat(ssh-agent): dedicated keys and one-command rotation (ssh-agent 1.1.0, devcontainer-cli 1.10.0) #73's ssh-agent descriptions mention ssh-agent:check. It now counts task names at line start only.
  3. Local task lint failed:
    • yamllint walked the git-ignored material.ignore/ folder of old pipelines; .yamllint now ignores *.ignore/;
    • the ssh-agent unit test hung on the inherited open stdin until its 30 s timeout; it now closes stdin.
  4. task devcontainer:claude:fleet without SESSIONS now says what SESSIONS is and where to set it, instead of missing required variables: SESSIONS.

Checks: locally task lint and task devhost:verify pass. This PR's own Lint run will start only after the allowlist change.

Refs: ci-stability

🤖 Generated with Claude Code

…lear fleet message

- Set-RepoGovernance allows devcontainers/ci@*: since #69 every Lint run was a
  startup_failure because the Actions allowlist held only devcontainers/action.
  Takes effect when the Operator runs `task repo:govern`.
- test/_global: the registry check counts task names at line start, not
  descriptions that mention them (#73's ssh-agent descs broke the count on main).
- .yamllint ignores *.ignore/ folders (git-ignored local material broke local lint).
- the ssh-agent unit test closes its stdin: an inherited open pipe made the
  failing-verify cases wait for the 30 s timeout under a local `task lint`.
- devcontainer:claude:fleet: a precondition says what SESSIONS is and where to
  set it, instead of Task's bare "missing required variables".

Refs: ci-stability

Co-Authored-By: Claude Opus 5.5 <claude-opus-5-5@noreply.invalid>
Signed-off-by: devhost agent <devhost-agent@noreply.invalid>
@nabil-becker
nabil-becker merged commit f9f4ca4 into main Oct 24, 2026
68 checks passed
@nabil-becker
nabil-becker deleted the fix/ci-stability/1 branch October 24, 2026 12:45
nabil-becker added a commit that referenced this pull request Oct 24, 2026
…uplicate Feature id (#77)

Found and fixed by a host session on the workstation, after `task
dc:rebuild` and `task dc:up` failed with ENOENT resolving
`./features/devhost`. It was carried to main here.

## Cause
#62 moved devhost from `src/` to `local-features/`. On the Windows disk,
git left `src/devhost/` behind as empty folders plus ignored
`__pycache__` files, because git does not delete ignored files.
`features:stage` copied that empty folder first, and PowerShell's
`Copy-Item` then nested the real Feature inside it.

## Fix
- `.devcontainer/stage-features.ps1` replaces the Windows one-liner. It
is the twin of `stage-features.sh`.
- Both skip a folder without `devcontainer-feature.json`, with a
warning.
- Both fail when one id exists in both `src/` and `local-features/`.

## Checks
- Locally: `task lint` and `task devhost:verify` pass after merging
main.
- Simulated here: an empty `src/ghost/` was skipped with the warning,
and a duplicate `git` id was refused.

## Records
- `stage-skips-leftover-dirs` and `rebuild-repair-cause` are done.
- `lint-ignore-local-folders` is ticked as fixed by #74.
- The workstation session's ledger entry is appended after main's
entries.

Refs: stage-skips-leftover-dirs, rebuild-repair-cause

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: devhost agent <devhost-agent@noreply.invalid>
Co-authored-by: devhost agent <devhost-agent@noreply.invalid>
Co-authored-by: Claude Fable 5.1 <claude-fable-5-1@noreply.invalid>
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