omp-worklog 0.14.2 → 0.14.4
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.
- checksums.yaml +4 -4
- data/README.md +26 -12
- data/lib/omp_worklog/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cc7eb58427a4d399bbca72d279fb96448b356057f3dd00860cf74c1b36b5ccf9
|
|
4
|
+
data.tar.gz: 8fcaa118dfcdf55dde097bfa8607bbb06ddbaa3f9f6bea1340082708087cd28f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cd8587f9774cbb4253aebb01d5d5b6d5ccdf9428f46d10c97d0ab381e6613a2ed0d81022c2347e85e180284471e64d7ec4621235a0e82e40c533c2d987acc972
|
|
7
|
+
data.tar.gz: 22e1a457099d7997252b9437485279a6e2ceb08c39f93c7fa706211bada3541a5e09b867437b2fff8865c6df09fa10ccdc71b039fa7526c6b9707d9300eecaa5
|
data/README.md
CHANGED
|
@@ -54,13 +54,13 @@ The `work-entry` command checks for existing or locked entries for its project,
|
|
|
54
54
|
|
|
55
55
|
### Project Time timesheets
|
|
56
56
|
|
|
57
|
-
`/
|
|
57
|
+
`/worklog timesheet DATE` reads local `human_active` Project Time evidence and produces one review-only draft for every local project active on that day. It does not call Harvest or require Harvest credentials.
|
|
58
58
|
|
|
59
59
|
Use `--project PROJECT` only to restrict the draft to one exact local Project Time project:
|
|
60
60
|
|
|
61
61
|
```text
|
|
62
|
-
/
|
|
63
|
-
/
|
|
62
|
+
/worklog timesheet yesterday
|
|
63
|
+
/worklog timesheet yesterday --project wrap
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
A configured `projectTimeMappings` destination becomes the draft's Harvest `Project` and `Task`. Evidence with no mapping, an ambiguous work item, or an unassigned work item remains visible under its exact local project with `Harvest: Review destination`; choose the Harvest project and task before submitting. The command first renders date, local project, duration, and Harvest destination on separate lines in a single column, bounded to 22 physical lines. In interactive OMP sessions, a keyed `Generating work summary…` widget appears while the active model works and is replaced in place by the final summary or unavailable fallback. Summary evidence is ranked by cumulative workstream duration so structured repository and GitHub issue/PR context outweighs fragmented individual prompts. The final generated section contains one to three broad outcome bullets and a suggested Harvest note, remains bounded before display, and keeps the combined result within 30 logical lines. GitHub issue/PR numbers and Jira ticket IDs are extracted as facts, not inferred by the model. `harvest_preview_project_time_drafts` retains source IDs, source kinds, repository identities, intervals, work-item attribution, and narratives for detailed review. Nothing is submitted automatically.
|
|
@@ -77,15 +77,19 @@ User stories:
|
|
|
77
77
|
|
|
78
78
|
The observable contract is a deterministic block of at most 22 physical lines followed by a generated section of at most six lines, keeping the complete result within 30 logical lines. Every total stacks date, exact local project, aggregate duration, and configured Harvest project/task or `Review destination` on separate lines. The generated section uses the `AI-generated work summary (review before use)` heading, one to three concise outcome bullets derived from at most eight duration-ranked evidence records, and a clearly review-marked suggested Harvest note. Generated lines are capped at 100 characters with an ellipsis so one verbose model line cannot consume the screen. In interactive mode, one keyed OMP widget is updated from the generation state to final content; print and RPC modes retain a normal transcript message. The command remains review-only and never writes Harvest.
|
|
79
79
|
|
|
80
|
-
Type `/
|
|
80
|
+
Type `/worklog ` in OMP to discover `timesheet`; date aliases appear after selecting `timesheet `. After `--project`, Tab lists local human-active Project Time project names. Completion preserves the exact local project name.
|
|
81
81
|
|
|
82
82
|
## OMP settings
|
|
83
83
|
|
|
84
|
+
The manifest declares the following settings. **Persisted settings are currently inactive in the extension**: OMP does not expose resolved user-plus-project plugin settings at factory initialization. Explicit factory options work for programmatic callers and tests. [Issue #134](https://github.com/klondikemarlen/omp-worklog/issues/134) tracks the host dependency; do not assume a successful `omp plugin config set` changed runtime behavior.
|
|
85
|
+
|
|
84
86
|
- `defaultHours`: hours per business day when a time-off tool call omits `hours`; defaults to `7`.
|
|
85
87
|
- `holidayRegions`: comma-separated Holidays regions; defaults to `ca_yt`.
|
|
86
88
|
- `command`: direct path to the `omp-worklog` executable.
|
|
87
89
|
- `projectTimeLogPath`: optional path to Project Time v1 evidence; defaults to `~/.omp/project-time/time-log.sqlite`. A legacy versioned JSON snapshot is also supported.
|
|
90
|
+
- `projectTimeMappings`: optional JSON mapping of exact local projects to Harvest project/task names; defaults to `{}`.
|
|
88
91
|
|
|
92
|
+
The host stores user plugin settings in `~/.omp/plugins/omp-plugins.lock.json` and project overrides in `.omp/plugin-overrides.json`. Back up private configuration outside Git before uninstalling/reinstalling a plugin. Worklog deliberately does not parse these files itself or bypass project precedence.
|
|
89
93
|
|
|
90
94
|
## OMP Project Time integration
|
|
91
95
|
|
|
@@ -101,6 +105,10 @@ OMP Worklog reads Project Time's persisted `omp-project-time/evidence` v1 entrie
|
|
|
101
105
|
|
|
102
106
|
`omp_worklog_preview_project_time_drafts` produces deterministic, copyable Date/Project/Task/Duration blocks from all local `human_active` evidence in an inclusive date range. Mapped evidence uses its configured Harvest destination; unmapped, ambiguous, and unassigned evidence remains an explicit local-project draft. It preserves source entry IDs, intervals, source kind, repository identity, narratives, work items, and task-attribution provenance. Generated narratives are review evidence, never task identity or a factual Harvest note. The tool reads the local log only; it never calls or mutates Harvest.
|
|
103
107
|
|
|
108
|
+
Drafts preserve every positive interval using raw milliseconds, even when rounded decimal `hours` are zero. Exact displayed duration is review evidence, not a Harvest rounding or billable-time policy. Both range endpoints must be real calendar dates.
|
|
109
|
+
|
|
110
|
+
For independent comparison with manually recorded Harvest entries, follow the [private calibration workflow](/docs/calibration.md). Do not tune from incomplete baselines or commit personal evidence.
|
|
111
|
+
|
|
104
112
|
### Activity transforms
|
|
105
113
|
|
|
106
114
|
`omp_worklog_preview_project_time_transforms` emits deterministic JSON for local raw intervals. It accepts an inclusive date range and optional exact `repositoryId`, `project`, and `sourceKind` filters; each matching interval is split by local date and grouped by activity, with missing labels reported as `unlabelled`. It defaults to `human_active` and returns the effective top-level `sourceKind`; selecting `agent_turn_elapsed` requires an explicit source-kind request. Set `applyMappings` to create configured Harvest destinations or review-required local destinations for every included group. The output reports groups and draft entries; it never writes Harvest.
|
|
@@ -111,6 +119,15 @@ OMP Worklog reads Project Time's persisted `omp-project-time/evidence` v1 entrie
|
|
|
111
119
|
|
|
112
120
|
Version `0.14.0` is a clean identity cutover. Uninstall the retired `harvest-worklog` gem and OMP plugin, then install `omp-worklog`; replace former `harvest-worklog` CLI and `/harvest-worklog` command invocations with `omp-worklog` and `/omp-worklog`. The retired package, executable, command, tools, module, and settings aliases are not retained.
|
|
113
121
|
|
|
122
|
+
Version `0.14.3` renames the OMP slash command from `/omp-worklog` to `/worklog`; the `omp-worklog` package identity and CLI executable are unchanged.
|
|
123
|
+
|
|
124
|
+
## Changes in 0.14.4
|
|
125
|
+
|
|
126
|
+
- Preserve short positive durations in mapped and review-required drafts.
|
|
127
|
+
- Refresh project-name completion when SQLite commits evidence through its write-ahead log.
|
|
128
|
+
- Reject impossible calendar dates in transform ranges.
|
|
129
|
+
- Document configuration activation limits, runtime ownership, and private calibration.
|
|
130
|
+
|
|
114
131
|
## Release
|
|
115
132
|
|
|
116
133
|
Before merging a release PR, self-review its complete diff, address every actionable review comment, and rerun focused QA after fixups. Record the review and QA evidence on the PR. Then merge to `main`, build and publish the Ruby gem, install the released OMP plugin from GitHub, and verify it:
|
|
@@ -118,20 +135,17 @@ Before merging a release PR, self-review its complete diff, address every action
|
|
|
118
135
|
```bash
|
|
119
136
|
ruby test_omp_worklog.rb
|
|
120
137
|
npm run test:omp
|
|
121
|
-
omp-worklog
|
|
122
|
-
--project 'Time Off - Marlen' \
|
|
123
|
-
--task 'Vacation / PTO' \
|
|
124
|
-
--holiday-region ca_yt \
|
|
125
|
-
--dry-run
|
|
138
|
+
bin/omp-worklog --help
|
|
126
139
|
VERSION="$(ruby -Ilib -romp_worklog/version -e 'puts OmpWorklog::VERSION')"
|
|
127
140
|
gem build omp-worklog.gemspec
|
|
128
141
|
gem push "omp-worklog-${VERSION}.gem"
|
|
129
|
-
gem uninstall
|
|
142
|
+
gem uninstall omp-worklog --all --executables --ignore-dependencies
|
|
130
143
|
gem install --clear-sources --source https://rubygems.org omp-worklog --version "$VERSION" --no-document
|
|
131
|
-
omp plugin uninstall harvest-worklog
|
|
132
144
|
npm run release
|
|
133
145
|
npm run verify:release
|
|
134
146
|
omp-worklog --help
|
|
135
147
|
```
|
|
136
148
|
|
|
137
|
-
`npm run release` owns the uninstall/force-install mutation. `npm run verify:release` never changes the installation: it checks the installed package version, resolved Git revision, and plugin path
|
|
149
|
+
`npm run release` owns the plugin uninstall/force-install mutation, including removal of the retired plugin when present. `npm run verify:release` never changes the installation: it checks the installed package version, resolved Git revision, and plugin path, then runs the installed JavaScript test suite. It exits after verification; tests alone do not exercise a fresh OMP host.
|
|
150
|
+
|
|
151
|
+
After installation, start a new OMP process and exercise `/worklog` completion and a timesheet against synthetic local evidence. Verify that a newly committed SQLite project appears without restarting that process. Existing sessions retain startup-loaded extension code and cannot prove the released artifact. Use explicit factory options for a mapped smoke until #134 is resolved; do not claim persisted-setting activation from that smoke.
|
data/lib/omp_worklog/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: omp-worklog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.14.
|
|
4
|
+
version: 0.14.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Marlen Brunner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: marlens-harvest-api-v2
|