instar 1.3.1028 → 1.3.1029

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": "instar",
3
- "version": "1.3.1028",
3
+ "version": "1.3.1029",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-07-28T12:07:07.012Z",
5
- "instarVersion": "1.3.1028",
4
+ "generatedAt": "2026-07-28T12:16:23.922Z",
5
+ "instarVersion": "1.3.1029",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -20,6 +20,8 @@ correct PIN. If no real PIN can be resolved at all, the PIN line is omitted with
20
20
  an honest, actionable note ("ask me for your dashboard PIN and I'll send it")
21
21
  instead of ever emitting the placeholder.
22
22
 
23
+ A new spec DRAFT addresses a major self-coherence gap the operator flagged: the agent ran parallel autonomous tracks whose PRs landed on the instar repo, then narrated its own parallel work in chat as the work of "a maintainer" — inventing an external party for itself. The spec names the root cause (no identity signal separates the agent's own other hands from the operator from a genuine outsider, so the agent defaults to inferring "a maintainer") and proposes four components: identity hygiene that signs every commit path with a distinct agent identity, a SelfIdentityRegistry with an isSelf(actor) lookup composed from existing primitives, a unified "all my hands" read view, and a signal-only confabulation review lens. It carries two open operator decisions, each with a recommended default.
24
+
23
25
  ## What to Tell Your User
24
26
 
25
27
  Nothing changes for the common case — your dashboard message keeps showing your
@@ -29,6 +31,8 @@ your actual code. Now the message either shows your real PIN or, if it genuinely
29
31
  cannot be found in that moment, tells you to just ask for it — it will never
30
32
  show you placeholder text in place of your PIN again.
31
33
 
34
+ You caught me describing my own parallel work as if a separate maintainer had done it — when all of it was me. I have written up a plain-English plan for fixing that so I actually recognize my own concurrent hands instead of inventing a stranger for them. It is a draft for you to react to and steer, not a finished decision, and it asks you two questions: how I should learn which GitHub login counts as me, and whether to clean up the commit signatures before or after building the lookup. Nothing changes in how I work yet — this is the plan, opened as a draft for your review.
35
+
32
36
  ## Summary of New Capabilities
33
37
 
34
38
  - The dashboard broadcast re-resolves the PIN from the per-agent vault at send
@@ -40,6 +44,8 @@ show you placeholder text in place of your PIN again.
40
44
  `src/core/dashboardPin.ts` — pure, never-throws resolution mirroring the
41
45
  vault-read pattern used for GitHub tokens.
42
46
 
47
+ No new runtime capability — this is a spec DRAFT only (status: draft-for-convergence, approved: false), opened as a draft PR. It gives the operator a concrete artifact to react to and answer the two open design decisions before any build proceeds.
48
+
43
49
  ## Evidence
44
50
 
45
51
  Verified by 25 unit tests across two files. `dashboard-pin-vault` (16 tests)
@@ -54,3 +60,6 @@ when null, NEVER contains "(check your config)", and end-to-end recovers the
54
60
  real PIN from the vault when the config holds the unresolved object — never
55
61
  "[object Object]" or the placeholder. Existing TelegramAdapter, SecretStore,
56
62
  config-secret-merge, and gh-token canaries stay green (81/81).
63
+
64
+ - The spec grounds every cited symbol against real code verified present at authoring time, and cites direct evidence of the root cause: the last 20 commits on the canonical main are authored with a personal git identity (and github-actions), with zero carrying the per-worktree agent identity — proving the leaked commits bypassed the per-worktree identity-set.
65
+ - No tests in this commit (docs-only). The spec itself enumerates the tests-to-write for each of components A through D.
@@ -0,0 +1,37 @@
1
+ # Side-Effects Review — Self-Coherence spec DRAFT (docs-only)
2
+
3
+ **Spec:** docs/specs/self-coherence-parallel-work-attribution.md (`status: draft-for-convergence`, `approved: false`). **Parent:** Cross-Machine Coherence — One Agent.
4
+
5
+ **This is a DOCS-ONLY change.** No src/, scripts/, .husky/, or SKILL.md files are touched. The deliverable is a spec draft + its plain-English ELI16 overview, opened as a DRAFT PR for the operator to review and steer. There is no code, no wiring, no behavior change, and nothing ships dark — because nothing ships at all yet.
6
+
7
+ ## Files
8
+
9
+ - `docs/specs/self-coherence-parallel-work-attribution.md` — the spec draft (Problem → Root Cause → Components A–D → Phase C → Open Operator Decisions → Residual Risks).
10
+ - `docs/specs/self-coherence-parallel-work-attribution.eli16.md` — the plain-English overview that restates the two open operator decisions so the operator can decide without opening the spec.
11
+
12
+ ## Blast radius
13
+
14
+ - **Zero runtime blast radius.** No code path changes. No config defaults change. No migration runs. Adding two markdown files under `docs/specs/` cannot alter any agent's behavior.
15
+ - The instar-dev pre-commit gate treats `docs/` as out-of-scope (only `src/`, `scripts/`, `.husky/`, and `skills/**/SKILL.md` are in-scope), so this commit passes the gate's empty-in-scope early-exit. The trace + this artifact + the next-fragment are authored anyway as hygiene and as the requested deliverables.
16
+
17
+ ## Risk + mitigation
18
+
19
+ - **Risk:** the draft is mistaken for an approved design and someone builds against it. **Mitigation:** `approved: false` + `status: draft-for-convergence` in frontmatter, a prominent draft banner at the top of both docs, and the PR is opened as a DRAFT (`gh pr create --draft`). The spec must go through /spec-converge and earn operator approval before any /instar-dev work touches src.
20
+ - **Risk:** the cited code symbols drift and the spec's grounding goes stale. **Mitigation:** every cited symbol was verified present at authoring time (MachineIdentity.ts, IdentityManager.ts, BootSelfKnowledge.ts, SubscriptionPool.ts, InstarWorktreeManager.ts, ParallelActivityIndex.ts, PoolActivityView.ts, ParallelWorkOverlap.ts, CoherenceReviewer.ts, claim-provenance.ts, CoherenceGate.ts, PrincipalGuard.ts). The spec composes these primitives rather than redefining them.
21
+
22
+ ## Migration parity
23
+
24
+ - N/A — no agent-installed files (settings.json hooks, config defaults, CLAUDE.md sections, hook scripts, built-in skills) change. A docs-only spec draft reaches existing agents through the normal repo, not through the update path.
25
+
26
+ ## Rollback
27
+
28
+ - Delete the two markdown files. There is nothing else to revert.
29
+
30
+ ## Tests
31
+
32
+ - N/A for this commit — no code changes, so no test tiers apply. The spec itself enumerates the tests-to-write for each of components A–D (unit / integration / E2E / wiring-integrity / audit), to be authored when (and if) the operator approves the design and the build proceeds under /instar-dev.
33
+
34
+ ## Open operator decisions carried forward
35
+
36
+ 1. How the operated-by-me GitHub-login set is established (self-asserted / auto-discovered / both) — RECOMMENDED: both, self-asserted as trust anchor + auto-discovery as advisory enrichment.
37
+ 2. Sequencing A→B (identity-hygiene-first) vs B→A (registry-first) — RECOMMENDED: A-first.