Commit graph

14 commits

Author SHA1 Message Date
LLLin000
0859652396 feat(#81): Release N+1 owner cutover — Python 3.11+ gate, fail-closed dispatch
- managed-runtime: collapse MIN_PYTHON_LEGACY/MIN_PYTHON_NEW → MIN_PYTHON (3.11)
- managed-runtime: remove PYTHON_310_DEPRECATED warning (3.10 now needs_repair)
- managed-runtime: single 3.11+ hard gate for all installations
- settings: cut getCachedPython fallback in _resolveRuntimeCommand → fail-closed
- settings: update Python version notices 3.10→3.11
- i18n: update user-facing Python version messages 3.10→3.11
- Python backend: checker.py, setup_wizard.py, status.py → 3.11 minimum
- Test updates: legacy fallback tests now verify fail-closed, 3.10 gating removed

Build: 264.4KB | Tests: 384/384 passed | Typecheck: clean
2026-07-19 14:32:12 +08:00
LLLin000
906b3cafc0 fixup: headless via SetupPlan only, ConfigWriter always schema_version 2
- Removed headless_setup call from CLI dispatch entirely. --headless,
  --modular, and bare all construct the same SetupPlan with identical
  _cfg/zotero_path/agent_type/skip_checks. Only the deprecation notice
  differs per entry point.
- Added skip_checks parameter to SetupPlan (forwarded to CLI arg).
- ConfigWriter always writes schema_version '2' unconditionally (never
  preserves a v1 value from existing config).

RED commands:
  python -m pytest tests/test_setup_plan_v2.py::TestConfigWriterSchemaVersion -v
  python -m pytest tests/test_setup_plan_v2.py::TestCliHeadlessViaSetupPlan -v

GREEN commands (same, after fixes): 61/61 passed.
2026-07-15 02:23:46 +08:00
LLLin000
7b7474237a fixup: address #75 review — headless canonical, zotero forwarding, visible deprecation, all legacy path keys
- --headless now delegates to SetupPlan for canonical config, then runs
  headless_setup for full deployment; canonical ConfigWriter pass ensures
  v2 vault_config format.
- --zotero-data is forwarded through SetupPlan.zotero_path for both
  --modular and bare paths.
- Deprecation warnings use print(stderr) instead of filtered
  DeprecationWarning so users always see them.
- ConfigWriter.PATH_KEYS extended to converge all seven legacy path keys
  (system_dir, resources_dir, literature_dir, control_dir, base_dir,
   skill_dir, command_dir) into vault_config, preserving non-path metadata.
- Added CLI-level tests: deprecation on stderr, config canonicalization,
  --literature-dir forwarding, --zotero-data plumbing.
2026-07-15 02:17:04 +08:00
LLLin000
af84969972 feat: canonicalize setup and configuration migration (closes #75)
ConfigWriter now writes v2 canonical format (nested vault_config with
schema_version). On rerun it merges with existing config rather than
overwriting, making repeated runs idempotent.

load_vault_config reverses the v1 precedence: vault_config block now
wins over legacy top-level path keys, which are treated as a read-only
fallback with a UserWarning. This is the N+1 transition — old v1
configs remain readable with a warning; all writes produce v2 only.

Bare and --headless setup now delegate to the canonical SetupPlan engine
(the --modular path) with a DeprecationWarning.

Closes #75.
2026-07-15 02:07:13 +08:00
Research Assistant
424164f967 fix: remove v prefix from git tag references in install URLs; update versions.json 2026-05-25 11:45:11 +08:00
Research Assistant
19c28a8b91 chore: commit session work before hotfix switch 2026-05-18 22:47:30 +08:00
Research Assistant
ffd4eb7ca2 refactor: unify skills into paperforge compound skill (6 workflows) 2026-05-14 17:56:25 +08:00
Research Assistant
0ae4c72492 fix(skill): split vault-browse from paper-search, add browsing flow to vault-knowledge 2026-05-11 19:03:38 +08:00
Research Assistant
2e0657479a feat: PyPI publish support — install paperforge from PyPI with git fallback 2026-05-11 18:04:17 +08:00
Research Assistant
12fa24034d fix: prepend v to git tag ref in all pip install URLs 2026-05-11 17:41:59 +08:00
Research Assistant
c0cc05ab32 refactor(skills): simplify skill deployment — single copytree for all platforms
- Remove format dispatch (flat_command/skill_directory/rules_file) — all platforms unified
- skill_deploy.py: 257→81 lines, only AGENT_SKILL_DIRS + copytree + AGENTS.md
- AgentInstaller switches to vault-local paths, removes deploy_commands step
- Remove _deploy_skills dead code in update.py
2026-05-10 23:22:42 +08:00
Research Assistant
15d849f7e6 fix: remove deprecated control_dir from doctor/setup/repair; enable repair button; fix UTF-8 encoding in doctor output 2026-05-10 01:50:24 +08:00
Research Assistant
64e73067fb style: ruff format pass across paperforge/ 2026-05-09 22:31:08 +08:00
Research Assistant
bbd39a90d3 v1.4.17rc4
Milestone v2.1: Contract-Driven Architecture & Engineering Hardening

- Stop the Bleeding: version sync checker, PyYAML hardening, install docs unification
- Contract Layer: PFResult/PFError dataclasses, ErrorCode enum, --json wrapping
- Service Extraction: sync.py decomposed into 3 adapters + SyncService
- State Machine: PdfStatus/OcrStatus/Lifecycle enums, transitions, field registry
- Setup Modularization: setup_wizard.py decomposed into 6 classes

173 tests passing, 0 regressions.
2026-05-09 17:05:07 +08:00