@happyvertical/smrt-support 0.52.0 → 0.53.1

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
@@ -7,10 +7,14 @@ systems of record. The package owns the case lifecycle, channel intake, the
7
7
  Automated Support Response workflow with lossless **Human Handoff**,
8
8
  Project-qualified routing, **Service Target** clocks with timed escalation,
9
9
  and auditable **Service Time Entries** whose client charges and provider
10
- compensation stay separate. Since #1955 the canonical `ServiceTimeEntry` class
11
- is owned by `smrt-projects`; this package exposes a compatibility subtype that
12
- restates the shared fields for isolated manifest scanning. Both imports use the
13
- unchanged `service_time_entries` table, so no data is duplicated.
10
+ compensation stay separate. Since #3288 the shared `ServiceTimeEntry` class
11
+ is owned by `smrt-timesheets` (smrt-projects re-exports it); this package's
12
+ subtype extends it directly, adds `caseId` / `specialistId` (frozen on
13
+ approval via `frozenFieldNames()`), and restates the shared fields for
14
+ isolated manifest scanning. Every import uses the unchanged
15
+ `service_time_entries` table, so no data is duplicated. Keep the subtype a
16
+ direct child of the timesheets entry: a third same-named level on the table
17
+ breaks single-table-family resolution.
14
18
 
15
19
  **Boundary (FR-29a):** Support owns tickets, interactions, routing, and
16
20
  service targets. Delivery Operations owns repository work — a **Delivery
@@ -219,20 +223,23 @@ or a `PermissionResolver`.
219
223
  `RoutingRationale` (ranked specialists with eligibility + factor chips and
220
224
  an optional reassign action), and `TimeEntryApprovalQueue`
221
225
  (date/hours/description/worker/status/amount with
222
- approve/reject-with-reason actions on submitted rows). Hosts adapt models
226
+ approve/reject-with-reason actions on submitted rows; owned by
227
+ smrt-timesheets since #3288 and re-exported here). Hosts adapt models
223
228
  with `toSupportCaseView` / `toCaseTimelineItemView` / `toServiceTargetView`
224
229
  / `toSupportTimeEntryView` — the time-entry view's first eight fields
225
- deliberately match `smrt-projects`' presentation `TimeEntry` contract.
230
+ deliberately match the presentation `TimeEntry` contract, and
231
+ `SupportTimeEntryView` extends smrt-timesheets' `TimeEntryApprovalView`.
226
232
  Components use `smrt-ui` primitives (`smrtRawPrimitives: "strict"`).
227
233
 
228
234
  ## Dependencies
229
235
 
230
236
  Package dependencies: `smrt-core`, `smrt-tenancy`, `smrt-projects`,
231
- `smrt-chat`, `smrt-messages`, `smrt-jobs`, `smrt-users`, `smrt-ui`,
237
+ `smrt-timesheets`, `smrt-chat`, `smrt-messages`, `smrt-jobs`, `smrt-users`,
238
+ `smrt-ui`,
232
239
  `@happyvertical/logger`, `@happyvertical/sql`. Profile and subscriptions
233
240
  references are `@crossPackageRef` string ids or plain string
234
- keys. `smrt-projects` is the intentional shared delivery/evidence edge added
235
- by #1955. No inter-`smrt-*` `peerDependencies`.
241
+ keys. `smrt-projects` is the intentional shared delivery edge added by #1955;
242
+ `smrt-timesheets` owns the shared time-entry evidence (#3288). No inter-`smrt-*` `peerDependencies`.
236
243
 
237
244
  ## Validation
238
245
 
package/README.md CHANGED
@@ -11,10 +11,20 @@ connects the two without making Support execute repository work.
11
11
  ## Installation
12
12
 
13
13
  ```bash
14
- pnpm add @happyvertical/smrt-support
14
+ pnpm add @happyvertical/smrt-support @happyvertical/smrt-timesheets
15
15
  ```
16
16
 
17
- Add `svelte` for the optional operator surfaces.
17
+ Add `svelte` for the optional operator surfaces. Support's `ServiceTimeEntry`
18
+ extends the [`smrt-timesheets`](../timesheets/README.md) entry (#3288). Under
19
+ pnpm, declare `@happyvertical/smrt-timesheets` directly: the CLI's manifest
20
+ discovery reads only top-level packages, so without it `smrt db:migrate` /
21
+ `db:status` stop planning the timesheets snapshot tables
22
+ (`service_charge_snapshots`, `service_compensation_snapshots`). Stored
23
+ `@happyvertical/smrt-projects:ServiceTimeEntry` references do not yet resolve
24
+ when smrt-support is installed, and neither does
25
+ `@happyvertical/smrt-timesheets:ServiceTimeEntry` (support's subtype replaces
26
+ it): reference `@happyvertical/smrt-support:ServiceTimeEntry`. See the
27
+ smrt-timesheets README migration note.
18
28
 
19
29
  ## Open and manage a case
20
30
 
@@ -109,13 +119,16 @@ operations.
109
119
  `@happyvertical/smrt-support/svelte` exports presentational `CaseQueue`,
110
120
  `CaseDetail`, `TargetList`, `RoutingRationale`, and
111
121
  `TimeEntryApprovalQueue` components plus model-to-view adapters. Hosts own data
112
- loading and actions.
122
+ loading and actions. `TimeEntryApprovalQueue` lives in
123
+ [`smrt-timesheets`](../timesheets/README.md) and is re-exported here.
113
124
 
114
125
  ## Related packages
115
126
 
116
127
  - [`smrt-chat`](../chat/README.md) and
117
128
  [`smrt-messages`](../messages/README.md) provide transports.
118
129
  - [`smrt-jobs`](../jobs/README.md) runs escalation tasks.
130
+ - [`smrt-timesheets`](../timesheets/README.md) owns the shared time entry that
131
+ support's `ServiceTimeEntry` extends with `caseId` / `specialistId`.
119
132
  - [`smrt-users`](../users/README.md) supplies permission resolution.
120
133
  - [`smrt-subscriptions`](../subscriptions/README.md) may supply plan keys without
121
134
  becoming a runtime dependency.