toga-ai 1.0.140 → 1.0.141

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.
@@ -115,6 +115,16 @@ process is identical for all.
115
115
  no-op), then updates `s3Key` + `dtMeeting`. Run `dryRun:true` first, inspect `sample[]`, then
116
116
  `dryRun:false` (optional `limit` for a first batch). `$limit` caps candidates touched, not
117
117
  rows scanned, so a run of failures stops at `$limit` instead of sweeping the table.
118
+ **`Backfill()` recomputes the WHOLE key, not just the date.** Rows written by an earlier
119
+ `buildS3Key` produce a different `shortId`/time even when the date was already right, so a
120
+ full table run flags every row (the 2026-06-18 run moved 61/66 for this reason) and renames
121
+ those files. Acceptable as a one-off — the ledger `s3Key` is updated to match — but if you
122
+ ever need a minimal re-file, change the move test to compare only the `YYYY-MM-DD` folder
123
+ segment and relocate while preserving the original filename.
124
+ - **Cron rows cannot be `DELETE`d once they have fired.** `Core.WorkerJobs.cronJobId` has a FK
125
+ (`WorkerJobs_CronJobs_FK`) to `CronJobs.id`, so a schedule change must `UPDATE` an existing
126
+ row (and set `isActive = 0` on the ones being retired), not delete-and-reinsert. The historical
127
+ `WorkerJobs` rows are preserved.
118
128
 
119
129
  - **`getAllTranscripts` requires an AAD object-id (GUID), NOT a UPN.** Passing a UPN
120
130
  (e.g. `ajean@togatech.com`) returns the opaque `HTTP 400 BadRequest / "UnknownError"`.
@@ -154,8 +164,10 @@ Policy gap; a `400` only on a UPN means the id was never resolved to a GUID. (A
154
164
 
155
165
  - 2026-06-18 — Fixed recurring-meeting date misfiling: archive date + `dtMeeting` now come from
156
166
  the transcript `createdDateTime`, not the series-anchor `meeting->startDateTime` (worker2 PR
157
- #82). Added `Backfill()` to re-file existing misdated S3 objects; `dtExported` → `UTC_TIMESTAMP()`.
158
- Rescheduled to weekdays 9:30–17:30 CT, one consolidated cron row (dbchanges2 PR #398). (ajean)
167
+ #82, merged + deployed). Added `Backfill()` and ran it in prod (61/66 objects re-filed, 0
168
+ errors). `dtExported` → `UTC_TIMESTAMP()`. Rescheduled to weekdays 9:30–17:30 CT via a single
169
+ consolidated cron row, applied by UPDATE+deactivate (DELETE blocked by the WorkerJobs FK) —
170
+ dbchanges2 PR #398, merged + applied. (ajean)
159
171
  - 2026-06-12 — **Merged (PR #78) and verified in production**: a real `Team/Transcripts/Export`
160
172
  run returned 6/6 organizers, 33 found, 33 exported, 0 errors (classified 30 general / 3 Elite).
161
173
  Added fail-fast on unresolvable organizers (`resolveUserId` → null, loop throws clear error
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.140",
3
+ "version": "1.0.141",
4
4
  "description": "TOGA Technology Team Claude Knowledge System — shared AI coding harness with skills, knowledge base CLI, and project installer for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",