git-juggler 0.2.16__tar.gz → 0.2.17__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {git_juggler-0.2.16 → git_juggler-0.2.17}/.gitignore +2 -1
- {git_juggler-0.2.16 → git_juggler-0.2.17}/PKG-INFO +32 -5
- {git_juggler-0.2.16 → git_juggler-0.2.17}/README.md +12 -4
- git_juggler-0.2.17/pyproject.toml +53 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/scripts/dev.sh +4 -10
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/main.py +1 -1
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/vite.config.ts +5 -2
- git_juggler-0.2.16/CLAUDE.md +0 -101
- git_juggler-0.2.16/pyproject.toml +0 -30
- {git_juggler-0.2.16 → git_juggler-0.2.17}/.github/workflows/build-package.yml +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/LICENSE +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/notes.txt +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/resources/git-juggler-demo-1.gif +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/resources/git-juggler-demo-2.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/resources/git-juggler-demo-3.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/resources/git-juggler-demo-4.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/scripts/build-package.sh +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/__init__.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/__init__.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/hook_events.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/hooks.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/__init__.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/activity_models.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/claude_sessions.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/claude_transcripts.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/git_resolver.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/opencode_sessions.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/paths.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/text.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/api/__init__.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/api/agents.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/api/ci.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/api/config.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/api/git.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/api/repos.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/api/terminal.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/app.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/ci/__init__.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/ci/github_actions.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/ci/http.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/ci/jenkins.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/ci/run_cache.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/config.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/dev_app.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/agent-logos/claude.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/agent-logos/opencode.webp +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/assets/index-BOaJc15H.js +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/assets/index-DRsp7rcC.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/ci-logos/jenkins.webp +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/git-juggler.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/index.html +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/logo.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/__init__.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/command.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/conflicts.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/data.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/detail.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/diff.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/gitfiles.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/refs.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/status.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/git/utils.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/repo_discovery.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/schemas.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/terminal.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/themes.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/ui/__init__.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/ui/folder_picker.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/conftest.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/hook_event_files.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_agent_hooks.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_agent_tracking.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_ci.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_ci_poll.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_ci_poll_route.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_claude_sessions_data.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_commit_detail.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_file_diff.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_git_conflicts.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_git_data.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_github_actions.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_jenkins.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_opencode_sessions.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_pick_folder.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_preferences.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_repos.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_run_cache.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/tests/test_themes.py +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/.gitignore +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/README.md +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/index.html +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/package-lock.json +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/package.json +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/public/agent-logos/claude.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/public/agent-logos/opencode.webp +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/public/ci-logos/jenkins.webp +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/public/git-juggler.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/public/logo.png +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/App.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/App.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/api/client.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/api/types.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Agents/AgentActivityPanel.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Agents/AgentHoverCard.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Agents/AgentStatusPopover.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Agents/agentFormat.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Badges/BranchBadge.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Badges/CiRunBadge.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Badges/StashBadge.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Badges/TagBadge.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Badges/ciStatus.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Branches/DeleteBranchModal.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/CIRunPopover.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/CommandPalette/CommandPalette.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Commits/CommitDetail.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Commits/CommitList.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Commits/CommitRow.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Commits/LineCounts.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Commits/UncommittedRow.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Conflicts/ConflictsPanel.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/ContextMenu/BranchContextMenu.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/ContextMenu/CommitContextMenu.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/ContextMenu/CreateBranchModal.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/ContextMenu/CreateTagModal.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/ContextMenu/RepoContextMenu.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/ContextMenu/TagContextMenu.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Diff/FileDiffModal.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Graph/GraphPanel.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Graph/branchColor.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Graph/computeColumns.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Graph/laneWidth.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/GraphToolbar/GraphToolbar.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/AgentQuickPicks.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/AgentsSettings.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/CiPollField.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/DirectoryBrowserModal.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/GitHubSettings.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/JenkinsSettings.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/MainMenu.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/RepoPathsSettings.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/ThemePicker.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Menu/ThemeQuickPicks.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Pipelines/PipelinesPanel.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Search/MultiSelect.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Search/SearchBox.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Sidebar/NewGroupModal.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Sidebar/RepoList.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Sidebar/Sidebar.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Sidebar/panelKit.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Tabs/TabsBar.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Tags/CreateTagDialog.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Tags/DeleteTagModal.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Terminal/TerminalPanel.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/Welcome/WelcomeWizard.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/icons.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/inputs/NumberField.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/inputs/TemplateInput.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/inputs/TextField.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/inputs/ToggleField.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/components/inputs/styles.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/index.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/index.tsx +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/agentRings.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/agentStatusPopoverData.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/appTheme.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/branchVisibility.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/bundledThemes.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/ciPoll.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/ciRunPopoverData.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/color.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/dismissOnOutsideClick.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/flip.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/formatDate.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/jenkinsUrlTemplate.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/preferenceSender.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/scrollToCommit.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/sideBySide.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/stageWindow.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/stripAnsi.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/swallowNextClick.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/templateTokens.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/lib/vscodeTheme.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/agents.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/ci.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/graph.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/overlayStack.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/overlays.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/preferenceSync.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/preferences.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/repos.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/settings.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/store.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/storeCore.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/tabs.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/terminal.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/state/themes.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/styles/ci.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/styles/commits.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/styles/graph.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/styles/menu.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/styles/sidebar.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/src/styles/terminal.css +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/agentFormat.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/agentRings.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/agentStatusPopoverData.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/ciPoll.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/ciRunPopoverData.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/computeColumns.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/preferenceSender.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/sideBySide.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/stageWindow.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/templateTokens.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tests/vscodeTheme.test.ts +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tsconfig.app.json +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tsconfig.json +0 -0
- {git_juggler-0.2.16 → git_juggler-0.2.17}/src/frontend/tsconfig.node.json +0 -0
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: git-juggler
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.17
|
|
4
4
|
Summary: A local Git dashboard for people juggling agents and too many repos.
|
|
5
|
+
Project-URL: Homepage, https://github.com/franz38/git-juggler
|
|
6
|
+
Project-URL: Repository, https://github.com/franz38/git-juggler
|
|
7
|
+
Project-URL: Issues, https://github.com/franz38/git-juggler/issues
|
|
8
|
+
Project-URL: Releases, https://github.com/franz38/git-juggler/releases
|
|
5
9
|
License-Expression: MIT
|
|
6
10
|
License-File: LICENSE
|
|
11
|
+
Keywords: agents,dashboard,git,repositories,terminal
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Web Environment
|
|
14
|
+
Classifier: Framework :: FastAPI
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: MacOS
|
|
18
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
19
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
25
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
7
26
|
Requires-Python: >=3.10
|
|
8
27
|
Requires-Dist: fastapi>=0.110
|
|
9
28
|
Requires-Dist: gitpython>=3.1
|
|
@@ -30,6 +49,14 @@ Watch agents work live, follow every repo’s git graph, and catch what changed
|
|
|
30
49
|
- Connects GitHub Actions and Jenkins runs to commits and active pipelines.
|
|
31
50
|
- VS Code-compatible themes.
|
|
32
51
|
|
|
52
|
+
## Privacy / local-first
|
|
53
|
+
|
|
54
|
+
- Runs locally and binds to `127.0.0.1` by default.
|
|
55
|
+
- No telemetry or analytics are built in, and none are planned.
|
|
56
|
+
- Repo scanning and Claude/OpenCode session tracking read local files on your machine.
|
|
57
|
+
- Git mutations run through visible terminal commands, so you can see the exact command and output.
|
|
58
|
+
- Network requests are only used for features you configure, such as CI integrations.
|
|
59
|
+
|
|
33
60
|
## How to install
|
|
34
61
|
|
|
35
62
|
git-juggler is published on PyPI. The recommended way to install it is with
|
|
@@ -46,7 +73,7 @@ to seed the initial search path; after that, search paths are managed in the app
|
|
|
46
73
|
from the welcome wizard or Settings.
|
|
47
74
|
|
|
48
75
|
- `--host HOST` changes the bind host from the default `127.0.0.1`.
|
|
49
|
-
- `--port PORT` changes the backend port from the default `
|
|
76
|
+
- `--port PORT` changes the backend port from the default `8788`.
|
|
50
77
|
- `--no-open` disables opening the app in your browser automatically.
|
|
51
78
|
|
|
52
79
|
If you don't have pipx yet:
|
|
@@ -85,7 +112,7 @@ Use the dev script to start both the backend and frontend dev servers:
|
|
|
85
112
|
```
|
|
86
113
|
|
|
87
114
|
- `path-to-scan` is optional. On first run, it seeds the folder whose immediate children are scanned for Git repos.
|
|
88
|
-
- `--port PORT` is optional. It changes the backend port from the default `
|
|
115
|
+
- `--port PORT` is optional. It changes the backend port from the default `8788`; the dev script passes the selected port to Vite automatically.
|
|
89
116
|
- `--no-open` disables opening the app in your browser automatically.
|
|
90
117
|
|
|
91
118
|
Or run them manually in two terminals:
|
|
@@ -99,7 +126,7 @@ python3 -m venv .venv
|
|
|
99
126
|
```
|
|
100
127
|
cd src/frontend
|
|
101
128
|
npm install
|
|
102
|
-
npm run dev # http://localhost:5173 (proxies /api and /ws to :
|
|
129
|
+
npm run dev # http://localhost:5173 (proxies /api and /ws to :8788)
|
|
103
130
|
```
|
|
104
131
|
|
|
105
132
|
Open http://localhost:5173.
|
|
@@ -113,7 +140,7 @@ cd src/frontend && npm install && npm run build
|
|
|
113
140
|
cd ../.. && .venv/bin/git-juggler <path-to-scan> [--no-open]
|
|
114
141
|
```
|
|
115
142
|
|
|
116
|
-
The backend serves the built frontend in this mode, so only port
|
|
143
|
+
The backend serves the built frontend in this mode, so only port 8788 is needed.
|
|
117
144
|
By default, it opens the app in your browser.
|
|
118
145
|
|
|
119
146
|
## Build a Python package
|
|
@@ -17,6 +17,14 @@ Watch agents work live, follow every repo’s git graph, and catch what changed
|
|
|
17
17
|
- Connects GitHub Actions and Jenkins runs to commits and active pipelines.
|
|
18
18
|
- VS Code-compatible themes.
|
|
19
19
|
|
|
20
|
+
## Privacy / local-first
|
|
21
|
+
|
|
22
|
+
- Runs locally and binds to `127.0.0.1` by default.
|
|
23
|
+
- No telemetry or analytics are built in, and none are planned.
|
|
24
|
+
- Repo scanning and Claude/OpenCode session tracking read local files on your machine.
|
|
25
|
+
- Git mutations run through visible terminal commands, so you can see the exact command and output.
|
|
26
|
+
- Network requests are only used for features you configure, such as CI integrations.
|
|
27
|
+
|
|
20
28
|
## How to install
|
|
21
29
|
|
|
22
30
|
git-juggler is published on PyPI. The recommended way to install it is with
|
|
@@ -33,7 +41,7 @@ to seed the initial search path; after that, search paths are managed in the app
|
|
|
33
41
|
from the welcome wizard or Settings.
|
|
34
42
|
|
|
35
43
|
- `--host HOST` changes the bind host from the default `127.0.0.1`.
|
|
36
|
-
- `--port PORT` changes the backend port from the default `
|
|
44
|
+
- `--port PORT` changes the backend port from the default `8788`.
|
|
37
45
|
- `--no-open` disables opening the app in your browser automatically.
|
|
38
46
|
|
|
39
47
|
If you don't have pipx yet:
|
|
@@ -72,7 +80,7 @@ Use the dev script to start both the backend and frontend dev servers:
|
|
|
72
80
|
```
|
|
73
81
|
|
|
74
82
|
- `path-to-scan` is optional. On first run, it seeds the folder whose immediate children are scanned for Git repos.
|
|
75
|
-
- `--port PORT` is optional. It changes the backend port from the default `
|
|
83
|
+
- `--port PORT` is optional. It changes the backend port from the default `8788`; the dev script passes the selected port to Vite automatically.
|
|
76
84
|
- `--no-open` disables opening the app in your browser automatically.
|
|
77
85
|
|
|
78
86
|
Or run them manually in two terminals:
|
|
@@ -86,7 +94,7 @@ python3 -m venv .venv
|
|
|
86
94
|
```
|
|
87
95
|
cd src/frontend
|
|
88
96
|
npm install
|
|
89
|
-
npm run dev # http://localhost:5173 (proxies /api and /ws to :
|
|
97
|
+
npm run dev # http://localhost:5173 (proxies /api and /ws to :8788)
|
|
90
98
|
```
|
|
91
99
|
|
|
92
100
|
Open http://localhost:5173.
|
|
@@ -100,7 +108,7 @@ cd src/frontend && npm install && npm run build
|
|
|
100
108
|
cd ../.. && .venv/bin/git-juggler <path-to-scan> [--no-open]
|
|
101
109
|
```
|
|
102
110
|
|
|
103
|
-
The backend serves the built frontend in this mode, so only port
|
|
111
|
+
The backend serves the built frontend in this mode, so only port 8788 is needed.
|
|
104
112
|
By default, it opens the app in your browser.
|
|
105
113
|
|
|
106
114
|
## Build a Python package
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "git-juggler"
|
|
3
|
+
dynamic = ["version"]
|
|
4
|
+
description = "A local Git dashboard for people juggling agents and too many repos."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
license = "MIT"
|
|
8
|
+
keywords = ["agents", "dashboard", "git", "repositories", "terminal"]
|
|
9
|
+
classifiers = [
|
|
10
|
+
"Development Status :: 4 - Beta",
|
|
11
|
+
"Environment :: Web Environment",
|
|
12
|
+
"Framework :: FastAPI",
|
|
13
|
+
"Intended Audience :: Developers",
|
|
14
|
+
"License :: OSI Approved :: MIT License",
|
|
15
|
+
"Operating System :: MacOS",
|
|
16
|
+
"Operating System :: Microsoft :: Windows",
|
|
17
|
+
"Operating System :: POSIX :: Linux",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3.10",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Programming Language :: Python :: 3.13",
|
|
23
|
+
"Topic :: Software Development :: Version Control :: Git",
|
|
24
|
+
]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"fastapi>=0.110",
|
|
27
|
+
"uvicorn[standard]>=0.29",
|
|
28
|
+
"gitpython>=3.1",
|
|
29
|
+
"pywinpty>=2.0; sys_platform == 'win32'",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.scripts]
|
|
33
|
+
git-juggler = "git_juggler.main:cli"
|
|
34
|
+
|
|
35
|
+
[project.urls]
|
|
36
|
+
Homepage = "https://github.com/franz38/git-juggler"
|
|
37
|
+
Repository = "https://github.com/franz38/git-juggler"
|
|
38
|
+
Issues = "https://github.com/franz38/git-juggler/issues"
|
|
39
|
+
Releases = "https://github.com/franz38/git-juggler/releases"
|
|
40
|
+
|
|
41
|
+
[build-system]
|
|
42
|
+
requires = ["hatchling", "hatch-vcs"]
|
|
43
|
+
build-backend = "hatchling.build"
|
|
44
|
+
|
|
45
|
+
[tool.hatch.version]
|
|
46
|
+
source = "vcs"
|
|
47
|
+
|
|
48
|
+
[tool.hatch.build.targets.wheel]
|
|
49
|
+
packages = ["src/backend/git_juggler"]
|
|
50
|
+
artifacts = ["src/backend/git_juggler/frontend_dist/**"]
|
|
51
|
+
|
|
52
|
+
[tool.hatch.build.targets.sdist]
|
|
53
|
+
artifacts = ["src/backend/git_juggler/frontend_dist/**"]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# Runs the backend and frontend dev servers together, both hot-reloading.
|
|
3
|
-
# See
|
|
3
|
+
# See README.md's "Dev mode" section for the equivalent manual steps.
|
|
4
4
|
set -euo pipefail
|
|
5
5
|
|
|
6
6
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
7
|
-
BACKEND_PORT=
|
|
7
|
+
BACKEND_PORT=8788
|
|
8
8
|
OPEN_BROWSER=1
|
|
9
9
|
|
|
10
10
|
usage() {
|
|
@@ -12,8 +12,7 @@ usage() {
|
|
|
12
12
|
echo " path-to-scan optional: directory whose first-level children get scanned for git repos." >&2
|
|
13
13
|
echo " Only used to seed the config on first run; scan paths are otherwise" >&2
|
|
14
14
|
echo " managed in the app (welcome wizard / Settings)." >&2
|
|
15
|
-
echo " --port PORT backend port (default:
|
|
16
|
-
echo " src/frontend/vite.config.ts's proxy target -- don't commit that change." >&2
|
|
15
|
+
echo " --port PORT backend port (default: 8788)." >&2
|
|
17
16
|
echo " --no-open don't open the app in a browser automatically." >&2
|
|
18
17
|
}
|
|
19
18
|
|
|
@@ -115,7 +114,7 @@ fi
|
|
|
115
114
|
BACKEND_PID=$!
|
|
116
115
|
|
|
117
116
|
echo "Starting frontend dev server..."
|
|
118
|
-
(cd "$ROOT_DIR/src/frontend" && npm run dev) &
|
|
117
|
+
(cd "$ROOT_DIR/src/frontend" && GIT_JUGGLER_BACKEND_URL="http://127.0.0.1:$BACKEND_PORT" npm run dev) &
|
|
119
118
|
FRONTEND_PID=$!
|
|
120
119
|
|
|
121
120
|
if [ "$OPEN_BROWSER" = "1" ]; then
|
|
@@ -125,11 +124,6 @@ fi
|
|
|
125
124
|
echo ""
|
|
126
125
|
echo "Backend: http://127.0.0.1:$BACKEND_PORT"
|
|
127
126
|
echo "Frontend: http://localhost:5173 <- open this"
|
|
128
|
-
if [ "$BACKEND_PORT" != "8000" ]; then
|
|
129
|
-
echo ""
|
|
130
|
-
echo "NOTE: backend is on a non-default port. Update the proxy target in" \
|
|
131
|
-
"src/frontend/vite.config.ts to http://127.0.0.1:$BACKEND_PORT (local-only change, do not commit)."
|
|
132
|
-
fi
|
|
133
127
|
echo ""
|
|
134
128
|
echo "Press Ctrl+C to stop both."
|
|
135
129
|
|
|
@@ -45,7 +45,7 @@ def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
|
|
|
45
45
|
help="Directory whose first-level children will be scanned for git repos (default: cwd)",
|
|
46
46
|
)
|
|
47
47
|
parser.add_argument("--host", default="127.0.0.1")
|
|
48
|
-
parser.add_argument("--port", type=int, default=
|
|
48
|
+
parser.add_argument("--port", type=int, default=8788)
|
|
49
49
|
parser.add_argument("--reload", action="store_true", help="Enable dev auto-reload")
|
|
50
50
|
parser.add_argument("--no-open", action="store_true", help="Do not open the app in a browser")
|
|
51
51
|
args = parser.parse_args(argv)
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { defineConfig } from 'vite'
|
|
2
2
|
import solid from 'vite-plugin-solid'
|
|
3
3
|
|
|
4
|
+
const backendUrl = process.env.GIT_JUGGLER_BACKEND_URL ?? "http://127.0.0.1:8788"
|
|
5
|
+
const backendWsUrl = backendUrl.replace(/^http/, "ws")
|
|
6
|
+
|
|
4
7
|
export default defineConfig({
|
|
5
8
|
plugins: [solid()],
|
|
6
9
|
server: {
|
|
7
10
|
proxy: {
|
|
8
|
-
"/api":
|
|
11
|
+
"/api": backendUrl,
|
|
9
12
|
"/ws": {
|
|
10
|
-
target:
|
|
13
|
+
target: backendWsUrl,
|
|
11
14
|
ws: true,
|
|
12
15
|
},
|
|
13
16
|
},
|
git_juggler-0.2.16/CLAUDE.md
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# git-juggler
|
|
2
|
-
|
|
3
|
-
## How to run locally
|
|
4
|
-
|
|
5
|
-
Dev mode (hot reload on both sides):
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
python3 -m venv .venv
|
|
9
|
-
.venv/bin/pip install -e .
|
|
10
|
-
.venv/bin/git-juggler <path-to-scan> --reload # http://127.0.0.1:8000
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
cd src/frontend
|
|
15
|
-
npm install
|
|
16
|
-
npm run dev # http://localhost:5173 (proxies /api and /ws to :8000)
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Open http://localhost:5173 — that's the app, hot-reloading both frontend and backend.
|
|
20
|
-
|
|
21
|
-
- `<path-to-scan>` is the directory whose first-level children get scanned for git repos (e.g. `~/Documents/2026`).
|
|
22
|
-
- If port 8000 is unavailable on this machine (it can be occupied by unrelated local processes), run the backend with a different `--port` and update `src/frontend/vite.config.ts`'s proxy target to match — but don't commit that port change, it's a local workaround, not a project default.
|
|
23
|
-
- Single-port production mode (backend serves the built frontend, no Vite) is documented in `README.md`.
|
|
24
|
-
- Unless explicitly told otherwise, run both the backend and frontend from
|
|
25
|
-
the primary checkout on the `main` branch — not from a
|
|
26
|
-
`.claude/worktrees/*` copy. Worktrees exist to isolate one task's
|
|
27
|
-
in-progress changes; they don't reflect what's actually landed on `main`,
|
|
28
|
-
so running (or leaving running) a dev server out of one can silently show
|
|
29
|
-
stale or unrelated behavior for work that's already merged.
|
|
30
|
-
|
|
31
|
-
## Architecture guideline: git mutations go through the terminal only
|
|
32
|
-
|
|
33
|
-
All UI-triggered git actions (e.g. right-click on a commit → Checkout) must be
|
|
34
|
-
executed via the frontend terminal (`runInTerminal` in `src/frontend/src/state/store.ts`),
|
|
35
|
-
not via a dedicated backend API endpoint.
|
|
36
|
-
|
|
37
|
-
- The backend only ever performs **read** operations on repos (GitPython,
|
|
38
|
-
used for the commit graph, repo listing, branch/tag/stash info, etc.).
|
|
39
|
-
- Any action that *changes* repo state (checkout, commit, branch, stash,
|
|
40
|
-
merge, reset, push, pull, ...) must be implemented as a command sent to
|
|
41
|
-
that repo's terminal session, the same way checkout is.
|
|
42
|
-
- Do not add a backend route that shells out to `git` (or calls a mutating
|
|
43
|
-
GitPython method) to perform an action on behalf of the UI.
|
|
44
|
-
|
|
45
|
-
Why: the terminal is the single point where git is actually invoked, so
|
|
46
|
-
there's exactly one code path to reason about for anything that mutates a
|
|
47
|
-
repo, and the user always sees the real command (and its real output/errors)
|
|
48
|
-
run for any git action, instead of a backend silently doing it.
|
|
49
|
-
|
|
50
|
-
## Testing: use the demo repo, never the user's real repos
|
|
51
|
-
|
|
52
|
-
`~/Documents/2026/demo-repo` is a disposable local git repo created
|
|
53
|
-
specifically for testing git-juggler — it has multiple branches
|
|
54
|
-
(`main`, `feature/onboarding` merged, `feature/dashboard` unmerged), a merge
|
|
55
|
-
commit, a tag (`v0.1.0`), and a stash, with a clean working tree.
|
|
56
|
-
|
|
57
|
-
- Always test UI actions that mutate repo state (checkout, fetch, and
|
|
58
|
-
anything added later) against `demo-repo`, never against the user's real
|
|
59
|
-
projects (e.g. anything under `~/Documents/2025/projects`, `fanta-bot`,
|
|
60
|
-
etc.) — those have real uncommitted work and real history that must not be
|
|
61
|
-
disturbed.
|
|
62
|
-
- It's already inside a configured scan path (`~/Documents/2026`), so it
|
|
63
|
-
shows up in the app automatically — no config changes needed to use it.
|
|
64
|
-
- It has no remote configured on purpose. The user will connect it to GitHub
|
|
65
|
-
themselves to test remote-related mechanics (fetch/push/pull against a
|
|
66
|
-
real remote) — don't add a remote to it.
|
|
67
|
-
- If a test needs a specific extra state (dirty working tree, a particular
|
|
68
|
-
conflict, more branches, etc.), set that up in `demo-repo` (or a fresh
|
|
69
|
-
scratch repo elsewhere), not in a real project.
|
|
70
|
-
|
|
71
|
-
## Don't push without consensus
|
|
72
|
-
|
|
73
|
-
Never run `git push` (including to a branch, a fork, or opening a PR) until
|
|
74
|
-
the user has explicitly agreed to it in that conversation. Committing
|
|
75
|
-
locally is fine; pushing is not, until they say so.
|
|
76
|
-
|
|
77
|
-
## todo.txt: notes queue
|
|
78
|
-
|
|
79
|
-
`todo.txt` (repo root, gitignored — never commit it) is the user's plain-text
|
|
80
|
-
list of things to implement. It is split by a marker line:
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
--------------- IMPLEMENTED ----------------
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
- Everything **before** the marker is already implemented.
|
|
87
|
-
- Everything **after** the marker is still to do.
|
|
88
|
-
|
|
89
|
-
When the user asks to implement the todo list (e.g. "implement todo"):
|
|
90
|
-
|
|
91
|
-
1. Do the whole activity in a dedicated worktree (e.g. `todo`), not in the
|
|
92
|
-
primary checkout: enter it before touching any code, and commit there.
|
|
93
|
-
Read `todo.txt` from the primary checkout (it's gitignored, so it isn't
|
|
94
|
-
present in worktrees) and take all the notes after the marker.
|
|
95
|
-
2. Implement them (following the rest of this file's guidelines).
|
|
96
|
-
3. Move the marker line down so it sits after the notes just implemented
|
|
97
|
-
(i.e. those notes now live above it), leaving any not-implemented notes
|
|
98
|
-
below it. Edit only the marker's position; don't rewrite the user's notes. Since `todo.txt` is
|
|
99
|
-
gitignored, this edit is made on the primary checkout's copy.
|
|
100
|
-
|
|
101
|
-
If `todo.txt` doesn't exist, create it containing just the marker line.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "git-juggler"
|
|
3
|
-
dynamic = ["version"]
|
|
4
|
-
description = "A local Git dashboard for people juggling agents and too many repos."
|
|
5
|
-
readme = "README.md"
|
|
6
|
-
requires-python = ">=3.10"
|
|
7
|
-
license = "MIT"
|
|
8
|
-
dependencies = [
|
|
9
|
-
"fastapi>=0.110",
|
|
10
|
-
"uvicorn[standard]>=0.29",
|
|
11
|
-
"gitpython>=3.1",
|
|
12
|
-
"pywinpty>=2.0; sys_platform == 'win32'",
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
[project.scripts]
|
|
16
|
-
git-juggler = "git_juggler.main:cli"
|
|
17
|
-
|
|
18
|
-
[build-system]
|
|
19
|
-
requires = ["hatchling", "hatch-vcs"]
|
|
20
|
-
build-backend = "hatchling.build"
|
|
21
|
-
|
|
22
|
-
[tool.hatch.version]
|
|
23
|
-
source = "vcs"
|
|
24
|
-
|
|
25
|
-
[tool.hatch.build.targets.wheel]
|
|
26
|
-
packages = ["src/backend/git_juggler"]
|
|
27
|
-
artifacts = ["src/backend/git_juggler/frontend_dist/**"]
|
|
28
|
-
|
|
29
|
-
[tool.hatch.build.targets.sdist]
|
|
30
|
-
artifacts = ["src/backend/git_juggler/frontend_dist/**"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/__init__.py
RENAMED
|
File without changes
|
{git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/activity_models.py
RENAMED
|
File without changes
|
{git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/claude_sessions.py
RENAMED
|
File without changes
|
|
File without changes
|
{git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/agents/tracking/git_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{git_juggler-0.2.16 → git_juggler-0.2.17}/src/backend/git_juggler/frontend_dist/git-juggler.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|