@happyvertical/smrt-projects 0.40.69 → 0.41.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/AGENTS.md CHANGED
@@ -61,6 +61,25 @@ All collections provide: `discover({ repository, filters })`, `findByRepository(
61
61
 
62
62
  ## Gotchas
63
63
 
64
+ - **Money is integer minor units** (cents) — `$19.99` is `1999`.
65
+ `ServiceChargeSnapshot.amount` and `ServiceCompensationSnapshot.amount`
66
+ initialize `= 0`, never `= 0.0`: the integer literal is what maps them to
67
+ INTEGER columns (#2401). The two convert as a pair — the delivery margin is
68
+ `charge - compensation`, an exact integer subtraction with no tolerance —
69
+ and both are fed verbatim by `CommercialSnapshot.amount`, so a resolver that
70
+ returns major units corrupts the snapshot silently on SQLite and fails with
71
+ `22P02` on PostgreSQL. `pnpm --filter @happyvertical/smrt-projects
72
+ test:postgres` is the lane that holds the line.
73
+ - **UI formats by dividing, never by `toFixed`**: `formatCurrency()` and
74
+ `ServiceEvidenceList`'s `money()` scale back to major units using the
75
+ currency's own minor-unit exponent, so zero-decimal currencies (JPY, KRW) are
76
+ not divided.
77
+ - **Migrating an existing database**: `preflightProjectsMoneyMinorUnits(db)`
78
+ reports which columns still hold major units and which rows would be rounded
79
+ or overflow `int4`; `migrateProjectsMoneyToMinorUnits(db)` converts them
80
+ (idempotent via `_smrt_backfills`). On SQLite the values are rescaled but the
81
+ declared type needs the table-rebuild path (#2370). The `int4` ceiling is
82
+ ~2.1e9 minor units (~$21.4M) per column; BIGINT is parked in #2373.
64
83
  - **SDK dependency**: requires `@happyvertical/repos` and `@happyvertical/projects` from SDK
65
84
  - **tokenConfigKey not tokenValue**: never store actual tokens in the database
66
85
  - **synthesisCount tracks incorporateFeedback calls**: incremented on each apply
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export { ProjectCollection } from './collections/Projects';
7
7
  export { PullRequestCollection } from './collections/PullRequests';
8
8
  export { RepositoryCollection } from './collections/Repositories';
9
9
  export { ManagedProjectClient } from './managed-client';
10
+ export { migrateProjectsMoneyToMinorUnits, PROJECTS_MONEY_COLUMNS, PROJECTS_MONEY_MINOR_UNITS_BACKFILL, preflightProjectsMoneyMinorUnits, } from './migrations/moneyMinorUnits.js';
10
11
  export { Comment, type CommentOptions } from './models/Comment';
11
12
  export { DevelopmentRequest, type DevelopmentRequestOptions, } from './models/DevelopmentRequest';
12
13
  export { DevelopmentRequestHistory, type DevelopmentRequestHistoryOptions, } from './models/DevelopmentRequestHistory';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAKH,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,oCAAoC,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,cAAc,8BAA8B,CAAC;AAC7C,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AAGpC,YAAY,EACV,wBAAwB,EAExB,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,iCAAiC,EACjC,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAEzB,0BAA0B,EAC1B,yBAAyB,EAEzB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,6BAA6B,EAC7B,oCAAoC,EACpC,WAAW,EACX,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,IAAI,GACL,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAKH,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EACL,gCAAgC,EAChC,sBAAsB,EACtB,mCAAmC,EACnC,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,oCAAoC,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,cAAc,8BAA8B,CAAC;AAC7C,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AAGpC,YAAY,EACV,wBAAwB,EAExB,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,iCAAiC,EACjC,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EAEzB,0BAA0B,EAC1B,yBAAyB,EAEzB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,6BAA6B,EAC7B,oCAAoC,EACpC,WAAW,EACX,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,6BAA6B,EAC7B,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,IAAI,GACL,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC"}