-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitattributes
More file actions
22 lines (22 loc) · 1.28 KB
/
Copy path.gitattributes
File metadata and controls
22 lines (22 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# The built dashboard is a GENERATED artifact that is committed on purpose —
# that is what makes `pip install taskops` serve a dashboard with no node
# toolchain (CLAUDE.md, "The dashboard is built, not hand-written"). Its source
# is `ui/`; `node build.mjs` from there writes these three files.
#
# `-merge` uses git's BUILT-IN refusal to text-merge a file: no `git config`,
# no custom driver, nothing a fresh clone has to install. On a merge git leaves
# our copy whole (never a conflict marker inside minified JavaScript) and marks
# the path conflicted. The resolution is not a hunk, it is a rebuild:
#
# cd ui && node build.mjs && git add ../src/taskops/ui && git commit --no-edit
#
# Measured, 2026-08-08: without this, two branches that changed DIFFERENT
# regions of the bundle auto-merge SILENTLY into a file no build ever produced
# — a bundle that is neither side's. That is the failure this line exists to
# make loud. See docs/fan-out.md §11.
#
# `-diff` keeps a 190kb single-purpose artifact out of every diff and every
# `git log -p`; the rebuild is the change, the bytes are not reviewable.
src/taskops/ui/app.js -diff -merge linguist-generated=true
src/taskops/ui/style.css -diff -merge linguist-generated=true
src/taskops/ui/index.html -diff -merge linguist-generated=true