4 Commits

Author SHA1 Message Date
323086471d fix(pastebin): persist bio via Flask backend and load on settings page
Bio updates were sent directly to DBAL which returned 403 (user JWT lacks
admin privileges). Moved profile read/write through new Flask endpoints
(GET/PUT /api/profile) that use the DBAL admin token server-side.

Also fixed ProfileSettingsCard to fetch and populate the existing bio on
mount instead of always starting with an empty string.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 21:09:42 +00:00
8c454abf74 fix(pastebin): unwrap DBAL envelope in /api/auth/me so username is returned
The /api/auth/me endpoint read `username` from the top-level DBAL response,
but DBAL wraps records in {data: {...}, success: bool}. This caused the
avatar to show a blank circle and the profile menu to display "@" with no
username. Now correctly reads from `body.data.username`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 20:39:52 +00:00
1c020824f1 fix(pastebin): replace python3 file writer with POSIX shell for all runners
The code runner used `python3 -c` to decode FILES_PAYLOAD inside every
container, but 6+ runner images (node, golang, bash, ruby, php, perl)
don't ship python3 — so JS/Go/Bash/Ruby/PHP/Perl snippets all failed.

Replaced with a pure POSIX `base64 -d | awk` pipeline that works on
every image. Also fixes:
- pids_limit 64→256 (Go compiler crashed spawning threads)
- Per-user configurable runTimeout via settings panel (5–300s)
- Default run timeout 10→30s, server-side cap at 300s
- Frontend AbortSignal raised to 310s to match max timeout

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 20:34:52 +00:00
862cc29457 various changes 2026-03-09 22:30:41 +00:00