summaryrefslogtreecommitdiffstats
path: root/HANDOFF.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-05-03 13:13:46 +0200
committerDanilo M. <danix@danix.xyz>2026-05-03 13:13:46 +0200
commite28ebf9f0d2aaa9a6819f5a09cac05953080c1e9 (patch)
treeb367bfadbb7395dadeffb550854ce205c58283b6 /HANDOFF.md
parentfa471fc0de8708a1d3fa99cac6e309adb53303fc (diff)
downloadpublisher-e28ebf9f0d2aaa9a6819f5a09cac05953080c1e9.tar.gz
publisher-e28ebf9f0d2aaa9a6819f5a09cac05953080c1e9.zip
Chore: updated TODO and HANDOFF.
Diffstat (limited to 'HANDOFF.md')
-rw-r--r--HANDOFF.md14
1 files changed, 8 insertions, 6 deletions
diff --git a/HANDOFF.md b/HANDOFF.md
index 5d9341c..1009af9 100644
--- a/HANDOFF.md
+++ b/HANDOFF.md
@@ -1,15 +1,17 @@
Who this is for:
- Danilo is a developer and blogger running a bilingual (IT/EN) Hugo site at danix.xyz. He built a PyQt6 desktop GUI called my-publisher to centralize his blog publishing workflow and is now maintaining and extending it post-launch.
+ Danilo is a developer and blogger running a bilingual (IT/EN) Hugo site at danix.xyz. He maintains a PyQt6 desktop app called my-publisher that centralizes his blog publishing workflow, and is currently extending it post-v1.0 launch.
What we covered:
- We resumed the project in a post-implementation maintenance session. We generated a TODO.md file tracking three known gaps from the initial build (TaxonomyView Categories tab, MissingTranslationView Traduci button, multi-token tag autocomplete) and committed it to git. We added app-wide font size support by adding a font_size field (default 10) to the Config dataclass, saving/loading it via config.toml, and applying it at startup via app.setFont() in main.py. We added a TODO item for a font size spinner in the UI. We created an assets/ directory with the
- blogilo.svg icon (copied from the Breeze KDE icon theme) and a my-publisher.desktop file with Exec and Icon paths pointing to /opt/my-publisher for system-wide installation. The user also manually added two more TODO items: draft article visual hints and transart backend availability validation. We pushed all commits and tagged the release as v1.0.
+ Two features were implemented this session. First, draft article visual hints: added a draft property to the Article dataclass, amber [DRAFT] prefix in article list items, and a DRAFT badge in the article detail header. Second, article list metadata display: added four properties to Article (meta_type, meta_tags, meta_categories, meta_date), then updated the article list to show a two-line row per article with slug+badge on line 1 and type/date/tags/categories on line 2. The two-line rendering required three iterations to fix: setWordWrap failed, setTextElideMode failed, and the final working solution was a custom QStyledItemDelegate that draws both lines directly onto the canvas bypassing Qt elision entirely. The app was tagged v1.1 and pushed to origin.
What was confirmed:
- All 22 tests pass. The font_size field defaults to 10 and is read from config.toml if present. The desktop file uses /opt/my-publisher paths — the repo at /home/danix/Programming/GIT/my-publisher is the development copy, and the installed copy will live at /opt/my-publisher. Tag v1.0 is pushed to origin (danix_git:publisher). TODO.md now tracks five items total: TaxonomyView Categories tab, MissingTranslationView Traduci button, multi-token tag autocomplete, font size spinner in UI, draft article visual hints, and transart backend availability validation.
+ All 30 tests pass. The delegate approach (ArticleItemDelegate in ui/articles_view.py) is the correct solution for multi-line QListWidget items in PyQt6. Line 2 metadata is stored in Qt.ItemDataRole.UserRole+1 and drawn in dimmed #888 color. Draft items show amber #f59e0b.
+ Missing-translation items show red #ff6b6b. The blog's TOML frontmatter uses lowercase keys: type, date, tags, categories. Tag v1.1 is pushed to danix_git:publisher.
Still in progress:
- None of the TODO items have been implemented yet. The font size is functional but only editable via config.toml — no UI spinner exists yet. The app has been physically copied to /opt/my-publisher.
+ Nothing was left open in this session. The remaining TODO items from TODO.md are: TaxonomyView Categories tab, MissingTranslationView Traduci button, font size spinner in SetupDialog, multi-token tag autocomplete in FrontmatterEditor, transart backend availability validation,
+ taxonomy tag rename propagation to articles, and Ctrl+Q keyboard shortcut.
Next steps:
- Pick any TODO item to implement next. Suggested order by impact: (1) draft article visual hints — visible quality-of-life improvement for daily use; (2) font size spinner in SetupDialog or a Settings dialog; (3) transart backend availability check using OLLAMA_HOST; (4) TaxonomyView Categories tab; (5) MissingTranslationView Traduci button; (6) multi-token tag autocomplete. \ No newline at end of file
+ Pick the next TODO item to implement. Suggested order by impact: (1) Ctrl+Q keyboard shortcut — trivial, one line in main_window.py; (2) font size spinner in SetupDialog (ui/setup_dialog.py) — moderate, saves via Config.save() and re-applies with app.setFont(); (3) transart backend
+ availability check using OLLAMA_HOST; (4) MissingTranslationView Traduci button — wire translate_requested signal per row; (5) TaxonomyView Categories tab; (6) taxonomy tag rename propagation; (7) multi-token tag autocomplete in ui/frontmatter_editor.py. \ No newline at end of file