[Phase 16] S7 — CLI and wizard boundary: policy declared must be policy enforced
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 12/100
Hướng nghiên cứu
This is an umbrella roadmap issue, not a single fix. Start with the --offline dispatch path in _dispatch.py, the run_chat / load_model call sites, and the wizard, using the planned section in docs/roadmap/phase-16-trust-surface-hardening.md (lines 481-516). Done means the five exit criteria pass, each in its own subprocess or sentinel test.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Roadmap · Phase 16, step S7 · size XL · 8 unit(s) · planned in
docs/roadmap/phase-16-trust-surface-hardening.md:481-516
Summary
All eight units are the CLI boundary declaring something it does not enforce or cannot deliver. --offline is applied in _dispatch.py after the subcommand is dispatched, so the global flag is inert for every subcommand — export, deploy, ingest, audit, safety-eval, cache-*, quickstart's parent process — while the CLI reference promises it disables all Hub network calls; doctor is the only exception, because it declares its own flag.
Units
| Unit | Tracked by (October 2026 review) |
|---|---|
C33-CLI-ERROR-ENVELOPE (= CLI-05 + CLI-11) |
#79 · #365 · #376 · #420 · #547 · #567 · #643 · #652 · #661 · #664 · #674 · #677 · #713 · #832 |
F-W20260729-CLI-04 |
#100 · #109 · #542 · #571 · #635 |
F-W20260729-CLI-02 |
#113 · #571 · #635 |
F-W20260729-CLI-17 |
#113 · #542 · #567 · #595 · #604 · #643 · #738 |
F-W20260729-CLI-18 |
#113 · #542 · #595 · #604 · #643 · #654 · #738 |
F-W20260729-CLI-09 |
#113 · #561 · #563 · #600 · #644 · #650 · #651 · #668 · #691 · #692 · #693 · #694 · #695 |
F-W20260729-CLI-12 |
#113 · #600 · #643 · #668 · #691 · #692 · #693 · #694 · #695 |
F-W20260729-CLI-13 |
#113 · #600 · #668 · #691 · #692 · #693 · #694 · #695 |
Decisions this step executes
- C-11 — the
[export]extra: the external converter becomes an explicit, validated prerequisite.
Plan
- Commit 1, the central seam: apply the offline policy before dispatch and thread
offlineintorun_chat/load_model; add one canonical failure renderer forUnicodeDecodeError,OSErrorand the no-train modes. - Commit 2, capability honesty:
[export]stops proving capability withimport llama_cppand probes for a real converter (doctoruses the same false proxy and is corrected with it; theFileNotFoundErrormessage names the actual install step); share quantization / temperature validation between the parser and the REPL; add thecache-modelslocal-path branch. - Commit 3, the wizard: three-state keep / replace / disable per collector,
WizardOutcome.valid, and path resolution inside thetryblock.
Exit criteria
- Every no-train mode emits exactly one JSON object on stdout plus the documented exit code, with no log text on stdout.
- An invalid-UTF-8 config, a read-only cache and an unwritable export parent each produce one
{"success": false, …}object, in separate subprocess tests. -
forgelm --offline chat HUB_IDreaches no network function under sentinels, andlocal_files_only=Truereaches bothfrom_pretrainedcalls. - An invalid generated config leaves the file, preserves the state snapshot, prints no "start later" message and exits 1.
- Explicit-disable answers leave fields absent while bare Enter preserves them, asserted in both directions.
How to deliver
- One root-cause family, committed on its own; then an Opus review round and a Sonnet review round, each with verified findings fixed and committed before the next step begins.
- A reproducer that is red before the fix and green after; the full gauntlet from
CLAUDE.mdpasses under./.venv/bin/python. - Every English documentation edit ships with its Turkish mirror in the same commit; a new or renamed audit event gets its EN and TR catalog rows in the same PR.
- A step that grows a deferred module carries its
budget_historyjustification in the same diff; a widened guard rolls out non-strict first, then flips. - Commit bodies cite
Absorbs F-W20260729-…; the CHANGELOG[Unreleased]section gets an entry only for a change a user or library consumer can observe (decision C-20).
Planned in docs/roadmap/phase-16-trust-surface-hardening.md (read at f94595f). Unit IDs (F-W20260729-…) come from the 2026-07-29/30 full-project review; the issue numbers next to them are the October 2026 review's records of the same defects.
- Ngôn ngữ chính
- Python
- Star
- 9
- Fork
- 1
- Merge trung bình
- 4 giờ 3 phút
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của HodeTech/ForgeLM
-
area: dev-tooling bug severity: low source: roadmap wave: 4
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
area: site bug good first issue severity: low source: review-2026-09 wave: 4
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
-
documentation good first issue severity: medium source: review-2026-09 wave: 3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
documentation good first issue severity: low source: review-2026-09 wave: 4
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 80/100
-
documentation severity: medium source: review-2026-09 wave: 3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Tất cả issue của HodeTech/ForgeLM
Issue tương tự
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
Update Python support to 3.15Đang mởpython-version
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug javascript P2-medium python release:v3.1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
adrirubio/claude-deck#546 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: desktop area: website priority: P2 type: feature
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
appandflow/stim#3411 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày