Commit ceb27a5
merge: integrate origin/main (33 commits incl. AUTH_ENABLED) into feat/agent-skills-runtime
Brings AUTH_ENABLED + Basic-auth-via-URL-credentials support, S3/Garage,
hardening tmpfs/skill-deps, slim CI, etc. into our skills feature branch.
Required for LibreChat dev compat (PR #12767 dropped X-API-Key from
uploadCodeEnvFile — see security-toolkit#96 for the corresponding LibreChat
workaround).
Conflicts resolved (5 zones in 4 files, all in src/services/sandbox/* +
src/services/programmatic.py, none in auth/middleware):
1. src/services/sandbox/executor.py (lang-with-/proc list):
COMBINED — keep ("java", "rs", "py", "python", "bash"). OURS gave /proc
to Python (legacy DOCX/PPTX/XLSX skill path), THEIRS gave it to bash
(LibreChat bash_tool migration). Both paths coexist on this fork until
skills are migrated to bash exclusively.
2. src/services/sandbox/executor.py (NODE_PATH):
THEIRS — use deps_root for consistency with PYTHONPATH/PIP_TARGET/GOPATH
already on this branch. /opt/skill-deps is auto-created at startup by
_startup_egress_proxy when ENABLE_SANDBOX_NETWORK=true (which we have).
3. src/services/sandbox/nsjail.py (seccomp bind syscall):
COMBINED — same logic as conflict 1: ("py", "python", "java", "bash")
are exempt from bind blocking, because LibreOffice (soffice) uses
AF_UNIX sockets between oosplash and soffice.bin, regardless of which
language invokes it. Variable renamed to seccomp_policy (THEIRS, more
explicit).
4. src/services/programmatic.py (PTC wrapper, /proc + tmpfs hardening):
COMBINED SELECTIVELY — keep OURS on /proc accessibility (PTC may invoke
LibreOffice for skills) AND take THEIRS on the tmpfs/skill-deps
hardening (BUG-007 + BUG-008): noexec,nosuid,nodev on /tmp, /var/tmp,
/run/lock, /var/lib/php/sessions; nosuid,nodev bind on skill-deps.
5. src/services/sandbox/pool.py (REPL pool wrapper, /proc + tmpfs):
COMBINED SELECTIVELY — same as conflict 4. Note: upstream comment
"REPL is Python-only, always safe to mask /proc" doesn't hold for this
fork because Python skills shell out to soffice which requires /proc.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>90 files changed
Lines changed: 5610 additions & 3389 deletions
File tree
- .github/workflows
- Reference
- docker
- docs
- src
- api
- config
- dependencies
- middleware
- models
- services
- execution
- sandbox
- utils
- tests
- functional
- integration
- unit
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
9 | 31 | | |
10 | 32 | | |
11 | 33 | | |
12 | 34 | | |
13 | 35 | | |
14 | 36 | | |
15 | 37 | | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
22 | 45 | | |
23 | 46 | | |
24 | 47 | | |
| |||
35 | 58 | | |
36 | 59 | | |
37 | 60 | | |
38 | | - | |
| 61 | + | |
39 | 62 | | |
40 | 63 | | |
41 | 64 | | |
| |||
0 commit comments