fix: CodeGit looked like an empty black box - hardcoded panel height + cache
Reported as "why can't i see anything from codegit its just a black box".
NOT a codegit bug. Verified first, exhaustively, through the authenticated API:
overview 200 940 bytes
log 200 79596 bytes (full commit history)
transfer 200 1460 bytes
config 200 1174 bytes
no JS errors in the console; every DOM helper codegit calls exists.
ROOT CAUSE 1 - a generic CSS rule hardcodes a height
theme/modules/common/_panel.scss -> theme/main.min.css:
panel { ... height: 500px; ... }
That forces EVERY modal panel to a fixed 500px box. Measured live:
#dialog 404px (clamped by max-height:70vh + overflow-y:auto)
#codegit panel 500px, while its content is only 119px
toolbar ("Branch") top 620 vs dialog bottom 490 -> OUTSIDE the modal
So ~380px of the dialog was empty dead space and the Branch line rendered below the
modal, invisible. Fixed to height:auto with max-height:58vh (long content still scrolls):
before: panel 500 -> toolbar top 620, dialog bottom 490 (outside)
after: panel 136 -> toolbar top 256, dialog bottom 279 (inside)
_panel.scss updated too so the source does not contradict the shipped CSS.
ROOT CAUSE 2 - the fix was invisible because of the browser cache
Atheos serves theme/main.min.css and the generated bundles from stable URLs with no cache
headers, so browsers legitimately reuse their cached copy - which is why the first attempt
appeared to do nothing. nginx now sends Cache-Control: no-cache, must-revalidate for
*.css/*.js: caching still works (cheap 304s) but changes are always picked up.
Adds
scripts/fix-panel-layout.sh idempotent re-apply for both fixes (lost on update-atheos)
docs/known-issues.md §4, §5 both findings, with the measurements
Tests (44 passed, 1 failed - the failure is branch protection, a genuine open item)
+ panel must not be fixed at 500px
+ theme CSS must send Cache-Control: no-cache
This commit is contained in:
@@ -106,11 +106,31 @@ for d in mysqld mariadbd postgres redis-server; do
|
||||
if command -v "$d" >/dev/null 2>&1; then bad "$d present - unexpected"; else ok "$d absent (correct)"; fi
|
||||
done
|
||||
|
||||
echo
|
||||
echo "=============================================================="
|
||||
echo "REGRESSION: panel has no hardcoded height (empty-modal bug)"
|
||||
echo "=============================================================="
|
||||
# panel { height:500px } forced every modal panel to a fixed box: short content left a large
|
||||
# empty black region and anything after the panel (codegit's Branch toolbar) was pushed outside
|
||||
# the modal. docs/known-issues.md §4. Fails loudly if lost to an update.
|
||||
PNL=$(grep -oE '(^|[;}])panel\{[^}]*\}' /var/www/atheos/theme/main.min.css 2>/dev/null | head -1)
|
||||
if [ -z "$PNL" ]; then
|
||||
bad "could not read the panel rule from theme/main.min.css"
|
||||
elif echo "$PNL" | grep -q 'height:500px'; then
|
||||
bad "panel is fixed at 500px - re-run scripts/fix-panel-layout.sh"
|
||||
else
|
||||
ok "panel is content-sized ($(echo "$PNL" | grep -oE 'height:[^;]*' | head -1))"
|
||||
fi
|
||||
# and the CSS/JS cache header must be present, or fixes stay invisible
|
||||
if wget -qO /dev/null --server-response --header='Host: 127.0.0.1' http://127.0.0.1/theme/main.min.css 2>&1 | grep -qi 'Cache-Control.*no-cache'; then
|
||||
ok "theme CSS sends Cache-Control: no-cache (changes are picked up)"
|
||||
else
|
||||
bad "theme CSS has no Cache-Control - a CSS fix can stay hidden behind the browser cache"
|
||||
fi
|
||||
echo
|
||||
echo "=============================================================="
|
||||
echo "REGRESSION: rDelete works (GLOB_BRACE is glibc-only; musl lacks it)"
|
||||
echo "=============================================================="
|
||||
# traits/helpers.php::rDelete() used GLOB_BRACE, which is undefined under musl -> PHP 8 fatal.
|
||||
# That broke deleting ANY file/folder in the editor AND removing a market plugin (the UI
|
||||
# would spin forever because the fatal killed the response before Common::send()).
|
||||
# docs/known-issues.md §1. This test fails loudly if the patch is lost (e.g. by an update).
|
||||
|
||||
Reference in New Issue
Block a user