Skip to content

Add et ws organize to reorder dynamic workspaces - #1

Merged
seb4stien merged 2 commits into
mainfrom
feat/ws-organize-clean
Aug 10, 2026
Merged

Add et ws organize to reorder dynamic workspaces#1
seb4stien merged 2 commits into
mainfrom
feat/ws-organize-clean

Conversation

@seb4stien

Copy link
Copy Markdown
Owner

Summary

  • Adds et ws organize, letting you reorder dynamic ("ET-n") workspace slots by editing their order in $EDITOR (git-rebase-todo style); static workspaces stay pinned at their current index.
  • Shows a before/after confirmation summary (old/new slot index, name, linked Jira issue, Tracker time) and asks for confirmation before applying anything.
  • Each moved workspace's Tracker timer follows it to its new slot — since the reorder is a closed permutation over the same slot set (unlike et ws delete's partial left-shift), no timer is ever dropped or orphaned.
  • The active GNOME workspace's index is left unchanged after applying; whatever task now occupies that slot is simply what's shown.
  • Adds CHANGELOG.md documenting notable changes since the v0.1.0 tag.

New API surface (et/ws.py)

  • WsOrganizeError, OrganizeCandidate, OrganizePlanRow
  • prepare_organize, list_organize_candidates, build_organize_editor_content, parse_organize_order, build_organize_plan, apply_organize_plan, open_in_editor
  • Extracted _pad_workspaces_list out of delete_active_workspace for reuse.

Testing

  • uv run pytest: 205 passed, 89.7% coverage
  • uv run ruff check .: clean
  • uv run mypy src: clean

🤖 Generated with GitHub Copilot CLI

seb4stien and others added 2 commits August 10, 2026 18:07
Lets the user reorder dynamic ("ET-n") workspace slots via $EDITOR
(a git-rebase-todo style listing), while static workspaces stay
pinned at their current index. Shows a before/after summary (old
and new slot index, name, linked Jira issue, Tracker time) and asks
for confirmation before applying anything.

Since the reorder is a closed permutation over the same slot set
(unlike et ws delete's partial left-shift), every workspace's bound
Tracker timer follows its entry to its new slot without any timer
being dropped or orphaned, renamed to match the ET-<n> convention.

Adds to et/ws.py: WsOrganizeError, OrganizeCandidate/OrganizePlanRow,
prepare_organize, list_organize_candidates,
build_organize_editor_content, parse_organize_order,
build_organize_plan, apply_organize_plan, open_in_editor. Extracts
_pad_workspaces_list out of delete_active_workspace for reuse.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents notable changes since the v0.1.0 tag, including the new
et ws organize command.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@seb4stien
seb4stien merged commit e55bf09 into main Aug 10, 2026
1 check 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