evo-cli 0.29.0__tar.gz → 0.29.1__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 (153) hide show
  1. {evo_cli-0.29.0 → evo_cli-0.29.1}/PKG-INFO +1 -1
  2. evo_cli-0.29.1/evo_cli/VERSION +1 -0
  3. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_model.py +1 -1
  4. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/edit.py +3 -3
  5. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/views.py +1 -1
  6. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli.egg-info/PKG-INFO +1 -1
  7. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_harness.py +9 -0
  8. evo_cli-0.29.0/evo_cli/VERSION +0 -1
  9. {evo_cli-0.29.0 → evo_cli-0.29.1}/Containerfile +0 -0
  10. {evo_cli-0.29.0 → evo_cli-0.29.1}/HISTORY.md +0 -0
  11. {evo_cli-0.29.0 → evo_cli-0.29.1}/LICENSE +0 -0
  12. {evo_cli-0.29.0 → evo_cli-0.29.1}/MANIFEST.in +0 -0
  13. {evo_cli-0.29.0 → evo_cli-0.29.1}/README.md +0 -0
  14. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/__init__.py +0 -0
  15. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/__main__.py +0 -0
  16. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/base.py +0 -0
  17. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/cli.py +0 -0
  18. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/__init__.py +0 -0
  19. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/agent_toy.py +0 -0
  20. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/claude_code.py +0 -0
  21. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/cloudflare.py +0 -0
  22. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/cred.py +0 -0
  23. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/download.py +0 -0
  24. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/fix_claude.py +0 -0
  25. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/gdrive.py +0 -0
  26. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/gh.py +0 -0
  27. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/__init__.py +0 -0
  28. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_dag.py +0 -0
  29. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_git.py +0 -0
  30. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_hub.py +0 -0
  31. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_mirror.py +0 -0
  32. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_mutate.py +0 -0
  33. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_paths.py +0 -0
  34. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_render.py +0 -0
  35. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/_server.py +0 -0
  36. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/check.py +0 -0
  37. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/clone.py +0 -0
  38. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/pull.py +0 -0
  39. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/serve.py +0 -0
  40. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/show.py +0 -0
  41. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/index-Cs7hXRPJ.css +0 -0
  42. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/index-CuNOlaH7.js +0 -0
  43. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  44. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  45. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  46. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  47. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  48. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  49. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  50. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  51. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  52. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  53. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  54. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  55. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/harness/web/index.html +0 -0
  56. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/hwid.py +0 -0
  57. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/hwid_reset.py +0 -0
  58. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/image.py +0 -0
  59. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/localproxy.py +0 -0
  60. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/mcp.py +0 -0
  61. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/miniconda.py +0 -0
  62. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/netcheck.py +0 -0
  63. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/ngrok.py +0 -0
  64. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/opencode.py +0 -0
  65. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/openvpn.py +0 -0
  66. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/plantuml.py +0 -0
  67. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/__init__.py +0 -0
  68. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/_dns.py +0 -0
  69. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/_dpi.py +0 -0
  70. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/_hosts.py +0 -0
  71. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/_probe.py +0 -0
  72. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/check.py +0 -0
  73. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/fix.py +0 -0
  74. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/probe.py +0 -0
  75. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/route/status.py +0 -0
  76. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/serp.py +0 -0
  77. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/site2s.py +0 -0
  78. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/ssh.py +0 -0
  79. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/storage.py +0 -0
  80. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/sysmon.py +0 -0
  81. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/tts.py +0 -0
  82. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/update.py +0 -0
  83. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/commands/wifi.py +0 -0
  84. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/console.py +0 -0
  85. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/__init__.py +0 -0
  86. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/doctor.py +0 -0
  87. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/google_oauth.py +0 -0
  88. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/migrate.py +0 -0
  89. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/oauth_flow.py +0 -0
  90. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/registry.py +0 -0
  91. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/store.py +0 -0
  92. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/credentials/sync.py +0 -0
  93. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/imaging/__init__.py +0 -0
  94. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/imaging/align.py +0 -0
  95. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/imaging/core.py +0 -0
  96. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/imaging/creds.py +0 -0
  97. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/imaging/errors.py +0 -0
  98. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/imaging/gemini.py +0 -0
  99. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/imaging/ncnn.py +0 -0
  100. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/mcp_registry.py +0 -0
  101. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/openvpn.py +0 -0
  102. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/serp/__init__.py +0 -0
  103. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/serp/client.py +0 -0
  104. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/serp/creds.py +0 -0
  105. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/serp/errors.py +0 -0
  106. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/serp/install.py +0 -0
  107. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/serp/render.py +0 -0
  108. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/__init__.py +0 -0
  109. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/chunking.py +0 -0
  110. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/core.py +0 -0
  111. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/creds.py +0 -0
  112. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/errors.py +0 -0
  113. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/gemini.py +0 -0
  114. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/http.py +0 -0
  115. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/openai.py +0 -0
  116. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/player.py +0 -0
  117. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli/tts/vbee.py +0 -0
  118. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli.egg-info/SOURCES.txt +0 -0
  119. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli.egg-info/dependency_links.txt +0 -0
  120. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli.egg-info/entry_points.txt +0 -0
  121. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli.egg-info/requires.txt +0 -0
  122. {evo_cli-0.29.0 → evo_cli-0.29.1}/evo_cli.egg-info/top_level.txt +0 -0
  123. {evo_cli-0.29.0 → evo_cli-0.29.1}/pyproject.toml +0 -0
  124. {evo_cli-0.29.0 → evo_cli-0.29.1}/setup.cfg +0 -0
  125. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/__init__.py +0 -0
  126. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/fake_evo_agents.py +0 -0
  127. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/fixtures/hub/contract-0.2.0.json +0 -0
  128. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/fixtures/hub/mirror-demo.yaml +0 -0
  129. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_agent_toy.py +0 -0
  130. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_claude_code.py +0 -0
  131. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_cli.py +0 -0
  132. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_console.py +0 -0
  133. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_cred.py +0 -0
  134. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_download.py +0 -0
  135. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_fix_claude.py +0 -0
  136. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_gdrive.py +0 -0
  137. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_gh.py +0 -0
  138. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_harness_clone.py +0 -0
  139. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_harness_dag.py +0 -0
  140. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_harness_hub.py +0 -0
  141. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_image.py +0 -0
  142. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_mcp.py +0 -0
  143. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_ngrok.py +0 -0
  144. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_opencode.py +0 -0
  145. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_openvpn.py +0 -0
  146. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_plantuml.py +0 -0
  147. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_route.py +0 -0
  148. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_serp.py +0 -0
  149. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_storage.py +0 -0
  150. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_sysmon.py +0 -0
  151. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_tts.py +0 -0
  152. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_update.py +0 -0
  153. {evo_cli-0.29.0 → evo_cli-0.29.1}/tests/test_wifi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evo_cli
3
- Version: 0.29.0
3
+ Version: 0.29.1
4
4
  Summary: Evolution CLI - a developer toolbox for setting up dev machines
5
5
  Author: maycuatroi
6
6
  Project-URL: Homepage, https://github.com/maycuatroi/evo-cli
@@ -0,0 +1 @@
1
+ 0.29.1
@@ -15,7 +15,7 @@ SECTIONS = ("references", "repos", "steps", "decisions", "tech_debt", "open_ques
15
15
  AREAS = ("active", "completed")
16
16
 
17
17
  TITLE_KEYS = ("what", "issue", "repo", "order")
18
- DONE_WORDS = {"done", "merged", "fixed", "verified", "answered", "closed", "resolved", "not-needed"}
18
+ DONE_WORDS = {"done", "merged", "fixed", "verified", "answered", "closed", "resolved", "not-needed", "descoped"}
19
19
  ACTIVE_WORDS = {"in_progress", "wip", "doing", "review"}
20
20
  BLOCKED_WORDS = {"blocked", "stuck"}
21
21
  WARN_WORDS = {"open", "unknown", "todo", "pending"}
@@ -13,14 +13,14 @@ from evo_cli.commands.harness._render import interactive, title_width
13
13
  from evo_cli.commands.harness.views import step_board
14
14
  from evo_cli.console import console
15
15
 
16
- STEP_STATUS = ["done", "in_progress", "pending", "blocked"]
16
+ STEP_STATUS = ["done", "in_progress", "pending", "blocked", "descoped"]
17
17
  DEBT_STATUS = ["fixed", "open"]
18
18
  QUESTION_STATUS = ["answered", "open"]
19
19
  REPO_STATUS = ["merged", "done", "in_progress", "pending", "not-needed"]
20
20
 
21
- DATE_KEY = {"done": "done_at", "fixed": "fixed_at", "answered": "answered_at", "merged": "merged_at"}
21
+ DATE_KEY = {"done": "done_at", "descoped": "descoped_at", "fixed": "fixed_at", "answered": "answered_at", "merged": "merged_at"}
22
22
  NOTE_HELP = "Append a note, on a line of its own. An existing note is kept."
23
- NEXT_STATUS = {"pending": "in_progress", "blocked": "in_progress", "in_progress": "done", "done": "done"}
23
+ NEXT_STATUS = {"pending": "in_progress", "blocked": "in_progress", "in_progress": "done", "done": "done", "descoped": "descoped"}
24
24
 
25
25
 
26
26
  def _today() -> str:
@@ -37,7 +37,7 @@ def plans(harness_path, area):
37
37
  )
38
38
  grid.add_row(
39
39
  f"[bold]{item.id}[/]",
40
- item.area,
40
+ item.area if item.raw.get("status") not in ("abandoned", "superseded") else f"{item.area} [yellow]({item.raw['status']})[/]",
41
41
  f"{p['steps_done']}/{p['steps_total']}",
42
42
  f"{bar(p['steps_done'], p['steps_total'])} {p['pct']:>3}%",
43
43
  f"{p['repos_done']}/{p['repos_total']}",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evo_cli
3
- Version: 0.29.0
3
+ Version: 0.29.1
4
4
  Summary: Evolution CLI - a developer toolbox for setting up dev machines
5
5
  Author: maycuatroi
6
6
  Project-URL: Homepage, https://github.com/maycuatroi/evo-cli
@@ -337,3 +337,12 @@ def test_find_plan_refuses_to_walk_out_of_the_plans_directory(tmp_path):
337
337
  for probe in ("../secret", "..\\secret", "../../harness"):
338
338
  with pytest.raises(click.ClickException):
339
339
  find_plan(manifest, probe)
340
+
341
+
342
+ def test_descoped_step_counts_as_closed():
343
+ from evo_cli.commands.harness._model import tone_of
344
+ from evo_cli.commands.harness.edit import DATE_KEY, STEP_STATUS
345
+
346
+ assert tone_of("steps", "descoped") == "ok"
347
+ assert "descoped" in STEP_STATUS
348
+ assert DATE_KEY["descoped"] == "descoped_at"
@@ -1 +0,0 @@
1
- 0.29.0
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