Conversation
refactor(workspace): make the filter a value object test(architecture): enforce the layer rules, add a background-task helper refactor(config): give each repository its own configuration store refactor(workspace): replace the global BUSY flag with a counted gate
feat(plugins): helpers for sidebar and header bar contributions
CI runs `ruff check MiAZ data/resources/plugins tests`. Three F401s: - backend/util.py imported timedelta and never used it - tests/test_boundaries.py imported pytest and never used it (mine, added with that file) - miazai/suggestion.py imports make_usage as a deliberate re-export
…round fix(plugins): stop a failed background task from freezing the workspace
…changed feat(projects): add a Manage projects button to the rename dialog tab fix(dialogs): stop dialog bodies from opening fully selected fix(rename): disable the Rename button until the fields make a valid name feat(packaging): verify the .rpm and the .deb without installing them chore(packaging): drop shebangs from modules that are never executed fix(packaging): install /usr/bin/miaz as 0755 fix(rpm): ship the README file instead of the symlink to it docs(rpm): drop the em dash from the package description fix(rpm): put the build counter in Release, not Version chore(rpm): filter the two rpmlint tags that do not apply fix(deb): ship the copyright file and the changelog, drop the bytecode feat(packaging): run the package verifier from build_all.sh fix(packaging): stop installing the aggregate plugin requirements index feat(packaging): build every package from one export of one commit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added
New backend modules
MiAZDocumentIndex(backend/index.py) owns the in-memory view of the repository.DocumentQuery(backend/query.py) turns the workspace filter into a value object.run_in_background(backend/tasks.py) runs work in a thread and returns the result to the main loop.UpdateGate(backend/gate.py) andsuspend_updates()collapse bulk refreshes into one.MiAZConfigStoreowns the eight configurations of a repository and their shared cache.Plugin API
register_query_hooklets a plugin relax a filter condition, whichregister_filter_viewcould never do.Workspace
set_query()writes the query into the sidebar and reads it back, so view and controls always agree.Rename dialog
Packaging
miaz.rpmlintrcrecords the two rpmlint tags that do not apply to a noarch package.Testing and tooling
scripts/checks/verify_packages.shchecks a built rpm and deb without installing either.tests/test_boundaries.pyenforces the two layer rules thatAGENTS.mdonly described.scripts/devel/check_plugin_ui.pydrives a real plugin disable and enable cycle in the running app.Changed
Workspace and filtering
DocumentQuery.matches(item), so five evaluation methods and a memo are gone.MiAZProjectMgtexists; the plugin registers a query hook.Background work
run_in_background, except two that say why they stay raw.MiAZStatus.BUSYmeans one thing again: a repository switch is in progress.MiAZImportFromZipdisables the file watcher before its worker starts, not inside it.Configuration
used-updatedandavailable-updatedcarry the keys that changed, so the cache drops one entry instead of all.Plugin pages
Fixed
Background operations that could freeze the app
MiAZAutoScanstill installs its Add-menu entry when scanner detection fails.MiAZAddFromDirreports a directory import that stopped early instead of ending in silence.Configuration and repository switching
MiAZConfig.set()no longer writes its cache bookkeeping to an empty key.MiAZConfigApp.save()invalidates the cache, which matters because it records the active repository.Plugin lifecycle
MiAZFullscreenbutton comes back after the plugin is disabled and re-enabled.MiAZNotesno longer leaves its page wired to the dead plugin instance.Documents and filters
util.filename_delete, sofilename-deletedfires.__all__instead.Rename dialog
Packaging
copyrightandchangelog.Debian.gzfiles Policy requires..pycfiles compiled by the Fedora build host.Release:, so the package agrees with its own%changelog./usr/bin/miazis installed 0755.