6 Commits

Author SHA1 Message Date
rw
9d4244891e fix(ci,deps): correct action versions and patch security vulnerabilities
GitHub Actions:
- checkout@v4 → @v6 (v6 is current, v4 was wrong downgrade)
- upload-artifact@v4 → @v7 (latest), @v6 → @v7 in dbal-tests.yml
- download-artifact@v4 → @v8 (latest)
- cache@v6 → @v5 (v6 does not exist, v5 is latest)
- codeql-action@v4 confirmed correct

Security (Dependabot):
- next 16.1.5 → 16.1.7 (dockerterminal): HTTP smuggling, CSRF, DoS fixes
- PyJWT 2.10.1 → 2.12.0 (5 requirements.txt): unknown crit header bypass
- CairoSVG 2.8.2 → 2.9.0 (pcbgenerator): recursive <use> ReDoS
- postgres overrides: add hono >=4.12.4, @hono/node-server >=1.19.10,
  rollup >=4.59.0, serialize-javascript >=7.0.3 for transitive vulns

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 20:13:54 +00:00
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
33e669cb1c fix(deployment): resolve pip ResolutionImpossible in base-pip-deps build
Align PyJWT (2.8.0→2.10.1) and requests (2.32.5→2.32.4) in pastebin
backend to match all other services. Replace futile retry loop with a
merge-and-deduplicate strategy that gives pip a single consistent set
of constraints.

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