Kronecker
6e14b5abf8
feat(core): integrate verified judging foundation
...
# 基础在线评测功能
本次整合接通普通题的完整提交流程:学生通过真实会话登录、查看题目、提交程序、查询个人结果与源码,并可取消尚未结束的评测。
## 新增能力
- Linux 沙箱隔离与资源限制;C17、C++20、CPython 3.13.16 和 OpenJDK 21 普通题评测。
- 持久化 Coordinator、事务 outbox 和普通判题 Worker,保留任务租约、取消与清理记录。
- 管理员题包上传与校验、不可变版本发布、题目下架恢复和维护审计。
- 本题个人提交、历史详情与匿名性能比较;缺测、环境不一致或样本不足时明确显示不可比较。
## 兼容性
数据库结构与授权由 Backend Alembic 统一迁移。旧 v1 报告保留原有字节和摘要,新语言通过显式版本契约启用,旧题目不会自动增加语言能力。
Python 支持单文件 `main.py` 与标准库;Java 使用默认包的 `Main.java` / `Main`,允许有界辅助类、内部类和匿名类。普通题采用精确字节比较。
## 已知限制
这是基础功能整合,不是生产发布。离线安装、备份恢复、升级和持续运行的单机交付验收仍在独立工程分支进行。
模型与学习能力尚未接入。自助注册、比赛、训练、社区、自测、SPJ、交互题和分布式执行尚未完成;预览页面不代表真实业务已实现。
2026-10-16 16:45:57 +08:00
Kronecker
f576756359
test(admin): isolate import recovery acceptance from candidate checks
2026-10-12 05:05:00 +08:00
Kronecker
445affb63d
test(admin): verify cross-process import admission and recovery
2026-10-12 04:01:51 +08:00
Kronecker
3536ef1fbb
test(admin): preserve baseline data through maintenance migrations
2026-10-12 03:48:26 +08:00
Kronecker
676781223d
test(admin): verify bounded archive and private storage refusals
2026-10-12 03:28:41 +08:00
Kronecker
2f860a17c9
docs(admin): document bounded problem maintenance operations
2026-10-12 03:15:51 +08:00
Kronecker
835df6b7e7
feat(admin): connect authenticated problem maintenance console
2026-10-12 02:33:15 +08:00
Kronecker
5366418881
feat(problems): publish immutable candidates with audited maintenance
2026-10-11 23:29:21 +08:00
Kronecker
3152d59056
feat(problems): add bounded administrator package imports
...
Use live maintenance sessions, durable capacity reservations and streamed SHA-bound ZIP uploads. An ordinary capped import worker validates stored/deflated v1/v2 packages, persists immutable unpublished candidates and finite audit events, and recovers or releases capacity after interruption and expiry.
Validate actual PG/HTTP/worker/storage fault paths in an isolated capped VM (2 passed, 0 skipped), reuse unchanged actual migration roundtrip evidence, and pass affected backend/architecture checks plus the prior full engineering checks.
2026-10-11 22:19:38 +08:00
Kronecker
234ab23155
feat(identity): protect administrator bootstrap and recovery
2026-10-11 19:22:55 +08:00
Kronecker
a7b2324a3e
feat(identity): expose live maintenance capabilities and transaction authorization
2026-10-11 12:31:08 +08:00
Kronecker
3ed5b72459
feat(identity): persist administrator authority with scoped database roles
2026-10-11 12:20:10 +08:00
Kronecker
8143a7f665
fix(frontend): adapt submission summaries to workbench width
2026-10-11 11:17:06 +08:00
Kronecker
08f2db616f
fix(frontend): separate submission time and version link
2026-10-11 11:10:46 +08:00
Kronecker
c8cac766c7
test(submissions): verify exact performance cohort boundaries
2026-10-11 07:45:56 +08:00
Kronecker
bc5cd12056
feat(frontend): share real submission details and performance in workbench
2026-10-11 03:55:23 +08:00
Kronecker
218fa38f8e
feat(submissions): query bounded anonymous performance snapshots
2026-10-11 03:51:33 +08:00
Kronecker
fce7522267
feat(submissions): bind final performance to trusted measurement epochs
2026-10-11 03:46:16 +08:00
Kronecker
3cc90e4573
feat(submissions): define bounded performance and scoped history contracts
2026-10-11 03:35:12 +08:00
Kronecker
5df3c370aa
docs(frontend): document managed language submission
2026-10-10 04:09:41 +08:00
Kronecker
029585739c
fix(worker): bound configurable control request deadlines
2026-10-10 02:15:52 +08:00
Kronecker
47f535ea79
docs(frontend): clarify connected judging services
2026-10-10 00:24:08 +08:00
Kronecker
67c3bc55ba
chore(judge): document explicit managed runtime rollout
2026-10-09 23:29:23 +08:00
Kronecker
d20721313e
test(judge): verify managed worker faults and sealed programs
2026-10-09 22:49:57 +08:00
Kronecker
9d960c2a9b
feat(frontend): enable problem-scoped Python and Java submissions
2026-10-09 22:32:38 +08:00
Kronecker
507b15b64a
test(coordinator): fence stale managed reports and bound retries
2026-10-09 21:57:40 +08:00
Kronecker
643a8d342e
fix(judge): bind managed inputs and confirm artifact cleanup
2026-10-09 21:45:21 +08:00
Kronecker
802e019699
feat(worker): judge versioned sealed runtime programs
2026-10-09 20:15:17 +08:00
Kronecker
2f1166954a
feat(sandbox): route pinned runtimes through one bounded factory
2026-10-09 18:50:10 +08:00
Kronecker
38ee332a3e
test(sandbox): verify managed file quotas and live wall deadlines
2026-10-09 18:12:37 +08:00
Kronecker
9394a914f8
feat(sandbox): bind managed requests to pinned runtime identities
2026-10-09 17:49:30 +08:00
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