@hraness/message-like-me 0.8.6 → 0.8.7
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/CHANGELOG.md +14 -0
- package/README.md +1 -1
- package/dist/cli.js +1 -1
- package/docs/publishing.md +57 -25
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.7 (2026-09-09)
|
|
4
|
+
|
|
5
|
+
- Make the exact public `@hraness/message-like-me@0.8.7` npm package the
|
|
6
|
+
supported default install, with the same reviewed bytes mirrored in the
|
|
7
|
+
immutable GitHub Release.
|
|
8
|
+
- Show how an unsent draft can use evidence about tone, rhythm, and attention
|
|
9
|
+
before introducing import commands. The website examples remain synthetic;
|
|
10
|
+
the site never receives message history or produces drafts.
|
|
11
|
+
- Make supported sources and their limits easier to scan, with import details
|
|
12
|
+
available beside each source. Local-only ingestion and drafts-only behavior
|
|
13
|
+
remain unchanged.
|
|
14
|
+
- Strengthen the development Effect architecture checker. Public protocols,
|
|
15
|
+
the source readers, and command behavior are unchanged.
|
|
16
|
+
|
|
3
17
|
## 0.8.6 (2026-09-07)
|
|
4
18
|
|
|
5
19
|
- Make the exact public `@hraness/message-like-me@0.8.6` npm package the
|
package/README.md
CHANGED
|
@@ -43,7 +43,7 @@ Message Like Me requires Bun 1.3.14 or newer. Install the exact public npm
|
|
|
43
43
|
package, then install both bundled Agent Skills:
|
|
44
44
|
|
|
45
45
|
```sh
|
|
46
|
-
bun add --global @hraness/message-like-me@0.8.
|
|
46
|
+
bun add --global @hraness/message-like-me@0.8.7
|
|
47
47
|
messagelikeme skill install
|
|
48
48
|
```
|
|
49
49
|
|
package/dist/cli.js
CHANGED
|
@@ -24742,7 +24742,7 @@ function rejectUnused(parsed, allowedOptions, allowedFlags) {
|
|
|
24742
24742
|
import { isAbsolute as isAbsolute6, resolve as resolve8 } from "path";
|
|
24743
24743
|
|
|
24744
24744
|
// src/version.ts
|
|
24745
|
-
var MESSAGE_LIKE_ME_VERSION = "0.8.
|
|
24745
|
+
var MESSAGE_LIKE_ME_VERSION = "0.8.7";
|
|
24746
24746
|
|
|
24747
24747
|
// src/command-input.ts
|
|
24748
24748
|
var HELP = `Message Like Me ${MESSAGE_LIKE_ME_VERSION}
|
package/docs/publishing.md
CHANGED
|
@@ -14,6 +14,12 @@ the leased ref move only while the matching App-sourced success is current.
|
|
|
14
14
|
No personal access token, deploy key, Vercel token, or repository-administration
|
|
15
15
|
permission belongs in either workflow.
|
|
16
16
|
|
|
17
|
+
Routine production promotion needs no human confirmation. The current-main
|
|
18
|
+
source, public artifacts, complete workflow history, App authority, writer
|
|
19
|
+
denial, expected-old lease, and provider readback are machine gates. An agent
|
|
20
|
+
may perform the independent review and exact dispatch required for a changed
|
|
21
|
+
workflow-control epoch; that review precedes dispatch.
|
|
22
|
+
|
|
17
23
|
## Establish the production controls once
|
|
18
24
|
|
|
19
25
|
Apply these controls in order. Record the exact readbacks in the change review.
|
|
@@ -59,9 +65,12 @@ for this rollout and do not create a replacement Sites project.
|
|
|
59
65
|
GitHub's authenticated repository API and do not substitute a name at the
|
|
60
66
|
token-mint boundary.
|
|
61
67
|
5. Create environment `production-ref-writer-key`. Limit deployment branches
|
|
62
|
-
to selected branch `main` only.
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
to selected branch `main` only. Configure no required reviewers, no wait
|
|
69
|
+
timer, and no custom deployment-protection-rule App. Keep administrator
|
|
70
|
+
bypass disabled (`can_admins_bypass=false`). The checked workflow admits
|
|
71
|
+
only verified releases and revalidates the complete control range before
|
|
72
|
+
reading the key; environment admission does not wait for a person. Store the
|
|
73
|
+
private key only as
|
|
65
74
|
environment secret `MLM_RELEASE_APP_PRIVATE_KEY`; store checked variables
|
|
66
75
|
`MLM_RELEASE_APP_CLIENT_ID`, `MLM_RELEASE_APP_ID`,
|
|
67
76
|
`MLM_RELEASE_APP_INSTALLATION_ID`, and `MLM_RELEASE_APP_SLUG` in that
|
|
@@ -88,9 +97,10 @@ for this rollout and do not create a replacement Sites project.
|
|
|
88
97
|
8. Keep active no-bypass ruleset `Immutable version tags` scoped exactly to
|
|
89
98
|
`refs/tags/v*`, with only update and deletion restrictions. It allows a new
|
|
90
99
|
stable tag to be created but prevents an existing release tag from moving or
|
|
91
|
-
disappearing. Read back `current_user_can_bypass=never`
|
|
92
|
-
|
|
93
|
-
|
|
100
|
+
disappearing. Read back `current_user_can_bypass=never` during the
|
|
101
|
+
administrative controls census below.
|
|
102
|
+
9. Enable immutable releases for the repository. During that census, use
|
|
103
|
+
owner-admin access out of band to require the repository
|
|
94
104
|
immutable-releases endpoint to report `enabled=true`; record whether owner
|
|
95
105
|
policy also reports `enforced_by_owner`. The Actions token cannot perform
|
|
96
106
|
this administrative read. The workflow must still prove the resulting
|
|
@@ -118,9 +128,14 @@ for this rollout and do not create a replacement Sites project.
|
|
|
118
128
|
Never retag or reuse `v0.8.0`. The public repository and package must retain
|
|
119
129
|
automatic npm provenance for every automated release.
|
|
120
130
|
|
|
121
|
-
After setup, use owner-admin access out of band
|
|
122
|
-
production branch, environment,
|
|
123
|
-
|
|
131
|
+
After setup, use owner-admin access out of band for a complete administrative
|
|
132
|
+
controls census: read back the exact Vercel production branch, environment,
|
|
133
|
+
variables, secret names, complete App installation, immutable-release setting,
|
|
134
|
+
and all GitHub ref rulesets. Refresh this census when control configuration or
|
|
135
|
+
workflow authority changes, when drift is detected, and during interrupted
|
|
136
|
+
authority recovery. Keep the reviewed evidence with that change or incident;
|
|
137
|
+
do not replay the historical bootstrap mutations to refresh it. Ordinary
|
|
138
|
+
releases do not repeat the complete owner-admin census. Never give that administrative
|
|
124
139
|
credential or evidence collector to the release workflow. Its narrowed App
|
|
125
140
|
token proves only its own effective identity, repository, permission, and
|
|
126
141
|
expiry closure. The Message Like Me post-control record must prove all of these
|
|
@@ -142,9 +157,9 @@ assertions together:
|
|
|
142
157
|
`workflows` authority, and an exhaustive
|
|
143
158
|
`/installation/repositories` set of exactly
|
|
144
159
|
`{hraness/message-like-me}` with repository ID `1342143606`;
|
|
145
|
-
- `production-ref-writer-key` admits only `main`,
|
|
146
|
-
|
|
147
|
-
|
|
160
|
+
- `production-ref-writer-key` admits only `main`, has no required reviewers,
|
|
161
|
+
wait timer, or custom deployment-protection rules, disables administrator
|
|
162
|
+
bypass, and exposes only the expected key and checked variables;
|
|
148
163
|
- the Vercel project reads back
|
|
149
164
|
`link.productionBranch=website-production`, while its project root, build,
|
|
150
165
|
install, Git, domain, environment, and deployment settings remain identical
|
|
@@ -158,11 +173,27 @@ dependency, lockfile, or generated documentation.
|
|
|
158
173
|
|
|
159
174
|
Treat the production and canary ruleset IDs and their complete live readbacks as
|
|
160
175
|
an external release gate, not as inputs the promotion workflow may administer.
|
|
161
|
-
The workflow must not create, replace, patch, disable, or broaden a ruleset.
|
|
162
|
-
|
|
163
|
-
App-pinned status context, integration ID, enforcement state, and empty
|
|
164
|
-
sets
|
|
165
|
-
and
|
|
176
|
+
The workflow must not create, replace, patch, disable, or broaden a ruleset.
|
|
177
|
+
The administrative census establishes the existing IDs, targets, lifecycle
|
|
178
|
+
rules, App-pinned status context, integration ID, enforcement state, and empty
|
|
179
|
+
bypass sets. Every production attempt still validates the exact current
|
|
180
|
+
source and artifact, helper hashes and control epoch, effective App token
|
|
181
|
+
permissions and repository scope, live rules exposed to its scoped token,
|
|
182
|
+
App-sourced status, writer-denial proof, expected-old lease, and provider
|
|
183
|
+
outcome. These checks do not claim an administrator's complete controls view.
|
|
184
|
+
Observed drift blocks promotion until the controls are reviewed, repaired,
|
|
185
|
+
and admitted through a fresh administrative census.
|
|
186
|
+
|
|
187
|
+
For an existing environment that still requires a person, first merge this
|
|
188
|
+
admission policy after independent review and the required checks. Revalidate
|
|
189
|
+
the current workflow and helper hashes, the successful production and writer
|
|
190
|
+
canary evidence, exact ref rules, App scope, and provider state. Then remove
|
|
191
|
+
only the required-reviewer rule through the environment API, preserving its
|
|
192
|
+
main-only branch policy, disabled administrator bypass, key, and variables.
|
|
193
|
+
Read back the complete environment and the unchanged authority controls.
|
|
194
|
+
Existing machine gates remain required, including control-epoch admission and
|
|
195
|
+
interrupted-authority quarantine. An unrelated release failure is not a reason
|
|
196
|
+
to remove or bypass them.
|
|
166
197
|
|
|
167
198
|
### Review one workflow-control epoch
|
|
168
199
|
|
|
@@ -258,17 +289,18 @@ When an established protected ref predates reviewed workflow-control changes:
|
|
|
258
289
|
the workflow source for a canary review. Do not fetch an unbounded ref
|
|
259
290
|
namespace, hand-assemble a digest, use a different checkout, or reorder the
|
|
260
291
|
inventory.
|
|
261
|
-
3.
|
|
292
|
+
3. Before dispatching the reviewed control-epoch transition, compare the tag,
|
|
293
|
+
v2 domain, protected ref, old SHA, target SHA, workflow-source SHA, ordered
|
|
294
|
+
inventory, change list, and digest with both the independently reviewed
|
|
295
|
+
failed-run summary and the locally reconstructed receipt. Reject the
|
|
296
|
+
dispatch if any field or ordered inventory row differs. Dispatch one fresh
|
|
297
|
+
manual attempt 1 from exact current `main` with that exact
|
|
262
298
|
digest. Automatic `workflow_run` events, rerun attempts, already-exact refs,
|
|
263
299
|
and unchanged-workflow ranges must reject any digest. The gate recomputes the
|
|
264
300
|
complete inventory and digest before environment admission; any source, tag,
|
|
265
301
|
ref, target, ancestry, inventory, or digest drift fails closed.
|
|
266
|
-
4.
|
|
267
|
-
|
|
268
|
-
ordered inventory, change list, and digest with both the independently
|
|
269
|
-
reviewed failed-run summary and the locally reconstructed receipt. Reject the
|
|
270
|
-
environment admission if any field or ordered
|
|
271
|
-
inventory row differs. After approval, the hash-pinned helper
|
|
302
|
+
4. The workflow enters `production-ref-writer-key` after its read-only
|
|
303
|
+
admission jobs succeed, without a human approval. The hash-pinned helper
|
|
272
304
|
recomputes and revalidates the same transition before reading the key. The
|
|
273
305
|
normal split-authority sequence then applies unchanged: terminalize the status
|
|
274
306
|
to the exact App-authored `error`, then prove the writer is denied with one exact
|
|
@@ -674,7 +706,7 @@ or decreasing inventory digest fails closed. Because an administrator could
|
|
|
674
706
|
delete and recreate evidence between API reads, the owner freeze and
|
|
675
707
|
before/after admin readbacks remain part of admission.
|
|
676
708
|
|
|
677
|
-
After the main-only environment
|
|
709
|
+
After the main-only environment admission, the helper repeats the complete
|
|
678
710
|
snapshot before it may read the private key. The status-only App may then POST
|
|
679
711
|
only one distinct `error` for the exact failed target, prove that exact status
|
|
680
712
|
through the combined-status endpoint, and revoke the token through the same
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hraness/message-like-me",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.7",
|
|
4
4
|
"description": "A local-first CLI and Agent Skill for studying private messaging history and drafting messages that sound like you.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@types/bun": "1.3.14",
|
|
87
87
|
"effect": "3.22.1",
|
|
88
|
+
"fast-check": "4.9.0",
|
|
88
89
|
"sigstore": "4.1.1",
|
|
89
90
|
"typescript": "6.0.3"
|
|
90
91
|
}
|