CI validates the website source but never the committed taskuary/web — a bad commit ships a blank UI
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
- Domain
- build-system, ci-cd, frontend
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
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:
- A CI step that parses
taskuary/web/index.html, extracts everyassets/...reference, and fails if any referenced file is missing from the repo. - 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ldbumble/taskuary
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 58/100
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 68/100
-
bug enhancement
Difficulty 4/5 3-5 days Newbie friendliness 52/100
All issues in ldbumble/taskuary
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100