Skip to content

[bug]: asc web-server serves 404 for all routes when installed via Homebrew (missing static files) #8

@marcusquinn

Description

@marcusquinn

What happened?

After installing via brew install tddworks/tap/asccli, running asc web-server --port 8420 starts the Node.js server successfully, but all web app routes (/command-center/, /console/) return 404.

The server extracts only server.js to a temp directory (e.g., /private/var/folders/.../T/asc-web-server/server.js), but the web app static files (command-center/, console/, shared/) are not extracted alongside it. The server.js file expects these directories to exist in __dirname (line 34: const APPS_DIR = __dirname), but they're missing.

Workaround: Sparse-clone the web app files from GitHub and symlink them into the temp directory:

git clone --depth 1 --filter=blob:none --sparse https://github.com/tddworks/asc-cli.git ~/.asc/web
git -C ~/.asc/web sparse-checkout set apps/asc-web

TEMP_DIR=$(find /private/var/folders /tmp -name "server.js" -path "*/asc-web-server/*" -exec dirname {} \; 2>/dev/null | head -1)
ln -sf ~/.asc/web/apps/asc-web/command-center "$TEMP_DIR/command-center"
ln -sf ~/.asc/web/apps/asc-web/console "$TEMP_DIR/console"
ln -sf ~/.asc/web/apps/asc-web/shared "$TEMP_DIR/shared"

After symlinking, all routes serve correctly.

What did you expect?

asc web-server should serve the Command Center and Console web apps out of the box after a Homebrew install, without needing to clone files separately.

Steps to reproduce

brew install tddworks/tap/asccli
asc web-server --port 8420 &
sleep 3
curl -s -o /dev/null -w "%{http_code}" http://localhost:8420/command-center/
# Returns: 404

Environment

  • asc version: 0.1.56
  • macOS version: 15.x (Apple Silicon)
  • Install method: brew (brew install tddworks/tap/asccli)
  • Node.js: v25.6.0

The issue appears to be in the Swift EmbedServerJS plugin — it embeds server.js but not the sibling web app directories (command-center/, console/, shared/) into the binary. When building from source with swift run asc web-server, the files are likely resolved from the source tree, so this only affects the Homebrew distribution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions