@mhosaic/feedback-cli 0.48.0 → 0.49.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhosaic/feedback-cli",
3
- "version": "0.48.0",
3
+ "version": "0.49.0",
4
4
  "description": "CLI to install @mhosaic/feedback into a host app, verify the integration, and drop a guided Claude Code skill (/integrate-feedback) into ~/.claude/skills.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -29,20 +29,30 @@ Load via `ToolSearch`: `project_list`, `project_get_info`,
29
29
  answers `insufficient_level`).
30
30
  - The project has « Saisie au nom des clients (MCP) » on:
31
31
  `project_get_info` returns `allow_proxy_recording: true`. When it is
32
- false, stop: an admin turns it on in the project settings. Never work
33
- around it with `feedback_create`.
32
+ false, stop: a project manager turns it on in the project settings.
33
+ Never work around it with `feedback_create`. The people lookup is
34
+ refused too while it is off.
35
+ - The project's widget can show « Noté par l'équipe Mhosaic »:
36
+ `project_get_info` returns `proxy_recording_blocker: null`. Otherwise
37
+ it holds the reason (for example an environment still serving a widget
38
+ older than 0.53.0), and every row in a person's name would be refused:
39
+ stop and show that reason. The operator either deploys 0.53.0 or later
40
+ to the project first (admin → Versions → Déployer vers…) or chooses to
41
+ file the whole batch "as me".
34
42
  - Notes are available: a file path, pasted text, or a transcript.
35
43
 
36
44
  ## Steps
37
45
 
38
46
  1. **Project.** `project_list` / `project_get_info` to pick the project,
39
- check `allow_proxy_recording`, and note `peer_validation` (step 4).
47
+ check `allow_proxy_recording` and `proxy_recording_blocker`, and note
48
+ `peer_validation` (step 4).
40
49
  2. **People.** For each speaker in the notes,
41
50
  `project_people_list(project_slug, query=<name>)`. Prefer rows with
42
51
  `has_widget: true`. If a name matches several people or none, put it in
43
52
  the "to confirm" list of step 5; never guess. Note each person's
44
- `widget_version`: below `0.52.0` or null means their widget will not
45
- show « Noté par l'équipe Mhosaic » yet.
53
+ `widget_version`. On a project whose host app bundles the widget, the
54
+ platform also refuses anyone whose own widget is unknown or older than
55
+ 0.53.0; plan those items "as me" and warn at the gate.
46
56
  3. **Items.** Extract each piece of feedback: speaker, what they said (keep
47
57
  their words and their language; light cleanup only, it goes out under
48
58
  their name), type (`bug` / `feature` / `question` / `praise` / `typo`),
@@ -66,12 +76,14 @@ Load via `ToolSearch`: `project_list`, `project_get_info`,
66
76
  A person can reply on or validate a report only when it is theirs
67
77
  (its `submitter.person_id` is their `person_id`), or any report of the
68
78
  project when `peer_validation` is true. Otherwise the tools answer
69
- "Report not found".
79
+ "Report not found". A report with no `submitter` (filed by the team or
80
+ by a server) takes no reply or validation in anyone's name: plan a
81
+ team note on it.
70
82
 
71
83
  - Open report that says the same thing and is theirs (or
72
84
  `peer_validation`): plan a reply in their name on it.
73
- - Same thing, but someone else's report and `peer_validation` false:
74
- plan a team note on it (an internal `feedback_comment`, step 6), and
85
+ - Same thing, but someone else's report and `peer_validation` false,
86
+ or a report with no submitter: plan a team note on it (an internal `feedback_comment`, step 6), and
75
87
  flag it "not theirs: team note, not in their widget". The operator may
76
88
  switch it to a new report in their name at the gate.
77
89
  - A verdict: `feedback_get` the report. A validation needs the same
@@ -84,17 +96,18 @@ Load via `ToolSearch`: `project_list`, `project_get_info`,
84
96
  | --- | ------ | ------ | ------ | ---- | ----------- | -------- |
85
97
 
86
98
  Action is one of: new report, reply on #N, validated #N, reopened #N
87
- (with their reason), team note on #N. Warnings: "widget too old to show « Noté par »"
88
- (`widget_version` below 0.52.0 or unknown), "known only by email, won't
99
+ (with their reason), team note on #N. Warnings: "widget version unknown: « Noté
100
+ par » shows once they open an up-to-date widget", "known only by email, won't
89
101
  appear in their widget" (`has_widget: false`), "name matches several
90
- people", "not awaiting validation". List the items you are NOT recording
102
+ people", "not awaiting validation", "widget too old for « Noté par »:
103
+ filed as me". List the items you are NOT recording
91
104
  and why. Proceed only on the operator's explicit approval of this table
92
105
  (they may edit rows first).
93
106
 
94
107
  6. **Execute.** Generate one batch UUID (`uuidgen`). Before any write,
95
108
  save the approved table with it, as the operator approved it, to
96
109
  `meeting-batch-<first 8 characters of the UUID>.md` next to the notes
97
- file: the UUID, then one numbered row per action with every argument
110
+ file (in the current directory when the notes were pasted): the UUID, then one numbered row per action with every argument
98
111
  below (screenshots as file paths: upload ids are minted per run). That
99
112
  file is the batch; `<n>` below is its row number and never changes.
100
113