Skip to content

GitHub Workbench Phases 7 to 10: Properties on everything, editing and batch, filtering, permissions - #1835

Merged
accesswatch merged 4 commits into
mainfrom
feat/github-workbench-phase7-10
Nov 10, 2026
Merged

accesswatch merged 4 commits into
mainfrom
feat/github-workbench-phase7-10

Conversation

@accesswatch

Copy link
Copy Markdown
Contributor

From the accepted GitHub Workbench PRD (S:\wt\github.md).

  • Leftovers: View (Show, State, Sort, Columns, Load All), Go (next and previous unread, Pinned, Favorites, saved searches), Repository Admin and Codespaces doors run in the Workbench, Workbench help in the F1 reference, help coverage --strict for github.*.
  • Phase 7: the Properties engine: REST plus GraphQL viewer fields, changed fields only, conflict check with Keep Theirs or Use Mine, verify after save, one sentence of what changed, tier 2 previews, tier 3 typed confirmation, multi-select sheets with Mixed values, batches with results and Retry Failed, Undo and Redo from a persistent Change History.
  • Phase 8: 39 sheet kinds covering Appendix C, You pages, rulesets with a plain-words Summary, teams in full, write-only secrets sealed with PyNaCl, project item fields; removal as easy as adding; the Teams-out decision removed.
  • Phase 9: 17 Quick Filters, Show Only and Hide, the Filter Builder (Ctrl+Alt+F), Group By as tree nodes, honest local filtering.
  • Phase 10: GitHub Permissions (26 scopes, one-step add), Change History, Read Only/Organize/Full with Safe Mode, tiers and self-lockout guards, Access lists, My Access Here, View As Role, Compare Roles, Why Can't They?, Access Review and Bulk Access Changes; GATE-GITHUB-PERM.

2075 tests passed on the merged tree; gate tools pass. Not verified against live GitHub or with a screen reader; request shapes come from GitHub's documentation.

🤖 Generated with Claude Code

Jeff Bishop and others added 4 commits November 10, 2026 01:01
…ltas, a provider-owned Properties

Additive changes to the shared engine for GitHub Phases 7 to 10, kept apart
so the WordPress Workbench can take them on its own:

- quill/core/workbench/menus.py: MenuSub (static or dynamic submenus),
  MenuRow.check and MenuRow.radio, all_rows(). A submenu row may go keyless
  when it has an access letter (twenty filter toggles cannot each have a
  chord, decision 11); problems() checks submenu titles and letters.
  rows() still yields only the keyed top-level rows.
- quill/ui/workbench_frame_commands.py builds submenus, check and radio
  items (the provider's is_checked answers which are on) and fills dynamic
  submenus from the provider's dynamic_menu(key) each time a menu opens.
- quill/core/workbench/properties.py: FieldKind.CHECKLIST and TABLE,
  FieldSpec.create (a picker's New... button), ListDelta, list_states and
  apply_delta for three-state check lists over several objects.
- show_properties hands the whole job to a provider's open_properties(ref,
  rows) when it has one: several rows, or a tree node.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ltering, permissions

Phase 3 to 6 leftovers. View > Show, Open or Closed, Sort By, Columns...
(Ctrl+Shift+U) and Load All (Ctrl+Shift+Page Down); Go > Next and Previous
Unread (Ctrl+Period, Ctrl+Shift+Period) and dynamic Pinned, Favorites and
saved-search submenus; the editor's Repository Admin and Codespaces ids open
the Workbench and run there (main_frame_github_doors.py, ADMIN_DOORS);
Workbench help rendered into docs/f1-help-reference.md; check_help_coverage
--strict also fails on any github.workbench.* gap, and github.workbench_pulls
has its topic. Pre-existing listbox-activation and command-catalogue failures
fixed.

Phase 7, the Properties engine (GH-R-030 to 035). quill/core/github/
sheet_engine.py: load (REST and the viewer fields of Appendix F.1), plan
(only changed fields, one request per endpoint), save with the conflict
check, verify by re-read, the one sentence, and the undo inverse;
workbench_api.py is the two-method transport tests fake. One dialog renders
any sheet (quill/ui/workbench_properties_sheet.py): read-only facts as text
boxes, locked fields with their reason, real check boxes (workbench_check_
group.py; CheckListBox is banned), New Label and New Milestone, OK, Cancel,
Apply (Ctrl+S), F5, Ctrl+1 to 9, last page per kind. Alt+Enter on several rows
opens one sheet with Mixed values and three-state boxes; batch.py previews,
paces and reports per item with Retry Failed. Undo and Redo GitHub Change
(Ctrl+Z, Ctrl+Y) and a persistent Change History (change_log.py).

Phase 8, every Appendix C object's sheet (39 kinds plus project items built
from their project's fields), You pages, rulesets and classic protection with
a plain-words Summary (rulesets.py), teams in full with code review
assignment, secrets sealed write-only, Teams nodes under organizations and
People > My Teams. items_provider.update_items removes as readily as it adds
(GH-R-041). The old "Teams out" decision is gone from repo_admin.py.

Phase 9, filtering: Quick Filters (checked, combined, named in the title),
Show Only and Hide on any row, the Filter Builder (Ctrl+Alt+F) with every
attribute, operators, repository values, Or groups and sort, Group By as tree
nodes (workbench_frame_groups.py), local filtering said honestly.

Phase 10, permissions: GitHub Permissions (every scope, one-step add through
the next sign-in, gh command, classic and fine-grained steps, Check Again),
Change History with Undo, Read Only, Organize and Full per account with Safe
Mode as Read Only, tier previews and typed confirmation, self-lockout refusal,
Access page Add, Change and Remove, My Access, View As Role, Compare Roles,
Why Can't They?, Access Review and Bulk Access Changes. GATE-GITHUB-PERM
(test_github_perm_gate.py) holds every write command and editable field to a
requirement and a tier (write_requirements.py). Egress review row extended.

Shared engine changes are in the previous commit and additive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Guide, generated references

Both changelogs gain Properties for everything, Filtering on every attribute,
and Permissions you can see and control. The GitHub Guide gains Chapter 13,
Properties, filters and permissions, in QUILL and QUILL Lite (QUILL Lite's
leaves out the editor's Repository Admin doors, which it does not have), with
the contents pages and Chapter 12's Next link. Rendered and synced to the
site; unrelated EPUB churn from the render reverted. The keyboard, F1 help and
Workbench references are regenerated (the F1 reference now has the GitHub
Workbench's window purposes, places, menu rows, context-menu rows and options).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e8ab5aa3dd8

# Conflicts:
#	CHANGELOG.md
#	docs/keyboard-reference.epub
#	docs/site/docs/quilllite-changelog.html
#	standalone/quilllite/docs/CHANGELOG.epub
#	standalone/quilllite/docs/CHANGELOG.html
#	standalone/quilllite/docs/CHANGELOG.md
#	standalone/quilllite/docs/github-guide/lite-github-guide-12-the-workbench.epub
@accesswatch
accesswatch merged commit 6b46235 into main Nov 10, 2026
17 of 21 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