Skip to content

0.1.60 - #190

Merged
t00m merged 11 commits into
mainfrom
0.1.60
Aug 19, 2026
Merged

0.1.60#190
t00m merged 11 commits into
mainfrom
0.1.60

Conversation

@t00m

@t00m t00m commented Aug 19, 2026

Copy link
Copy Markdown
Owner

MiAZ 0.1.60

Added

Command line (experimental)

miaz runs headless, so searching works over SSH and in scripts.

miaz repos                                  # repositories, current one marked
miaz search invoice                         # search the current repository
miaz search invoice --repo Work --long      # another one, as a table
miaz search --since last-6-months --json    # structured output

Results are one filename per line, so they pipe straight into other tools:

miaz search --since this-month | xargs -d '\n' ls -lh
miaz search --json | jq -r '.[].concept'
  • Filters map onto the same fields the sidebar uses: --country, --group,
    --sentby, --purpose, --sentto, --concept, --since or --from /
    --to, --pending, --all, --limit.
  • --repo NAME_OR_PATH reads another repository without changing which one
    the window opens next time.
  • Exit codes: 0 results, 1 no results (so if miaz search x; then behaves
    like grep), 2 wrong arguments, 3 repository problem.
  • Filtering goes through the same DocumentQuery the workspace filter uses, so
    the two cannot drift apart. A test asserts a query built from flags equals one
    built by hand.
  • bare miaz still opens the window.

Repository switching without a restart

Settings → Repositories switches in place.


Changed

Dates are read from the document, not guessed

Current document date selection workflow:

  1. The document's own metadata. PDF CreationDate and the XMP packet, EXIF
    DateTimeOriginal for photos, and the creation date inside Word, Excel and
    OpenDocument files. No third-party library needed for any of it.
  2. The filename, where the original name is kept after import.
  3. 99991231 when neither has an answer.

The single-rename date row gained a detect button that re-reads the date on
demand, and the mass-rename Date dialog reports how many dates it actually read.

Logging

  • Console shows INFO and above; the log file keeps DEBUG.
  • One file per run, previous kept as MiAZ.last.log.
  • Diagnostics go to stderr, so stdout stays pipeable.
  • MIAZ_DEBUG=1 puts DEBUG on the console.

Fixed

Plugins

  • Plugins unload completely and start clean.
  • A plugin can no longer add to the interface after it is unloaded.

Data safety

  • The projects file cannot be emptied by a repository mismatch.

Startup and shutdown

  • The plugin directories were scanned twice at startup and again on every
    repository switch. Now only once.
  • Enabling a plugin no longer reload browser pages.
  • Quitting no longer leaves Error releasing name ...WebProcess-<uuid>: The connection is closed behind. WebKit views are stopped before the loop ends.

Packaging

  • deb and rpm build from one export of one commit, so they can no longer
    disagree about their own version or contents.
  • scripts/checks/verify_packages.sh checks both without installing.
  • Flatpak is deprecated. The sandbox cannot reach ocrmypdf or scanimage,
    so OCR and scanning do not work in a Flatpak build. Use deb, rpm or AppImage.

t00m added 11 commits August 14, 2026 06:40
… the default

feat(console): a headless application shell
fix(repository): stop load() from re-resolving the repository
refactor(query): move preset date arithmetic next to the tokens
feat(cli): argument parser and query building
feat(cli): three output renderers
feat(cli): the search command
feat(cli): the repos command
feat(cli): route a known subcommand to the command line
fix(log): write diagnostics to stderr, not stdout
test(boundaries): the console frontend stays GTK free
fix(query): resolve_preset returns dates, not datetimes
docs(cli): document the command line
fix(log): keep every message, colour only a terminal, drop the dead API
fix(log): one logger per name
refactor(log): put every logger in the MiAZ hierarchy
test(ui): drive the real application, and fix the watcher bug it found
docs(tests): mark the checklist items the suite now covers
feat(log): INFO and above on the console, everything in the file
fix(startup): empty var/tmp on every run
fix(colvis): stop the right click crashing after the plugin is deactivated
fix(rename): say when the date is not a date
fix(actions): build the manage view per click
fix(notes): make the Add note button work on the first press
fix(projects): name the projects a document was removed from
fix(shortcuts): make F1 do what the shortcuts window says
docs(checklist): fix the items that were wrong or untestable
fix(plugins): unload completely, start clean the next time
… then from file, finally default to 99991231
fix(util): one archive check, reachable from every caller
test(ui): cover the dialog handler cleanup that was never tested
test(ui): the rename dialog does not stack handlers across openings
perf(plugins): scan the plugin directories once, not once per repository
perf(browser): stop reloading the page once per plugin loaded
fix(rename): drop the deprecated Gtk.Calendar.select_day
chore(icons): raster icons out of the scalable directory
docs(changelog): close the open section as 0.1.60
@t00m
t00m merged commit bcdb8f2 into main Aug 19, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant