Kronecker
|
1dd6d1f971
|
feat(sandbox): add immutable Python and Java execution profiles
|
2026-10-09 17:02:27 +08:00 |
|
Kronecker
|
53caafc157
|
feat(coordinator): dispatch versioned runtime leases and reports
|
2026-10-09 15:18:08 +08:00 |
|
Kronecker
|
4b8f255180
|
feat(judging): persist immutable per-language problem configurations
|
2026-10-09 14:53:09 +08:00 |
|
Kronecker
|
a5a7e40308
|
feat(contracts): add versioned multi-runtime judging contracts
|
2026-10-09 14:15:24 +08:00 |
|
Kronecker
|
81f8dc3204
|
docs(platform): describe controlled judging startup and recovery
|
2026-10-09 10:06:17 +08:00 |
|
Kronecker
|
3e44779578
|
fix(frontend): ignore expired responses from prior sessions
|
2026-10-09 09:55:11 +08:00 |
|
Kronecker
|
fb1b161c0d
|
feat(platform): connect owned submissions and real browser flows
|
2026-10-09 09:30:12 +08:00 |
|
Kronecker
|
19a071573b
|
feat(worker): consume durable jobs with fenced execution and recovery
|
2026-10-09 08:38:20 +08:00 |
|
Kronecker
|
76b565cce8
|
fix(contracts): reject unfulfillable output capture budgets
|
2026-10-09 08:25:39 +08:00 |
|
Kronecker
|
b7e9111254
|
fix(messaging): suppress credential-bearing transport logs
|
2026-10-09 07:55:15 +08:00 |
|
Kronecker
|
f838008c71
|
feat(coordinator): persist fenced execution authority and atomic results
|
2026-10-09 07:15:24 +08:00 |
|
Kronecker
|
38738122b3
|
feat(messaging): deliver durable outbox events with publisher confirms
|
2026-10-09 06:59:13 +08:00 |
|
Kronecker
|
75d74908e0
|
feat(submissions): create durable queued evaluations idempotently
|
2026-10-09 06:31:15 +08:00 |
|
Kronecker
|
8a01081cc9
|
feat(judge): compile once and run isolated points through helper factory
|
2026-10-09 04:12:22 +08:00 |
|
Kronecker
|
93fb41c608
|
feat(engine): judge immutable submissions through bounded execution ports
|
2026-10-09 03:34:04 +08:00 |
|
Kronecker
|
996dbc5144
|
feat(problems): publish immutable versions and fence artifact access
|
2026-10-09 01:51:13 +08:00 |
|
Kronecker
|
ff60136f8d
|
feat(identity): add bounded login and revocable sessions
|
2026-10-09 01:20:37 +08:00 |
|
Kronecker
|
f4bf218081
|
feat(database): add judging schema and separate write roles
|
2026-10-09 01:09:34 +08:00 |
|
Kronecker
|
df52446dac
|
feat(contracts): validate fenced judging jobs and bounded results
|
2026-10-09 00:43:17 +08:00 |
|
Kronecker
|
ea0bc2b578
|
feat(worker): inject engine port for authenticated sandbox execution
|
2026-10-08 17:28:26 +08:00 |
|
Kronecker
|
ee6371f269
|
feat(sandbox): enable verified ordinary execution entry
|
2026-10-08 17:00:13 +08:00 |
|
Kronecker
|
fc61e9d053
|
test(sandbox): verify repeated restart and failed capture lifecycle
|
2026-10-08 13:52:01 +08:00 |
|
Kronecker
|
32d94f3a66
|
feat(sandbox): recover service-owned tasks after supervisor restart
|
2026-10-08 13:46:02 +08:00 |
|
Kronecker
|
22cc427da9
|
test(sandbox): validate full isolation against live peer tasks
|
2026-10-08 10:27:32 +08:00 |
|
Kronecker
|
ddf1e0ca68
|
test(sandbox): verify complete user filesystem and descriptor boundaries
|
2026-10-08 10:12:49 +08:00 |
|
Kronecker
|
b5db44ba16
|
feat(sandbox): enforce trusted process event budgets and verify resource limits
|
2026-10-08 07:19:01 +08:00 |
|
Kronecker
|
057c02f39d
|
test(sandbox): verify complete native and compiler task workflows
|
2026-10-08 07:12:11 +08:00 |
|
Kronecker
|
f9789ea4c4
|
fix(sandbox): unwind every prepared owner before releasing resources
|
2026-10-08 04:49:02 +08:00 |
|
Kronecker
|
2e4d9d4ea2
|
feat(sandbox): supervise bounded root execution and final teardown
|
2026-10-08 04:38:08 +08:00 |
|
Kronecker
|
62b08fea5b
|
feat(sandbox): apply finite inherited resource limits before identity
|
2026-10-08 01:37:06 +08:00 |
|
Kronecker
|
4c7adda719
|
feat(sandbox): supervise aggregate CPU and monotonic wall budgets
|
2026-10-08 01:24:56 +08:00 |
|
Kronecker
|
cc6ee1bfa7
|
feat(sandbox): transport bounded stdio and close inherited user descriptors
|
2026-10-07 22:49:25 +08:00 |
|
Kronecker
|
89da9ffd9f
|
feat(sandbox): reap namespace descendants and cancel via init lifecycle
|
2026-10-07 22:28:13 +08:00 |
|
Kronecker
|
03eaab719e
|
feat(sandbox): restrict dangerous syscalls and verify GNU language profiles
|
2026-10-07 19:31:24 +08:00 |
|
Kronecker
|
9bb27f2e02
|
feat(sandbox): install profile seccomp with ABI and inheritance checks
|
2026-10-07 19:16:20 +08:00 |
|
Kronecker
|
46714bd9ea
|
feat(sandbox): lease task identities and drop initialization privileges
|
2026-10-07 18:22:58 +08:00 |
|
Kronecker
|
329c9222a3
|
feat(sandbox): bind readonly inputs through authenticated capabilities
|
2026-10-07 17:57:10 +08:00 |
|
Kronecker
|
9a2b1c071f
|
feat(sandbox): snapshot artifacts through bounded file capabilities
|
2026-10-07 16:19:05 +08:00 |
|
Kronecker
|
2b5e79dd39
|
feat(sandbox): restrict proc and devices in private roots
|
2026-10-07 13:21:37 +08:00 |
|
Kronecker
|
0f68eb5fb0
|
feat(sandbox): build private read-only roots with pivot_root
|
2026-10-07 10:02:21 +08:00 |
|
Kronecker
|
f22308080f
|
feat(sandbox): initialize isolated namespaces through gated helpers
|
2026-10-07 04:16:11 +08:00 |
|
Kronecker
|
1a91c2e0f6
|
feat(sandbox): gate target startup with verified task cgroups
|
2026-10-07 01:40:32 +08:00 |
|
Kronecker
|
605785edee
|
test(sandbox): allow launcher checks in independent VMs
|
2026-10-07 01:09:50 +08:00 |
|
Kronecker
|
08db00b56e
|
feat(sandbox): add bounded standalone launcher control
|
2026-10-06 22:04:29 +08:00 |
|
Kronecker
|
957135a112
|
feat(sandbox): enforce launcher lifecycle ordering
|
2026-10-06 11:02:55 +08:00 |
|
Kronecker
|
1f45266517
|
feat(sandbox): define runtime policy and preflight refusals
|
2026-10-06 03:58:19 +08:00 |
|
Kronecker
|
ee1f43a4cb
|
feat(sandbox): model execution outcomes and limit attribution
|
2026-10-06 01:00:04 +08:00 |
|
Kronecker
|
7ef77dfb34
|
feat(sandbox): validate bounded local execution specifications
|
2026-10-05 22:04:59 +08:00 |
|
Kronecker
|
8b8828d136
|
chore(merge): integrate workspace and frontend prototype
合并审阅 note(2026-10-05)
合并范围
- chore/workspace-bootstrap:b5b286c44f6a1456bef1db4ab904cecb92ff15a3。
- feat/frontend-pages:f108e88c47e6d604184d8a34dfd39be06762e159。
- 前端分支已包含工程骨架提交;一次合并保留两个分支的原有历史。
审阅结论
- 工程骨架与前端原型可以合入 main。
- 平台后端按业务域、Runtime、基础设施和后台进程划分;Rust 判题工程按契约、协调器、Worker、引擎和沙箱划分。
- 前端包含练习、比赛、训练、提交、账号和社区页面原型,以及独立入口的管理端;预览数据与未实现能力在界面中明确标记。
- 已修复编辑后立即刷新导致最后一段草稿丢失的问题(f108e88):页面隐藏、离开和 Vue scope 销毁时保存待写入内容,同时保留输入防抖和存储异常处理。
验证结果
- 本次完整 make check 通过:架构边界、Python/Rust 契约、Ruff、Rust fmt/clippy、前端 OpenAPI 类型、ESLint、Prettier、vue-tsc、生产构建及 Docker Compose 配置。
- Python 测试 7 项、Rust 集成测试 2 项、前端草稿回归测试 7 项全部通过。
- 前序浏览器验证覆盖桌面及移动布局、独立管理端入口、真实健康接口、编辑器 Worker;修复后已验证立即刷新可恢复最新草稿。
后续工作
- 编辑器页面生产 JS chunk 约 3,005.41 kB(gzip 785.90 kB),构建仍有包体告警,后续优化拆包和加载。
- 业务写入、认证和实际判题能力仍处于工程骨架阶段;沙箱继续拒绝未经验证隔离的执行。
|
2026-10-05 18:29:40 +08:00 |
|
Kronecker
|
f108e88c47
|
fix(frontend): save pending code drafts before page exit
|
2026-10-05 15:26:41 +08:00 |
|