HarperFast / HarperFast/harper

deploy_component: validate declared entry points survived extraction

Open
#1,719 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
89
Forks
10
Avg merge
2d 6h
Merged PRs (30d)
200

Description

## Context
harper#1718 fixes the root cause of `harper deploy` silently shipping a truncated tarball (a dangling symlink made tar-fs's dereferenced walk finalize the archive early with no error — see that PR / DESIGN.md for the full mechanism).

That fix closes the specific truncation cause, and adds a CLI-side warning when packaging has to skip a dangling symlink. But `deploy_component` still never validates, post-extract, that the declared entry points (`jsResource`, `graphqlSchema`, etc.) actually exist on disk — so any *other* future cause of a truncated/incomplete extraction would still report "Successfully deployed" silently.

This gap matters most for the **server-side path**: `package_component`/`deploy_component` initiated on the server (not via the CLI) has no equivalent warning surface at all — the CLI's stderr message is the only place omitted content becomes visible today.

## Proposed fix
After extraction, validate that the component's declared `jsResource`/`graphqlSchema` globs (and any other declared entry points) still resolve to real files, and fail the deploy loudly if not — rather than reporting success on an incomplete install.

Cross-model review (Gemini + Harper-domain adjudication) on #1718 recommended this as a follow-up rather than folding it into that PR, since it's a distinct, larger change (server-side, config-aware, post-extract) orthogonal to the packaging root cause.

Contributor guide

Open the contributing guide

Research direction

Read the context in #1718 and DESIGN.md, then trace the server-side package_component/deploy_component flow through extraction. Identify where declared jsResource, graphqlSchema, and other entry-point globs are available for post-extract validation. Done means incomplete extraction causes deploy to fail loudly instead of reporting success.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, nodejs
Domain
backend, cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.