labtasker-webui 0.4.0__tar.gz → 0.4.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 (57) hide show
  1. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/PKG-INFO +9 -1
  2. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/README.md +8 -0
  3. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/docs/reference/specification.md +29 -6
  4. labtasker_webui-0.4.1/frontend/dist/assets/index-BMYi_L_Y.js +56 -0
  5. labtasker_webui-0.4.1/frontend/dist/assets/index-DQxEOont.css +1 -0
  6. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/frontend/dist/index.html +2 -2
  7. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/frontend/package-lock.json +32 -32
  8. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/frontend/package.json +6 -6
  9. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/pyproject.toml +1 -1
  10. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/__init__.py +1 -1
  11. labtasker_webui-0.4.0/frontend/dist/assets/index-BLS-SDvc.js +0 -56
  12. labtasker_webui-0.4.0/frontend/dist/assets/index-V-48iAs9.css +0 -1
  13. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/.agents/skills/release/SKILL.md +0 -0
  14. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/.agents/skills/ui-change/SKILL.md +0 -0
  15. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/.agents/sops/development.md +0 -0
  16. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/.agents/sops/qa.md +0 -0
  17. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/.agents/sops/releasing.md +0 -0
  18. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/.gitignore +0 -0
  19. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/AGENTS.md +0 -0
  20. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/CONTRIBUTING.md +0 -0
  21. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/LICENSE +0 -0
  22. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/assets/screenshot.png +0 -0
  23. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/docs/releases/v0.2.0.md +0 -0
  24. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/docs/releases/v0.2.1.md +0 -0
  25. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/docs/releases/v0.4.0.md +0 -0
  26. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/frontend/dist/labtasker-icon.png +0 -0
  27. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/scripts/check_package.py +0 -0
  28. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/scripts/check_versions.py +0 -0
  29. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/__main__.py +0 -0
  30. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/app.py +0 -0
  31. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/cli.py +0 -0
  32. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/compatibility.py +0 -0
  33. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/config.py +0 -0
  34. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/local.py +0 -0
  35. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/operations.py +0 -0
  36. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/profile.py +0 -0
  37. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/py.typed +0 -0
  38. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/schemas.py +0 -0
  39. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/security.py +0 -0
  40. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/sessions.py +0 -0
  41. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/src/labtasker_webui/upstream.py +0 -0
  42. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/fixture_server.py +0 -0
  43. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/packaging_smoke.py +0 -0
  44. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_app.py +0 -0
  45. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_compatibility.py +0 -0
  46. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_config.py +0 -0
  47. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_custom_columns.py +0 -0
  48. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_local.py +0 -0
  49. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_name_fuzzy.py +0 -0
  50. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_observations.py +0 -0
  51. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_operations.py +0 -0
  52. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_profile.py +0 -0
  53. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_real_server.py +0 -0
  54. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_release_versions.py +0 -0
  55. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_sessions.py +0 -0
  56. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_upstream.py +0 -0
  57. {labtasker_webui-0.4.0 → labtasker_webui-0.4.1}/tests/test_upstream_source.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: labtasker-webui
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: A focused web interface for Labtasker v2
5
5
  Project-URL: Homepage, https://github.com/luocfprime/labtasker-webui
6
6
  Project-URL: Repository, https://github.com/luocfprime/labtasker-webui
@@ -129,6 +129,14 @@ remain user-defined. A running Task without a valid `completed / total` ratio
129
129
  shows `—`; non-running rows leave the Progress column blank. The Progress column
130
130
  starts compact and can be resized like the other data columns.
131
131
 
132
+ Hover or focus a determinate ring to see its exact values, execution Duration,
133
+ ETA and reported data as a compact JSON tree. A numeric `eta` in the progress
134
+ object means seconds remaining when that snapshot was reported; an ISO timestamp
135
+ means the estimated finish time. Without a valid reported `eta`, the WebUI shows
136
+ a coarse linear estimate based on the completed ratio and elapsed time at the
137
+ latest progress report. This display-only fallback is not stored, filterable or
138
+ available as a column; reported `progress.eta` remains ordinary Task data.
139
+
132
140
  ## Project profiles
133
141
 
134
142
  On loopback binds, the WebUI remembers settings in its working directory:
@@ -110,6 +110,14 @@ remain user-defined. A running Task without a valid `completed / total` ratio
110
110
  shows `—`; non-running rows leave the Progress column blank. The Progress column
111
111
  starts compact and can be resized like the other data columns.
112
112
 
113
+ Hover or focus a determinate ring to see its exact values, execution Duration,
114
+ ETA and reported data as a compact JSON tree. A numeric `eta` in the progress
115
+ object means seconds remaining when that snapshot was reported; an ISO timestamp
116
+ means the estimated finish time. Without a valid reported `eta`, the WebUI shows
117
+ a coarse linear estimate based on the completed ratio and elapsed time at the
118
+ latest progress report. This display-only fallback is not stored, filterable or
119
+ available as a column; reported `progress.eta` remains ordinary Task data.
120
+
113
121
  ## Project profiles
114
122
 
115
123
  On loopback binds, the WebUI remembers settings in its working directory:
@@ -118,12 +118,35 @@ loop. The Status column has a 104 px minimum so every status badge remains fully
118
118
  visible, including when an older saved layout requested a narrower width.
119
119
 
120
120
  Hovering or focusing the ring opens a viewport-contained summary with the exact
121
- completed and total values, progress attempt, Server report time and a generic
122
- JSON preview. Clicking pins the same summary until an outside interaction or
123
- Escape. Clicking inside the summary does not open the Task drawer. Escape works
124
- from the summary's contents and returns focus to the ring. Task row keyboard
125
- navigation only handles keys on the row itself; Space on its checkbox toggles
126
- selection without opening details. The UI assigns no meaning to other progress keys. Task details show a
121
+ completed and total values, current execution Duration, ETA, progress attempt,
122
+ Server report time and a compact JSON tree of the reported object. The tree
123
+ reuses the Task drawer's nested rendering, expands its first two levels, omits
124
+ raw and per-node copy controls, provides one visible whole-object Copy action,
125
+ keeps the root disclosure inset from both edges, and scrolls within a bounded height. Clicking pins
126
+ the summary as a non-modal dialog so its tree can be operated until an outside
127
+ interaction or Escape. Clicking inside the summary does not open the Task
128
+ drawer. Escape works from the summary's contents and returns focus to the ring.
129
+
130
+ ETA is summary-only derived UI state: it adds no column, Task field, JSON value,
131
+ filter, sort key, custom path, profile setting or saved-view state. A finite
132
+ nonnegative numeric `progress.eta` is interpreted as seconds remaining at
133
+ `progress_updated_at`; an ISO timestamp string is interpreted as the estimated
134
+ finish time. Either valid reported form takes precedence and remains ordinary
135
+ Worker-reported JSON, so `progress.eta` stays visible in the tree and available
136
+ to upstream `progress.*` filtering. An invalid or absent reported ETA falls back
137
+ to linear extrapolation only when the current attempt has valid timestamps and
138
+ `0 < completed < total`: the average rate uses
139
+ `progress_updated_at - started_at`, never the current browser time. The resulting
140
+ finish time is anchored at `progress_updated_at`; the browser clock only counts
141
+ down from that fixed estimate while the summary is open. Derived values are
142
+ coarsened to minute-scale display and marked approximate. Zero completion shows
143
+ Calculating, completed equal to total shows Finishing, a passed estimate shows
144
+ Overdue, and invalid inputs show an em dash.
145
+
146
+ Task row keyboard navigation only handles keys on the row itself; Space on its
147
+ checkbox toggles selection without opening details. Apart from the display
148
+ conventions for `completed`, `total` and `eta`, the UI assigns no meaning to other
149
+ progress keys. Task details show a
127
150
  Progress JSON section immediately before Result whenever progress is non-null,
128
151
  including for terminal Tasks whose last snapshot was retained. Its heading
129
152
  shows the Server-owned attempt and report time. Null progress adds no details