feat(wiki): unsichtbare Unicode-Zeichen vor Upload abfangen #28

Merged
frank merged 1 commit from agent/issue-18-wiki-unsichtbare-unicode-zeichen-in-crea into main 2026-07-12 13:16:15 +02:00
Owner

Summary

  • forge wiki create/update erkennen unsichtbare Unicode-Zeichen (Zero-Width, Bidi, BOM) vor dem Upload
  • Standard: Abbruch mit Fehlermeldung inkl. Zeile, Spalte und Codepoint
  • --strip-invisible entfernt die Zeichen; --allow-invisible erlaubt bewussten Upload
  • Wiki-Doku unter docs/wiki/Wiki.md ergänzt

Test plan

  • go test ./internal/wiki/... ./internal/cmd/...
  • go test ./...
  • forge wiki create --help / forge wiki update --help zeigen neue Flags
  • Manuell: Upload mit Zero-Width-Zeichen → Fehler; mit --strip-invisible → Erfolg

Closes #18

## Summary - `forge wiki create`/`update` erkennen unsichtbare Unicode-Zeichen (Zero-Width, Bidi, BOM) vor dem Upload - Standard: Abbruch mit Fehlermeldung inkl. Zeile, Spalte und Codepoint - `--strip-invisible` entfernt die Zeichen; `--allow-invisible` erlaubt bewussten Upload - Wiki-Doku unter `docs/wiki/Wiki.md` ergänzt ## Test plan - [x] `go test ./internal/wiki/... ./internal/cmd/...` - [x] `go test ./...` - [x] `forge wiki create --help` / `forge wiki update --help` zeigen neue Flags - [ ] Manuell: Upload mit Zero-Width-Zeichen → Fehler; mit `--strip-invisible` → Erfolg Closes #18
feat(wiki): reject invisible Unicode characters before upload
All checks were successful
CI / test (pull_request) Successful in 22s
CI / race (pull_request) Successful in 22s
dccb4db569
Detect zero-width, bidi, and BOM characters in wiki create/update content
by default, with --strip-invisible and --allow-invisible escape hatches.

Co-authored-by: Cursor <cursoragent@cursor.com>
Author
Owner

🔗 Linked to issue #18. Babysitting CI until green…

🔗 Linked to issue #18. Babysitting CI until green…
Author
Owner

forge agent finished implementation

  • Commit: feat(wiki): reject invisible Unicode characters before upload
  • Pull request: #28
  • Next: waiting for CI / babysitting fixes if needed
docs/wiki/Wiki.md               |  65 ++++++++++++++++++++
 internal/cmd/wiki.go            |  31 ++++++++++
 internal/cmd/wiki_test.go       |  59 ++++++++++++++++++
 internal/wiki/invisible.go      | 133 ++++++++++++++++++++++++++++++++++++++++
 internal/wiki/invisible_test.go | 127 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 415 insertions(+)
Agent output (tail)
- `--allow-invisible` erlaubt den Upload trotz Fund
**Dokumentation:** `docs/wiki/Wiki.md` beschreibt das Verhalten mit Beispielen.
TODO_DONE: `forge wiki create`/`update` erkennt unsichtbare Unicode-Zeichen im Inhalt
TODO_DONE: Upload wird standardmäßig abgelehnt mit hilfreicher Fehlermeldung
TODO_DONE: Es gibt einen dokumentierten Weg, Zeichen zu strippen oder bewusst zuzulassen
TODO_DONE: Tests decken typische Zero-Width-/BOM-/Bidi-Fälle ab
TODO_DONE: Wiki-Doku (`forge wiki …`) erwähnt das Verhalten
PR_TITLE: feat(wiki): unsichtbare Unicode-Zeichen vor Upload abfangen
PR_BODY:
## Summary
- `forge wiki create`/`update` erkennen unsichtbare Unicode-Zeichen (Zero-Width, Bidi, BOM) vor dem Upload
- Standard: Abbruch mit Fehlermeldung inkl. Zeile, Spalte und Codepoint
- `--strip-invisible` entfernt die Zeichen; `--allow-invisible` erlaubt bewussten Upload
- Wiki-Doku unter `docs/wiki/Wiki.md` ergänzt
## Test plan
- [x] `go test ./internal/wiki/... ./internal/cmd/...`
- [x] `go test ./...`
- [x] `forge wiki create --help` / `forge wiki update --help` zeigen neue Flags
- [ ] Manuell: Upload mit Zero-Width-Zeichen → Fehler; mit `--strip-invisible` → Erfolg
Closes #18
✅ **forge agent finished implementation** - Commit: `feat(wiki): reject invisible Unicode characters before upload` - Pull request: https://repository.hildebrandt.io/frank/forgecli/pulls/28 - Next: waiting for CI / babysitting fixes if needed ``` docs/wiki/Wiki.md | 65 ++++++++++++++++++++ internal/cmd/wiki.go | 31 ++++++++++ internal/cmd/wiki_test.go | 59 ++++++++++++++++++ internal/wiki/invisible.go | 133 ++++++++++++++++++++++++++++++++++++++++ internal/wiki/invisible_test.go | 127 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 415 insertions(+) ``` <details><summary>Agent output (tail)</summary> ``` - `--allow-invisible` erlaubt den Upload trotz Fund **Dokumentation:** `docs/wiki/Wiki.md` beschreibt das Verhalten mit Beispielen. TODO_DONE: `forge wiki create`/`update` erkennt unsichtbare Unicode-Zeichen im Inhalt TODO_DONE: Upload wird standardmäßig abgelehnt mit hilfreicher Fehlermeldung TODO_DONE: Es gibt einen dokumentierten Weg, Zeichen zu strippen oder bewusst zuzulassen TODO_DONE: Tests decken typische Zero-Width-/BOM-/Bidi-Fälle ab TODO_DONE: Wiki-Doku (`forge wiki …`) erwähnt das Verhalten PR_TITLE: feat(wiki): unsichtbare Unicode-Zeichen vor Upload abfangen PR_BODY: ## Summary - `forge wiki create`/`update` erkennen unsichtbare Unicode-Zeichen (Zero-Width, Bidi, BOM) vor dem Upload - Standard: Abbruch mit Fehlermeldung inkl. Zeile, Spalte und Codepoint - `--strip-invisible` entfernt die Zeichen; `--allow-invisible` erlaubt bewussten Upload - Wiki-Doku unter `docs/wiki/Wiki.md` ergänzt ## Test plan - [x] `go test ./internal/wiki/... ./internal/cmd/...` - [x] `go test ./...` - [x] `forge wiki create --help` / `forge wiki update --help` zeigen neue Flags - [ ] Manuell: Upload mit Zero-Width-Zeichen → Fehler; mit `--strip-invisible` → Erfolg Closes #18 ``` </details>
Author
Owner

☑️ ToDos checked off

  • forge wiki create/update erkennt unsichtbare Unicode-Zeichen im Inhalt
  • Upload wird standardmäßig abgelehnt mit hilfreicher Fehlermeldung
  • Es gibt einen dokumentierten Weg, Zeichen zu strippen oder bewusst zuzulassen
  • Tests decken typische Zero-Width-/BOM-/Bidi-Fälle ab
  • Wiki-Doku (forge wiki …) erwähnt das Verhalten
☑️ **ToDos checked off** - [x] `forge wiki create`/`update` erkennt unsichtbare Unicode-Zeichen im Inhalt - [x] Upload wird standardmäßig abgelehnt mit hilfreicher Fehlermeldung - [x] Es gibt einen dokumentierten Weg, Zeichen zu strippen oder bewusst zuzulassen - [x] Tests decken typische Zero-Width-/BOM-/Bidi-Fälle ab - [x] Wiki-Doku (`forge wiki …`) erwähnt das Verhalten
frank merged commit 10da39b312 into main 2026-07-12 13:16:15 +02:00
frank deleted branch agent/issue-18-wiki-unsichtbare-unicode-zeichen-in-crea 2026-07-12 13:16:15 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
frank/forgecli!28
No description provided.