taskai-cli 1.9.25__tar.gz → 1.9.26__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.
Files changed (58) hide show
  1. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/PKG-INFO +1 -1
  2. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/pyproject.toml +1 -1
  3. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/canvas.js +7 -1
  4. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/.github/workflows/publish-to-pypi.yml +0 -0
  5. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/.github/workflows/test.yml +0 -0
  6. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/.gitignore +0 -0
  7. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/.readthedocs.yaml +0 -0
  8. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/CHANGELOG.md +0 -0
  9. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/DEVLOG.md +0 -0
  10. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/DEVPLAN.md +0 -0
  11. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/PHASE_1_RELEASE.md +0 -0
  12. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/README.md +0 -0
  13. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/TRIAGE.md +0 -0
  14. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/.gitignore +0 -0
  15. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/_static/.gitkeep +0 -0
  16. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/_static/demo-script.md +0 -0
  17. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/ai-integration.md +0 -0
  18. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/browser-mode.md +0 -0
  19. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/commands.md +0 -0
  20. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/conf.py +0 -0
  21. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/configuration.md +0 -0
  22. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/getting-started.md +0 -0
  23. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/index.md +0 -0
  24. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/interactive-mode.md +0 -0
  25. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/item-data.md +0 -0
  26. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/managing-the-tree.md +0 -0
  27. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/docs/requirements.txt +0 -0
  28. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/scripts/bump_version.py +0 -0
  29. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/browser.py +0 -0
  30. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/cli.py +0 -0
  31. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/config.py +0 -0
  32. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/dates.py +0 -0
  33. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/errors.py +0 -0
  34. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/filters.py +0 -0
  35. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/help_menu.py +0 -0
  36. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/json_dir_database.py +0 -0
  37. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/llm_models.py +0 -0
  38. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/models.py +0 -0
  39. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/services/ai.py +0 -0
  40. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/services/pomodoro.py +0 -0
  41. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/services/repair_database.py +0 -0
  42. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/services/user_setup.py +0 -0
  43. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/camera.js +0 -0
  44. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/config.js +0 -0
  45. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/console.js +0 -0
  46. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/editpanel.js +0 -0
  47. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/graph.js +0 -0
  48. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/index.html +0 -0
  49. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/navigation.js +0 -0
  50. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/render.js +0 -0
  51. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/shortcuts.js +0 -0
  52. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/static/style.css +0 -0
  53. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/taskai/views.py +0 -0
  54. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/test/test_chains.py +0 -0
  55. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/test/test_cli.py +0 -0
  56. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/test/test_execution.py +0 -0
  57. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/test/test_json_dir_database.py +0 -0
  58. {taskai_cli-1.9.25 → taskai_cli-1.9.26}/test/test_view.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: taskai-cli
3
- Version: 1.9.25
3
+ Version: 1.9.26
4
4
  Author-email: Alex Paskal <alexcpaskal@gmail.com>
5
5
  Requires-Python: >=3.12
6
6
  Requires-Dist: fastapi>=0.141.1
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "taskai-cli"
3
- version = "1.9.25"
3
+ version = "1.9.26"
4
4
  description = ""
5
5
  authors = [{name = "Alex Paskal", email = "alexcpaskal@gmail.com"}]
6
6
  readme = "README.md"
@@ -45,10 +45,16 @@ function applyTree(itemsById) {
45
45
  // it's gone (e.g. just deleted), fall back to the previously-selected
46
46
  // node before it, and only give up to the synthetic root if that's gone too.
47
47
  const prevId = state.selectedNode ? state.selectedNode.id : null;
48
- const resolved = (prevId && state.graph.getNode(prevId))
48
+ const kept = prevId && state.graph.getNode(prevId);
49
+ const resolved = kept
49
50
  || (state.previousSelectedId && state.graph.getNode(state.previousSelectedId))
50
51
  || state.graph.rootNode;
51
52
  selectNode(resolved);
53
+
54
+ // the selection vanished (e.g. it was just deleted) and fell back to a
55
+ // real node: bring that node into view. Falling back to the synthetic
56
+ // root leaves the camera alone.
57
+ if (!kept && resolved !== state.graph.rootNode) state.camera.focusOnNode(resolved);
52
58
  }
53
59
 
54
60
  async function loadTree() {
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