Repository navigation
Releases: dxxjudges/clijudge
Releases · dxxjudges/clijudge
Release list
v1.1.7
v1.1.6
v1.1.5
- feat: displaylang source 支持 custom 自定义源(设置时在线检测可达性与语言包合法性)
- feat: displaylang source 切换语言包源(内置 github/gitee)
- feat: 新增 release.bat 一键发版 — 参数 major/minor/patch,npm version 自动升版并以 build X.Y.Z 提交打 tag,推送后轮询等待 Build and Release 与 npm Publish 两条 CI
- chore: npm 发布版本升至 1.1.4(含审计修复与全量 i18n)
- fix: 冒烟断言容忍 PS 错误流词边界换行 — is not a JSON/No display language/failed to parse/reduced-isolation 四处匹配改为跨空白,消除 CI 临时目录长度导致的随机换行误报
- feat: 全量输出接入 tr/trf 国际化 — 新增占位符助手 trf,problem/contest/article/submit/ide/main/lang/settings/judge/cdf 用户可见输出全部走语言键(249 键,英文回退逐字节不变,冒烟 Win62/Lx59 全绿)
- fix: 审计问题批量修复 — 判题正确性(A1榜/A2进程数/A3PE/A4解压/A5写文件)、Windows沙箱(B1链接/B2 CPU硬限/B3 seccomp兜底/E1文件配额/E2 stdio失败)、CDF往返(C1-C4)、健壮性(D1-D8),冒烟 Windows 62 项 / Linux 59 项全绿
- fix: displaylang delete 拒绝内置语言 en — 内嵌副本删不掉、删除只会清空 current_lang 逼用户重新 switch;冒烟新增拦截用例(双平台 42 项)
- docs: 官网加入 npm 安装方式 — hero 增加 npm 按钮、快速开始/FAQ/support 均列 npm install -g clijudge 为推荐安装
- chore: 版本 1.1.3 — 中文编码修复(控制台 UTF-8、argv 宽字符重建、UTF-8 activeCodePage manifest)
- fix: 中文显示乱码与中文参数崩溃 — Windows 控制台切 UTF-8(退出恢复)、argv 由宽字符命令行重建为 UTF-8、RC 嵌入 UTF-8 activeCodePage manifest(文件路径/ANSI API 统一 UTF-8);冒烟新增中文标题/中文路径用例(双平台 41 项)
- feat: npm 发布改为 workflow 内构建双平台二进制 — 不依赖 release 资产、版本取 package.json(release 触发时校验 tag 一致)
- feat: npm 发布流程 — clijudge 包(双平台预编译二进制 + bin shim、数据目录重定向用户目录)、npm-publish workflow(release 自动发包/手动按 tag 补发)、README 增加 npm 安装入口
- fix: problem view 不输出生成器信息;SPJ 为内嵌源码时仅显示 Source: embedded 字节摘要,不直接输出代码(special_judge_exe 误存多行源码时同样只给摘要)
- fix: help 补 contest list 与 -instyle/-outstyle;修正 help 语言豁免范围、ide 自定义语言无 shell、article 无 edit 等文档表述(wiki 一致性核对)
- docs: 官网与 README 对齐现状 — 双平台定位、5 语言+custom_languages、完整命令树(contest CDF/报告、displaylang、rejudge)、Release 下载指引、沙箱能力预检降级说明
- chore: 仓库所有者迁移至组织 dxxjudges(含 REPO_OWNER 语言包源与文档链接)
- fix: Ubuntu 24.04 加固环境 uid_map EPERM 导致沙箱 126 全量拒跑 — 新增沙箱能力预检 probeSandboxCaps(同 level2 flags 起探测子进程验证 uid_map 自写与 seccomp 安装, 每进程一次), uid_map 不可写时命名空间阶梯直接从 level0 起步(seccomp+rlimit 兜底, 与 trusted 已验证路径一致), seccomp 不可用时不安装过滤器; 诊断增强(setgroups 失败记录、uid_map 失败附 AppArmor profile、INFO 行含 caps)、smoke 增加 unshare -U -r 自映射与 aa_profile 探测
- chore: Linux 沙箱 CI 失败诊断 — CLIJUDGE_SANDBOX_DEBUG 埋点(126 失败点 uid_map/gid_map/io/chdir/seccomp + 命名空间阶梯 INFO 行含每次 clone errno 与最终 level) + smoke_linux.sh 环境探测(uname/apparmor_restrict_unprivileged_userns/max_user_namespaces/unshare -U)与失败日志输出
- fix: 修复分析报告缺点 — ide.h 5个自由函数补 inline(双TU链接探针验证)、删除根目录重复 json.hpp、CMake/CI/README 构建对齐(Release -O2 + -Wall + Win -static 四系统库, cmake 实测通过)、21处中文原始输出统一英文(含 contest/article/ide/cdf 与 cmdline.md 示例)、WINOJ_* 环境变量更名 CLIJUDGE_NO_LOWIL/NO_RELABEL(旧名兼容回退)、config.json 解析失败双入口告警(settings.h+lang.h, 损坏不再静默回退)、导入题目包/CDF 携带 SPJ/交互器/生成器/grader 时输出信任告警(problem zip/json 与 CDF 三路径+cmdline.md 安全提示)、ide run 去 shell 重构(复用 judge::compileSources 可信编译捕获错误+结构化 argv 单进程沙箱+SandboxStdio stdin 重定向, 修复 Windows 低权限 TEMP 下 g++ 编译失败)、数据层加固(索引与 config 原子写 writeFileAtomic + 跨进程 DataLock LockFileEx/flock 修改类命令持锁, 读命令依赖原子快照, 时序测试双平台验证)、writeMeta 双平台合并为公共段、index.html 纵深防御补 Linux 隔离与信任边界、新增 tests/ 双平台冒烟套件(各37项)接入 release.yml 双平台 smoke
- feat: 自定义评测语言 custom_languages、语言包同步、修复 Windows ide run cmd 引号转义
- docs: 新增命令行文档 cmdline.md 与网页版 cmdline.html(仿 NoldOJ API 文档页, marked.js 实时渲染+侧边目录滚动高亮), 首页命令参考章节加入口链接
- feat: Linux 沙箱完整能力对齐 Windows — user/mnt/pid/net/ipc/uts 命名空间阶梯(全失败逐级降级, 自写 uid/gid 映射)、根文件系统只读重挂载(bind-remount)且 workDir//tmp 保持可写、环境变量白名单注入、seccomp 过滤器(架构检查+载入 syscall nr, untrusted 且 maxProcesses=1 拒绝 fork/vfork/非线程 clone 对齐 ActiveProcessLimit=1, socket 全阻断, 敌意系统调用 SIGSYS, 探测型 ENOSYS)、maxProcesses>1 父进程 10ms 轮询进程组超限击杀(SIGKILL→TLE)、可信模式无过滤器仅 rlimit、执行后进程组兜底击杀清理残余进程; 修复 BPF 程序缺失 LD nr 导致规则与 arch 比较全部失配放行的缺陷、judgeTestCase 裸命令名(python3/java/node)误判 CE 的历史 bug、ide 复合命令 maxProcs 1→32
v1.1.0
- build 1.1.0
- chore: 触发 Gitee 镜像自动同步验证
- chore: 添加 MIT LICENSE
- feat: 全局更名 Judgelite→CliJudge + 数据目录分类子目录存储 — 命名空间/函数/头文件卫/环境变量 CLIJUDGE_DATA_DIR/文档品牌与仓库地址统一(clijudge.exe、dxx114514-stack/clijudge); data 平铺 JSON 自动迁移至 problems/articles/contests/submissions 子目录(platform::migrateFlatLayout 启动幂等迁移, 顶层保留 config.json 与 langs/), 读写路径全量改指子目录, README/FAQ 补充存储说明
- chore: 移除 zh 分支构建触发 (多语言机制取代独立中文分支)
- fix: 语言文件全面修复 — 接入 tr() 本地化(帮助/提交结果/判题状态显示), 修正 tr 键路径 strings 包装层 bug, 配置与语言目录统一 platform::dataDir(CLIJUDGE_DATA_DIR 生效), 首次运行内置英文包离线引导 + en 下载回退, help 文案修正(judgelite.exe→clijudge.exe), settings 配置路径对齐
- feat: 全面对齐 LemonLime 评测 — 评测设置模块/沙箱 stdio 句柄重定向+trusted、比较器扩展(PE/OLE/PC/三种SPJ/浮点eps)、判题线程池与子任务依赖聚合、answers_only/interaction/communication(+exec)/submit rejudge、CDF 导入导出修复(依赖标记/多文件拆分/模式映射/data文件)、比赛报告 HTML 与 judge_detail
- fix: CI 冒烟测试改为免语言配置的命令
- feat: 跨平台 Linux 支持 — POSIX 沙箱(fork+setrlimit+VmHWM轮询), platform.h 可移植封装, WinHTTP/curl 双栈, POSIX 管道/文件重定向判题, CRLF 归一化严格比较, CI 增加 ubuntu 构建
- feat: 引入 miniz 库实现 ZIP 导出/导入/testdata -zip
- fix: CI 编译命令添加 -lwinhttp, 更名 clijudge.exe
- feat: submit接受源代码自动编译 + lang.h编码兼容UTF-16
- feat: 添加语言文件机制 (displaylang)
v1.0.2
- build 1.0.2
- feat: 支持子任务分组评判 + text_no_space 比较模式
- fix: .gitignore 误排除 CMakeLists.txt
- chore: 清理垃圾文件, 修复 .gitignore
- chore: .gitignore 添加 data/ 目录
- fix: 修复 zh 分支命名空间不一致导致编译失败
- Merge branch 'main' into zh
- fix: contest 提交自动运行评判 + 排行榜按分数排序
- merge: 合并 main 分支到 zh
- feat: 添加评判核心模块 judge.h - 支持多测试点评判、多种比较模式、Special Judge
- chore: 添加 .gitignore 排除可执行文件
- build: 重命名项目为 CliJudge
- chore: 添加 .gitignore 排除可执行文件
- build: 重命名项目为 CliJudge
- feat: 添加 CDF 格式导入导出支持(兼容 LemonLime)
- feat: add CDF format import/export for LemonLime compatibility
- feat: 给submit添加--as用户名参数,新增比赛排行榜
- feat: add --as username to submit commands, contest leaderboard
- fix: 修复commit message含特殊字符导致CI失败的问题
- fix: 修复commit message含特殊字符导致CI失败的问题
- Revert "ci: 构建产物输出到 main/ 或 zh/ 目录"
- Revert "ci: 构建产物输出到 main/ 或 zh/ 目录"
- ci: 构建产物输出到 main/ 或 zh/ 目录
- ci: 构建产物输出到 main/ 或 zh/ 目录
- ci: 添加zh分支构建支持
- feat: 汉化所有输出信息,添加GBK/UTF-8编码转换支持
v1.0.1
- build 1.0.1
- feat: NoldOJ compatible export/import format
- docs: fix IDE description to command-line tool
- docs: redesign website with dark theme inspired by NoldOJ
- refactor: remove inline content support for testdata create
v1.0.0
- build 1.0.0
- feat: testdata create supports both inline content and file paths
- fix: add white-space pre-wrap to command-tree CSS
- revert: undo main.cpp help changes
- docs: improve formatting and add parameter shorthands
- feat: improve help formatting and add parameter shorthands
- Create CNAME
- build 1.0.1
- ci: add contents write permission
- build 1.0.0
- ci: add include path
- ci: use g++ directly
- ci: use VS 2019
- ci: fix build workflow to use MSVC
- build 1.0.0
- Initial commit: JudgeLite - Lightweight Command-Line Online Judge System