[Phase 16] S7 — CLI and wizard boundary: policy declared must be policy enforced
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 12/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Python
- Sterne
- 9
- Forks
- 1
- Ø Merge
- 8 Std. 20 Min.
- Gemergte PRs (30 T.)
- 59
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus HodeTech/ForgeLM
-
area: site bug good first issue severity: low wave: 4
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
HodeTech/ForgeLM#961 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: dev-tooling bug severity: low source: roadmap wave: 4
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Maintainer antworten meist innerhalb von 1 Tag
-
Trend-tracking jq recipe prints evaluation_completed=false as 'n/a', because jq's // operator treats false like null (F-W1-DOCS-TRAIN-16)Evtl. vergeben @yuefdev hat das vor 16 Tagen übernommen. Offendocumentation good first issue severity: low source: review-2026-09 wave: 4
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 80/100
Maintainer antworten meist innerhalb von 1 Tag
-
documentation severity: medium source: review-2026-09 wave: 3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue severity: medium source: review-2026-09 wave: 3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in HodeTech/ForgeLM
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
elviskahoro/sdk-python-attio#144 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
-
RenyiELBO raises TypeError when model has no sample sitesEvtl. vergeben @alibb007 hat das heute übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug]: Four evaluation scripts unpack init_memmachine_params's five return values into three namesOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
MemMachine/MemMachine#1911 ·
Maintainer antworten meist innerhalb von 3 Tagen