Skip to content
This repository was archived by the owner on Nov 22, 2025. It is now read-only.

fix: Claude installer timeout and workspace-structure installation#13

Merged
pacphi merged 2 commits into
mainfrom
stability
Nov 8, 2025
Merged

fix: Claude installer timeout and workspace-structure installation#13
pacphi merged 2 commits into
mainfrom
stability

Conversation

@pacphi

@pacphi pacphi commented Nov 8, 2025

Copy link
Copy Markdown
Owner

Summary

This PR contains two critical fixes for CI/deployment failures:

Fix 1: Claude Extension Installer Timeout

Problem: Claude Code installer from https://claude.ai/install.sh was timing out after 15 minutes in CI, causing extension tests to fail.

Solution:

  • Added explicit 5-minute timeout to install() and upgrade() functions
  • Used set -o pipefail to catch curl failures
  • Added detailed error messages for timeout vs other failures

Commit: d34ea25

Fix 2: Workspace Structure Installation Skipping

Problem: The workspace-structure extension's status() function incorrectly reported "INSTALLED" if ANY required directory existed. Since /workspace/scripts exists in the Docker image, it skipped creating the other 7 directories, causing deployment verification to fail with "Workspace structure missing".

Solution:

  • Changed status() to require ALL 8 directories (not just any)
  • Now returns "NOT INSTALLED" with count if directories are missing
  • Ensures complete installation even if some directories pre-exist from Docker image

Commit: c2c7be1

Testing

  • Claude installer timeout fix tested (prevents 15-minute hangs)
  • Workspace structure fix verified in logic
  • Self-service deploy needs retest with updated Docker image

Related Issues

pacphi and others added 2 commits November 7, 2025 16:52
The Claude Code installer (curl | bash from claude.ai) was timing out
after 15 minutes in CI environments, causing extension tests to fail.

Changes:
- Add explicit 300-second (5-minute) timeout to install() function
- Add explicit 300-second (5-minute) timeout to upgrade() function
- Use 'set -o pipefail' to catch curl failures in the pipeline
- Add detailed error messages distinguishing timeout (124) from other failures
- Provide better diagnostics for non-interactive installation issues

This prevents the CI workflow from hanging indefinitely when the external
installer encounters issues or waits for user input.

Fixes: https://github.com/pacphi/sindri/actions/runs/19181943511/job/54840985241

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

Co-Authored-By: Claude <noreply@anthropic.com>
The status() function was incorrectly reporting "INSTALLED" if ANY
required directory existed. This caused false positives when only
some directories were present (e.g., 'scripts' from Docker image).

Problem:
- Extension manager checks status() to decide if installation is needed
- status() returned success if dir_count > 0 (any directory exists)
- Since /workspace/scripts exists in Docker image, dir_count > 0
- Extension was skipped, leaving other directories (projects, config,
  agents, context, bin, backups, docs) uncreated
- Self-service deploy failed with "Workspace structure missing"

Solution:
- Changed status() to require ALL directories (dir_count == total_dirs)
- Now returns "NOT INSTALLED" with count if any directory is missing
- This ensures complete installation even if some directories pre-exist

Related issue: Self-Service Deploy workflow failure
- https://github.com/pacphi/sindri/actions/runs/19185349031/job/54850860413

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

Co-Authored-By: Claude <noreply@anthropic.com>
@pacphi pacphi merged commit f38550b into main Nov 8, 2025
4 of 5 checks passed
@pacphi pacphi deleted the stability branch November 8, 2025 15:37
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant