Team/silverex. goboxd PR Stage 1 - #4
Conversation
…dating filename and flags
…un requests. add validation tests
…s and updated Docker image
…t. add test_logs doc for tracking progress
…st - compiled). had to increase rlimit_fsize and add tmpfsmount
…rides in execution handler (as per spec api)
…ity. add version_probe to language yaml
… and info endpoints. update docs
…ring resolution utilities. add test docs.
…t truncation, and orphaned directory cleanup.
… language defaults. modified tests accordingly.
…s to 6.6ms. prevents misuse as dos vector
…and security hardening docs
…flow, security model, and component mapping
…urce, not request body), enforce language validation, add build result status. add private corpus test suite (identified timeout bugs - fixed now)
- Poll /sys/fs/cgroup/NSJAIL.*/memory.peak during execution - Map bad_alloc/MemoryError/OOM stderr patterns to memory_exceeded - Require --cgroupns=host for host cgroup namespace access - initCgroups() enables memory+pids controllers at startup - memory_peak_kb now returns real RSS for normal runs - Document cgroup v2 mechanics in docs/cgroups_mem_tracking.md
…ia extended timeouts
…for observability
…de change rule". identify zig cache issue. add bonus languages with smoke test. update test_logs.md to ensure non-breaking changes
…to 4GB in sandbox configuration
…ner configuration for cgroup access
…ail-mounts Fix/raw execution and jail mounts
Evaluation SummaryTeam: pr4-silverex · Rank: 5 / 45 · Weighted score: 71.6 / 100
Checks:
Notes: framework Thanks for participating! Scores reflect evaluation against the spec. Reply here if you have questions. |
Are commits and improvements allowed before the in-person combined Stage 2/3 at Paradox, or is the current submission considered frozen until then? Also, will there be more detailed feedback shared regarding the technical/code quality/communication scoring breakdown, especially around SDLC practices or architectural decisions that affected evaluation? One more question: if we continue contributing in the open-source phase, are architecture-level improvements beyond the explicit spec (for example around security hardening, load distribution, edge-case handling, or operational behavior) viewed positively from a scoring/review perspective, or would staying strictly within the spec be preferred? Thanks again for organizing this. This has been a great learning opportunity. |
…figuration, and rename ts to typescript
Team
silverex - solo
Members
Member 1: Mainak Dasgupta
Framework
chi: lightweight router with no magic, clean middleware chaining, and a handler signature that composes directly with the semaphore-based concurrency layer without boilerplate.
Running locally
Clone the repo and ensure Docker is running.
make runbuilds the image and starts the container.make testruns unit tests,make integrationruns end-to-end tests against all 8 languages,make corpusruns the full adversarial test suite (50 cases),make secureverifies security mitigations, andmake loadbenchmarks at c=1/10/50/100. The container requires--privileged --cgroupns=hostfor nsjail and cgroup v2 memory tracking, both are set in the Makefile and docker-compose.yml.Languages supported
py3, cpp, c, bash, js, rust, java, verilog
Bonus languages registered and passing
/readyzsmoke probes: rust, go, kotlin, csharp, ruby, lua, ocaml, swift, zigSecurity holes closed (7/7)
internal/validate/validate.go:17:ValidateFilenamerejects path separators,.., leading dots, and absolute paths on all client-supplied filenames before any filesystem operationinternal/runner/runner.go:125: all process execution usesexec.CommandContextwith direct argv arrays; directory management usesos.MkdirTempandos.RemoveAll, nosh -canywhere in the codebaseinternal/validate/validate.go:38: per-languageflag_allowlistinlanguages.yaml, validated viafilepath.Matchglob matching; disallowed flags return 400disallowed_flaginternal/handler/run.go:96: 512KiB HTTP body viaMaxBytesReader, 256KiB source viaValidateRunRequest, 64KiB per-test stdin and expected viaValidateTest, 64KiB captured output viaio.LimitReaderwith[TRUNCATED]markerinternal/runner/runner.go:52:os.MkdirTempguarantees unique per-request working directories; no counter, no retry, no reuseinternal/runner/runner.go:216: stdout and stderr each capped at 64KiB viaio.LimitReader; remainder drained toio.Discardto prevent pipe deadlock on chatty programscmd/goboxd/main.go:36: startup sweep removes orphaned directories older than 10 minutes; all per-request cleanup viadefer os.RemoveAllscoped to the run goroutineBonus: memory tracking
memory_peak_kbis populated via cgroup v2 polling. The runner starts a goroutine beforecmd.Start()that polls/sys/fs/cgroup/NSJAIL.*/memory.peakevery 10ms during execution. Requires--cgroupns=hostso the container sees the host cgroup hierarchy. OOM conditions (bad_alloc,MemoryError) are mapped tomemory_exceeded. Documented indocs/cgroups_mem_tracking.md.Benchmarks
docs/benchmarks.md