- Status: Open
- Opened On: 2026-02-13
- Area: Viewer / Editor architecture / Markdown round-trip
- Description: Evaluate and plan implementation of a full WYSIWYG Markdown editor where visual edits reliably serialize back to Markdown without destructive rewrites.
- Current State:
- Viewer text surface is read-only.
- Rendering pipeline remains one-way (
markdown -> NSAttributedString) with no general attributed-edit-to-Markdown serializer.
- Feasibility Assessment:
- Estimated difficulty: high (roughly 8/10).
- Expected effort: multi-month for robust full-fidelity WYSIWYG.
- Notes:
- Keep this as a subsequent phase after hybrid editor hardening.
- Status: Open
- Opened On: 2026-02-16
- Area: Renderer / Syntax highlighting / Dependency strategy
- Description: Decide long-term architecture for multi-language renderer highlighting beyond phase-1 heuristics.
- Current State:
- Phase-1 renderer syntax highlighting is shipped with Tree-sitter availability gating.
- Open Questions:
- Bespoke tokenizer expansion vs deeper Tree-sitter parser integration per language.
- Packaging/runtime behavior when Tree-sitter libraries or grammars are unavailable.
- Performance and fallback UX expectations at large document sizes.
- Notes:
- Treat as post-phase-1 follow-on work, not a blocker for current stabilization.
- Status: Open
- Opened On: 2026-02-18
- Area: Renderer / HTML policy / Preview fidelity
- Description: Inline and block HTML are currently handled as literal text (or dropped via policy), not rendered as rich HTML in preview.
- Current State:
- Default parsing policy is
RenderAsTextfor inline and block HTML. - HTML import/export is supported through Pandoc when available.
- Default parsing policy is
- Planned Work:
- Design a safe rendering strategy for inline/block HTML (likely constrained subset + sanitization).
- Define fallback behavior when markup is unsupported.
- Add dedicated renderer tests for allowed/blocked HTML rendering paths.
- Notes:
- Explicitly scheduled for Phase 2 work in
Roadmap.md.
- Explicitly scheduled for Phase 2 work in
- Status: Open
- Opened On: 2026-02-19
- Area: Windows runtime / GNUstep theming / Compatibility
- Description: Determine why
GSTheme=Sombredoes not produce a usable window on Windows and assess whether a practical fix is feasible. - Current State:
- Under Windows GNUstep + MSYS2, launching with Sombre can start the process but fail to present a normal main window.
- Observed runtime exception during launch path under Sombre:
NSInvalidArgumentExceptionwithNSConstantString ... forwardInvocation: ... hash.
- App remains usable under
WinUXTheme, so issue appears theme/runtime specific rather than core app startup.
- Investigation Goals:
- Reproduce in a minimal GNUstep app with and without Sombre to isolate theme plugin vs app interaction.
- Identify whether failure is caused by Sombre plugin code, GNUstep backend incompatibility on Windows, or app-side assumptions.
- Establish workaround options (theme fallback, selective feature disable) if full Sombre support is not feasible.
- Notes:
- Outcome should include a go/no-go feasibility decision and recommended implementation path.
- Status: Open
- Opened On: 2026-02-19
- Area: Release engineering / Linux packaging / CI-CD
- Description: Build automated GitHub pipelines that produce a Flatpak for
MarkdownViewerthat runs on a stock Linux desktop without requiring users to manually install GNUstep or related runtime dependencies. - Current State:
- Linux builds run from source in a configured GNUstep development environment.
- No Flatpak manifest or CI pipeline currently publishes installable Linux bundles.
- Runtime tools/features that depend on external binaries (for example
pandoc) are not bundled for end users.
- Requirements:
- Create a Flatpak manifest and builder flow for
MarkdownViewer. - Include all required runtime components for app startup and core features (GNUstep libs, Objective-C runtime, cmark, OpenSave/TextViewVimKit dependencies, and other required shared libraries).
- Include
pandoc(or an equivalent clearly documented strategy) so import/export features work on stock systems. - Add GitHub Actions workflow(s) to build, validate, and publish Flatpak artifacts (nightly and/or tagged releases).
- Validate installation and launch on a clean Linux box with no preinstalled GNUstep toolchain.
- Create a Flatpak manifest and builder flow for
- Notes:
- Target reproducible builds with pinned versions and explicit dependency provenance.
- Status: Open
- Opened On: 2026-04-14
- Area: Release engineering / GitHub Actions / Linux packaging
- Description: The tagged Linux AppImage workflow is intentionally configured to run on the self-hosted GNUstep runner label set
["self-hosted","linux","gnustep-clang"], but there are currently no registered runners in the repository, so the AppImage packaging job never starts. - Current State:
linux-appimageresolves the package version successfully on tag push.- the reusable packaging job remains queued indefinitely on the self-hosted label set
gh api repos/danjboyd/ObjcMarkdown/actions/runnerscurrently reportstotal_count: 0
- Impact:
- blocks end-to-end confirmation that a release tag produces and publishes the Linux AppImage and
.zsync - prevents
Phase 7B/Phase 8Dacceptance from going green for Linux
- blocks end-to-end confirmation that a release tag produces and publishes the Linux AppImage and
- Next Step:
- register or restore the expected self-hosted GNUstep runner for this repository, or deliberately redesign the Linux packaging lane to run on a GitHub-hosted image with equivalent toolchain guarantees