Repository navigation
v0.5.2 - Security & logic defect fixes + CI fix
What Changed
Five audited defects are closed in this patch release, with 18 regression tests guarding them.
Fixes
| # | Priority | Problem | Fix |
|---|---|---|---|
| 1 | High | Custom profile directory could be recursively deleted | _copy_profile now refuses when src/dst overlap or target lacks Local State |
| 2 | High | Password values echoed back inconsistently | fill(), snapshot, and batch extract all mask password fields as .... |
| 3 | High | Submit gate had two opposite bugs (empty list passed 0==0; answered-only items unbalanced) | Empty question list now refuses submit; previously-answered objectives counted in total |
| 4 | Medium | patrol(submit=True) had no effect |
auto_answer+submit now wired through rule_based_answer with full-coverage gate |
| 5 | Medium | Unknown course ID widened query to all courses | Unknown/expired course ID now raises UplusError instead of falling back |
Regression Tests
tests/test_fixes.py - 18 tests covering all five fixes (positive + negative cases), all passing.
CI Fix
pom.xml: replaced hardcoded0.5.0filenames with${project.version}so artifact paths follow the version bump automaticallypublish-packages.yml:rm -rf maven-package/artifactsbefore copy to prevent stale files from previous releases
Full Changelog: v0.5.0...v0.5.2