8 Commits

Author SHA1 Message Date
47303d6812 perf: skip render of off-screen log cells via content-visibility
With logs up to ~25 000 entries, eagerly painting every grid cell
caused multi-second freezes on page load. Add content-visibility:
auto to the line-number and content cells so the browser defers
their layout / paint until they scroll into view.

The rule lives on the cells (not on .entry itself) because .entry
uses display: contents and produces no box of its own.
contain-intrinsic-size: auto 1.5em lets the browser remember
measured heights after first paint and uses ~one line tall as the
initial placeholder for never-seen cells.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:39:01 +00:00
415324f340 feat: apply smart fold automatically on page load
Logs with errors now open already smart-folded — every entry within
±25 of an error stays visible, gaps collapse into draggable bars.
Folds can only be expanded individually via per-bar click or
drag; the previous "toggle to unfold everything" path is gone. The
header error-count chip becomes informational only (cursor and
pointer-events stripped so it no longer reads as interactive).

Removed the dead toggleErrors / uncollapseAllErrors / "toggled"
state plumbing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:31:31 +00:00
4d0d98c604 feat: smart fold around errors with drag-to-reveal handle
Replaces the all-or-nothing "Errors only" collapse with a contextual
fold: ±25 entries around every error stay visible, and runs of
non-error entries with no nearby error collapse into a fold bar.

Each fold bar is draggable. Vertical pointer drag on the bar reveals
or re-hides lines from the top of the hidden range, ~6 px per line.
A click without drag reveals the next 25 lines. When the run is
fully revealed, the bar removes itself. Buttons / scroll behaviour
are unchanged; the existing "X errors" toggle in the header is the
entry point and still un-collapses everything on second click.

Visual: foldable bars get a faint horizontal hatch (suggesting
compressed content), an ns-resize cursor, and a hover/dragging
state that intensifies the hatch toward --accent. The grip-lines
icon flanks the line-count to call out the affordance.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:27:59 +00:00
0282ab594e fix: buffer large pastes outside the textarea to prevent UI freeze
Pasting (or drag-loading, or file-uploading) several MB of text into
the <textarea> would lock up the browser for seconds while it laid
out millions of characters. The bottleneck is the textarea itself,
not the filter pipeline (filters only run on Save).

Hold above-threshold (256 KB) content in a JS-side `bufferedContent`
variable and render only the first 50 lines + a banner into the
textarea. The Save path uses `bufferedContent` when set, so the
upload sees the full content. The textarea becomes read-only while
the buffer is active; user-typed input invalidates the buffer
automatically (the textarea is the source of truth in normal mode).

A new `loadContent(text)` helper is the single entry point: it
chooses textarea vs. buffer based on length. All call sites
(clipboard read, paste-event for text, file load, text drop) route
through it. Threshold is 256 KB (above which textarea rendering
visibly stutters); preview is 50 lines (enough to recognise the log
without choking the renderer).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:18:31 +00:00
6724320c9a chore: replace mclogs/Minecraft branding strings with iblogs equivalents
example.config.json: legal contact, imprint, privacy URLs swapped to
indifferentketchup.com placeholders; abuse address changed to
samkintop@gmail.com (matches the codex package's author entry);
frontend.name placeholder changed from "mclo.gs" to "iblogs.example".

UI templates: tagline replaced with "Built for game-server logs"
(header.php), meta description rewritten to drop Minecraft & Hytale
framing (start.php), api-docs.php's example "Minecraft version" labels
updated to "Engine version" with a 42.16.3 sample value matching the
codex PZ EngineVersionInformation output shape.

CSS comment "Minecraft Format Colors" tagged as legacy mclogs syntax
palette (the underlying color classes survive untouched — they may
still be useful for highlighting log content).

Footer attribution credit linking back to upstream mclogs and Aternos
is intentionally preserved per the manual-fork rules.

Frontend palette (#5cb85c green accent, etc.) and short-domain choice
remain placeholder values; revisit when iblogs branding is finalised.
2026-05-01 22:13:49 +00:00
8f0b067e38 chore: rename mclogs filenames, asset paths, and runtime identifiers
Two file renames (docker/mclogs.ini -> docker/iblogs.ini,
web/public/css/mclogs.css -> web/public/css/iblogs.css) plus the
internal references that pointed at them (Dockerfile COPY directive,
the linux user name in the container).

Also catches the runtime identifier renames: env-var prefix MCLOGS_*
-> IBLOGS_* (compose files), browser cookie name MCLOGS_SETTINGS ->
IBLOGS_SETTINGS (web/public/js/log.js), production image tag
ghcr.io/aternosorg/mclogs:2 -> ghcr.io/indifferentketchup/iblogs:2,
and the README walk-through with the new branding.

example.config.json branding strings (legal contact, mclo.gs frontend
name) and visible UI text (taglines, meta descriptions) are deferred
to a separate branding commit.
2026-05-01 22:11:46 +00:00
4aeebf3732 refactor: rename Aternos\Mclogs to IndifferentKetchup\Iblogs
Bulk substitution across all PHP files in src/, build.php, worker.php,
and web/frontend/. Updates composer.json's package name and PSR-4
autoload root accordingly. Casing matches the existing
IndifferentKetchup\Codex package's namespace convention (capital K).

Strictly a namespace rename. Aternos\Codex\* imports remain in place;
those get re-pointed in a follow-up commit when the codex Composer
dependency itself is swapped. Filename renames (docker/mclogs.ini,
web/public/css/mclogs.css), README walk-through, env-var prefix changes,
and visible-text branding land in subsequent commits.
2026-05-01 22:11:13 +00:00
Sam Kintop
bf3870ccca all
Some checks failed
Publish Docker Image / build-and-push (push) Failing after 2m13s
2026-04-30 09:44:02 -05:00