CI validates the website source but never the committed taskuary/web — a bad commit ships a blank UI

Open Beginner friendly
#9 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
github-actions, javascript, vite

Research direction

Start in .github/workflows/ci.yml by reading the website job and its existing npm ci and npm run build steps; inspect taskuary/web/index.html and the referenced assets. Add CI validation so every assets/... reference exists in the committed tree, then run the workflow checks and confirm missing assets cause failure.

Written by the indexing model from the issue text.

Description

bug

taskuary/web/ is committed on purpose (a pip install needs no Node), but CI never checks the committed copy — so a bad commit ships a blank UI to every pip user while the badge stays green.

Where

.github/workflows/ci.yml runs npm ci + npm run build in the website/ job. That proves the source can build. It never compares the result against what is committed in taskuary/web/, and the pytest job never loads the committed index.html.

How it breaks

Vite emits content-hashed filenames (assets/index-BgR6DGiz.js). Every UI change produces a new filename and orphans the old one, so a correct commit is always an add and a delete. A contributor who runs the build and commits with a path-scoped git add (or misses the deletion) leaves taskuary/web/index.html pointing at a JS file that is not in the repo. Result: the served page loads, requests a 404 asset, and renders nothing. Tests pass, the web job passes, the release is broken.

Suggested fix — cheap and deterministic:

  1. A CI step that parses taskuary/web/index.html, extracts every assets/... reference, and fails if any referenced file is missing from the repo.
  2. Optionally stronger: rebuild in CI and fail if taskuary/web/ differs from the committed tree (git diff --exit-code taskuary/web), which also catches "committed source but forgot to rebuild".

(1) alone prevents the blank-page class of failure and is a few lines of shell. Worth also asserting index.html is non-empty and that at least one .js and one .css are referenced.

Dominant language
Python
Stars
111
Forks
18
Avg merge
21h 1m
Merged PRs (30d)
15

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ldbumble/taskuary

All issues in ldbumble/taskuary

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.