kankaku-pi 1.1.0 → 1.3.0
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.
- package/README.md +10 -7
- package/dist/domain/work-record.d.ts +9 -0
- package/package.json +1 -1
- package/src/domain/work-record.ts +9 -0
package/README.md
CHANGED
|
@@ -1043,24 +1043,27 @@ a background subagent that settles long after its orchestrator, and after
|
|
|
1043
1043
|
the directory has otherwise gone quiet.
|
|
1044
1044
|
|
|
1045
1045
|
**Assignment is create-only.** You (or whoever reassigns work in the hub's
|
|
1046
|
-
web app
|
|
1047
|
-
|
|
1048
|
-
|
|
1046
|
+
web app, or explicitly from the `kankaku` CLI's Tasks screen) can move a
|
|
1047
|
+
task from one client/project to another directly in PocketBase — for
|
|
1048
|
+
example, moving a "Sin determinar" row to its real client once you have
|
|
1049
|
+
identified it. A later re-sync of that same task
|
|
1049
1050
|
**must never undo that**: on create kankaku sends the full row, including
|
|
1050
1051
|
`client`/`project`/`task`/`legacy_client_label`; on every subsequent update
|
|
1051
1052
|
it sends measurement fields only (`wall_ms`, `cost`, `status`, ...) and
|
|
1052
1053
|
never touches assignment fields again. `task` (the linked `tasks` relation)
|
|
1053
1054
|
is create-only for the exact same reason: reassigning which task a row
|
|
1054
|
-
belongs to in the web app is never undone by a later sync.
|
|
1055
|
-
|
|
1056
|
-
|
|
1055
|
+
belongs to in the web app is never undone by a later sync. Sync itself
|
|
1056
|
+
never changes an assignment, so to have kankaku change one, do it
|
|
1057
|
+
explicitly: in the web app, or from the `kankaku` CLI's Tasks screen
|
|
1058
|
+
(`m` for the selected task, `M` for every unassigned one in the view), not
|
|
1059
|
+
by re-syncing.
|
|
1057
1060
|
|
|
1058
1061
|
**Historical ("Sin determinar") records.** A record with no `clientId`, or
|
|
1059
1062
|
whose `clientId` no longer resolves in the catalog, is routed to the hub's
|
|
1060
1063
|
"Sin determinar" (unassigned) client, carrying its old free-text `client`
|
|
1061
1064
|
label (or `clientName`) forward as `legacy_client_label` — the exact
|
|
1062
1065
|
mechanism that lets you bulk-reassign "everything that said `cjamar`" once,
|
|
1063
|
-
in the web app, from the unassigned queue.
|
|
1066
|
+
in the web app, from the unassigned queue (or from the CLI's Tasks screen).
|
|
1064
1067
|
|
|
1065
1068
|
**Agent and measurement quality.** Every `task_entries` row also carries
|
|
1066
1069
|
who produced it and how well each figure was measured, so the hub can
|
|
@@ -209,6 +209,15 @@ export interface WorkRecordMetadata {
|
|
|
209
209
|
plugin?: string;
|
|
210
210
|
/** This integration's own version, from its `package.json`, read once. */
|
|
211
211
|
pluginVersion?: string;
|
|
212
|
+
/**
|
|
213
|
+
* `true` when `usage.cost` is this record's proportional share of a session
|
|
214
|
+
* total rather than a measured difference (a headless Claude Code session
|
|
215
|
+
* that ran several prompts reports one cost for all of them). Local
|
|
216
|
+
* bookkeeping only: never sent to the hub and never part of the content
|
|
217
|
+
* hash. Optional and additive: `WORK_RECORD_SCHEMA` is unchanged, an older
|
|
218
|
+
* record without it validates, and readers that do not know it ignore it.
|
|
219
|
+
*/
|
|
220
|
+
costAllocated?: true;
|
|
212
221
|
}
|
|
213
222
|
export type WorkRecord = WorkRecordCore & WorkRecordMetadata;
|
|
214
223
|
export declare function emptyUsage(): UsageTotals;
|
package/package.json
CHANGED
|
@@ -218,6 +218,15 @@ export interface WorkRecordMetadata {
|
|
|
218
218
|
plugin?: string;
|
|
219
219
|
/** This integration's own version, from its `package.json`, read once. */
|
|
220
220
|
pluginVersion?: string;
|
|
221
|
+
/**
|
|
222
|
+
* `true` when `usage.cost` is this record's proportional share of a session
|
|
223
|
+
* total rather than a measured difference (a headless Claude Code session
|
|
224
|
+
* that ran several prompts reports one cost for all of them). Local
|
|
225
|
+
* bookkeeping only: never sent to the hub and never part of the content
|
|
226
|
+
* hash. Optional and additive: `WORK_RECORD_SCHEMA` is unchanged, an older
|
|
227
|
+
* record without it validates, and readers that do not know it ignore it.
|
|
228
|
+
*/
|
|
229
|
+
costAllocated?: true;
|
|
221
230
|
}
|
|
222
231
|
|
|
223
232
|
export type WorkRecord = WorkRecordCore & WorkRecordMetadata;
|