Release/1.3.0 - #63
Open
trifonovmixail wants to merge 229 commits into
Open
Conversation
- pin the empty-string year of the destructive prune_topics: a domain test (current year supplies the candidates, other years untouched) and a CLI test (-y '' prune --dry-run takes the current year, not the full tree) - pin the documented no-validation pass-through of the group -y value at CLI level: an off-grammar year yields an empty result, exit 0 - test_cli.py: the history group help-surface assertion now covers all five subcommands, matching the corrected CODEMANIFEST wording
Three independent CI failure root causes, fixed:
- Reject a lone trailing dot ('plan.') as an empty extension in
resolve_topic_file: PurePath.suffix returns '.' for it on Python 3.14,
bypassing the non-empty-suffix contract (goga/history/paths.py,
goga/history/CODEMANIFEST requirement updated to match)
- Add portable is_kw_only_dataclass helper to tests/conftest.py and use
it across test modules: _DataclassParams.kw_only exists only from
Python 3.12, causing AttributeError in 15 tests on 3.10/3.11
- Apply ruff format to goga/ and tests/ (formatting-only changes across
the remaining files, plus .usages/*.md python blocks per ruff 0.16)
- Add reflect stage (incidents.md) to the bugfix workflow
- fix five broken anchors in lint/configuration pages; add an Env layering section to the home configuration page (mkdocs build --strict is clean) - add traceability entries for the cli/history, cli/topics, cli/hooks pages - point edit_uri at the 1.3.x maintenance branch
The convention requires the docstring first line to end with a period. Thirteen public summaries were wrapped mid-sentence so the first physical line carried no period: seven fit on a single line and were collapsed, six were split into a summary sentence plus a continuation sentence.
The convention requires one blank line between logical blocks inside function and method bodies: initialization before conditionals and loops, data preparation before processing, processing before the return. Inserted 217 blank lines at 217 verified boundaries across 46 in-scope files; tightly coupled guard pairs (a value computed and immediately tested) were reviewed and kept as-is.
- connect memory-emission practice via goga/pipeline Imports and annotations - drop legacy/current-state change declarations from annotations and usages - state the extend strict-validation rule in parse_workflow requirements - translate memory and memory-emission practices to English - make refs-and-switching examples self-contained (no goga.history import)
goga topics create now leaves the caller on their branch by default: the fresh branch is planted at one quarantined commit carrying todo.md on top of the resolved base, while the working copy, the index, and HEAD stay untouched. The todo is required on this path — the work exists only through its committed todo.md. The previous behavior — checking out the fresh branch with its topic directory and an uncommitted todo — moves behind the new --switch/-s flag, where the todo is optional. --switch together with --publish is a clean error; the publication path and the publication ask are unchanged. The quarantine plant lives in publishing (_plant_topic_branch) and is shared with publish_topic. CODEMANIFESTs, usages, docs, and README are updated to the new semantics; tests cover both paths, the guards, and real-git branch behavior. BREAKING CHANGE: goga topics create no longer checks out the created branch and no longer creates the topic directory in the working copy by default; pass --switch/-s for the previous behavior, and the todo is now required without --switch or --publish.
goga topics board now closes every record — the last included — with a row divider: the header separator's own dash run, printed after the record's wrapped status lines, which stay undivided. Rows no longer visually merge into one block. render.py echoes _separator(caps) after each record's lines; the CODEMANIFEST gains the algorithm step and the row-divider requirement; the topics-command usage and docs/cli/topics.md document the divider and show it in the sample output. New TestRenderTopicBoardRowDividers cases cover the closing divider, the undivided continuation lines, and the --info grid; the existing tests learn the new line counts and indices, and the integration _board_rows parser skips divider lines. BREAKING CHANGE: the stdout of goga topics board changes — every record, the last included, is now followed by a separator row identical to the header separator; scripts parsing the board table must skip those rows.
Move every command page into its functional domain under docs/features/ (fourteen domains, five pages each: overview, CLI, configuration, hooks, API), absorb the Pipelines and Tools sections into the pipelines and tools domains, turn the CLI section into a command-to-domain cross-road, and move `goga config` next to the configuration it reads. Simplify project configuration to the global fields plus the codemanifest section and a domain-section map; document each domain-owned section (build, pipeline, tools, usages, lint, topics) in its domain page. Add per-domain facade API references from the CODEMANIFEST contracts, a status-scale hook page for history, a registration contract page for the hooks platform, and a lint error catalog. Re-trace every page in .goga/tools/mkdocs/traceability.yml and rewrite all links (mkdocs build --strict passes clean).
Contracts-review fixes (approved via file dialog): - config/project: rephrase the review-patience loading constraint into positive form instead of referencing the removed build.review_patience key - build-usage, project-configuration: drop the sentences pointing at the unparsed build.review_patience config key - history/git: drop the annotation sentence referencing the goga/history facade (cross-cell reference in annotations)
- route hook and status-registration warnings through logging instead of stderr prints (hooks dispatch/registry/tools, history statuses) - sync CODEMANIFEST and .usages wording with the logging change and drop the invalid Returns/Raises sections from TopicsConfig docstring - fix README topics create examples and docs/features pages (option order, CELLS optionality, branch-name return type, agent list) - move cross-entity tests into tests/integration/, rename test_topics_command.py to test_topics.py, extend negative-path coverage, and apply ruff formatting across sources and tests - add the update-docs extend stage to the review workflow
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.
No description provided.