pinsay-cli 0.11.2 → 0.13.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.
Files changed (3) hide show
  1. package/README.md +14 -0
  2. package/dist/cli.js +947 -128
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -62,6 +62,20 @@ Full guides: https://pinsay.dev/docs/ · Issues: https://github.com/moamen-ui/pi
62
62
 
63
63
  ## Changelog
64
64
 
65
+ ### 0.13.0
66
+
67
+ - Comment media in `get` (human output and `--json`) and in the MCP `pinsay_get_comment` / `pinsay_get_queue` tools: recording steps (each with its screenshot), annotated screenshots, voice messages and the files on replies. Each file is named by its saved path (`media[].path`, `element.screenshotPath`; MCP `untrusted.media[].path`).
68
+ - Voice messages come with their text and `transcriptSource` (`browser` or `server`); the human output labels each transcript.
69
+ - Files are saved under `.pinsay/media/<project>/<number>/`. Only downloads from the PinSay server's own origin are saved, capped at 25 MB each and limited to safe file extensions; a file that fails reads `(download failed: …)`. Folders older than 7 days are pruned, and `apply --mark` and the MCP mark tools delete the marked comment's folder.
70
+ - The apply prompt describes recordings as "Steps to reproduce" (each step, its screenshot and what failed after it), tells the agent to read annotation marks as instructions and voice messages as the person's words, handles comments with no text (their picked prompts, annotation or voice are the instruction), and treats files on replies as evidence of what is still wrong.
71
+ - AI rules and predefined prompts now come once per response, in a shared block, and each comment references them. `apply --json` prints `{ shared, items }` (was a bare array; with several projects, each entry gains `shared`): `shared.aiRules` (with `id` and `appliesTo`) and `shared.prompts` by `id`; each item names its author's Personal rules (`aiRuleRefs`) and its picked prompts (`pickedActions[].id`). The MCP tools return the same `shared` block and the apply prompt lists rules and prompts once with ids. Works with older servers too.
72
+
73
+ ### 0.12.0
74
+
75
+ - Role AI rules: rules an admin ties to a workspace role now apply everywhere rules do — the apply prompt, `get --json` and the MCP tools. The prompt's precedence table gains the Role tier (Workspace → Project → Role → Personal), and role rules are labelled `[Role: <role name>]`.
76
+ - `get --json` and the MCP comment/queue outputs carry the effective rules (`aiRules`, with `roleName` on role rules; MCP exposes them under `trusted.aiRules`).
77
+ - Member (non-admin) keys: when the admin apply-queue is refused, the CLI fetches the workspace's, project's and the caller's role rules from the read-only ai-rules endpoint.
78
+
65
79
  ### 0.11.2
66
80
 
67
81
  - MCP tools answer a missing or malformed argument (e.g. the legacy `id`) with error code `invalid_input` instead of `forbidden`; `forbidden` now means only an HTTP 403 from PinSay.