instar 1.3.320 → 1.3.321

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-06-05T21:47:40.730Z",
5
- "instarVersion": "1.3.320",
4
+ "generatedAt": "2026-06-05T22:14:45.187Z",
5
+ "instarVersion": "1.3.321",
6
6
  "entryCount": 199,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -778,7 +778,7 @@
778
778
  "type": "cli-command",
779
779
  "domain": "setup",
780
780
  "sourcePath": "src/cli.ts",
781
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
781
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
782
782
  "since": "2025-01-01"
783
783
  },
784
784
  "cli:setup": {
@@ -786,7 +786,7 @@
786
786
  "type": "cli-command",
787
787
  "domain": "setup",
788
788
  "sourcePath": "src/cli.ts",
789
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
789
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
790
790
  "since": "2025-01-01"
791
791
  },
792
792
  "cli:add": {
@@ -794,7 +794,7 @@
794
794
  "type": "cli-command",
795
795
  "domain": "setup",
796
796
  "sourcePath": "src/cli.ts",
797
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
797
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
798
798
  "since": "2025-01-01"
799
799
  },
800
800
  "cli:backup": {
@@ -802,7 +802,7 @@
802
802
  "type": "cli-command",
803
803
  "domain": "operations",
804
804
  "sourcePath": "src/cli.ts",
805
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
805
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
806
806
  "since": "2025-01-01"
807
807
  },
808
808
  "cli:git": {
@@ -810,7 +810,7 @@
810
810
  "type": "cli-command",
811
811
  "domain": "coordination",
812
812
  "sourcePath": "src/cli.ts",
813
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
813
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
814
814
  "since": "2025-01-01"
815
815
  },
816
816
  "cli:memory": {
@@ -818,7 +818,7 @@
818
818
  "type": "cli-command",
819
819
  "domain": "memory",
820
820
  "sourcePath": "src/cli.ts",
821
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
821
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
822
822
  "since": "2025-01-01"
823
823
  },
824
824
  "cli:knowledge": {
@@ -826,7 +826,7 @@
826
826
  "type": "cli-command",
827
827
  "domain": "memory",
828
828
  "sourcePath": "src/cli.ts",
829
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
829
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
830
830
  "since": "2025-01-01"
831
831
  },
832
832
  "cli:semantic": {
@@ -834,7 +834,7 @@
834
834
  "type": "cli-command",
835
835
  "domain": "memory",
836
836
  "sourcePath": "src/cli.ts",
837
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
837
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
838
838
  "since": "2025-01-01"
839
839
  },
840
840
  "cli:intent": {
@@ -842,7 +842,7 @@
842
842
  "type": "cli-command",
843
843
  "domain": "intent",
844
844
  "sourcePath": "src/cli.ts",
845
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
845
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
846
846
  "since": "2025-01-01"
847
847
  },
848
848
  "cli:feedback": {
@@ -850,7 +850,7 @@
850
850
  "type": "cli-command",
851
851
  "domain": "feedback",
852
852
  "sourcePath": "src/cli.ts",
853
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
853
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
854
854
  "since": "2025-01-01"
855
855
  },
856
856
  "cli:server": {
@@ -858,7 +858,7 @@
858
858
  "type": "cli-command",
859
859
  "domain": "server",
860
860
  "sourcePath": "src/cli.ts",
861
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
861
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
862
862
  "since": "2025-01-01"
863
863
  },
864
864
  "cli:status": {
@@ -866,7 +866,7 @@
866
866
  "type": "cli-command",
867
867
  "domain": "monitoring",
868
868
  "sourcePath": "src/cli.ts",
869
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
869
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
870
870
  "since": "2025-01-01"
871
871
  },
872
872
  "cli:user": {
@@ -874,7 +874,7 @@
874
874
  "type": "cli-command",
875
875
  "domain": "users",
876
876
  "sourcePath": "src/cli.ts",
877
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
877
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
878
878
  "since": "2025-01-01"
879
879
  },
880
880
  "cli:relationship": {
@@ -882,7 +882,7 @@
882
882
  "type": "cli-command",
883
883
  "domain": "relationships",
884
884
  "sourcePath": "src/cli.ts",
885
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
885
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
886
886
  "since": "2025-01-01"
887
887
  },
888
888
  "cli:job": {
@@ -890,7 +890,7 @@
890
890
  "type": "cli-command",
891
891
  "domain": "scheduling",
892
892
  "sourcePath": "src/cli.ts",
893
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
893
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
894
894
  "since": "2025-01-01"
895
895
  },
896
896
  "cli:lifeline": {
@@ -898,7 +898,7 @@
898
898
  "type": "cli-command",
899
899
  "domain": "communication",
900
900
  "sourcePath": "src/cli.ts",
901
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
901
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
902
902
  "since": "2025-01-01"
903
903
  },
904
904
  "cli:list": {
@@ -906,7 +906,7 @@
906
906
  "type": "cli-command",
907
907
  "domain": "monitoring",
908
908
  "sourcePath": "src/cli.ts",
909
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
909
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
910
910
  "since": "2025-01-01"
911
911
  },
912
912
  "cli:autostart": {
@@ -914,7 +914,7 @@
914
914
  "type": "cli-command",
915
915
  "domain": "operations",
916
916
  "sourcePath": "src/cli.ts",
917
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
917
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
918
918
  "since": "2025-01-01"
919
919
  },
920
920
  "cli:migrate": {
@@ -922,7 +922,7 @@
922
922
  "type": "cli-command",
923
923
  "domain": "updates",
924
924
  "sourcePath": "src/cli.ts",
925
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
925
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
926
926
  "since": "2025-01-01"
927
927
  },
928
928
  "cli:machines": {
@@ -930,7 +930,7 @@
930
930
  "type": "cli-command",
931
931
  "domain": "coordination",
932
932
  "sourcePath": "src/cli.ts",
933
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
933
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
934
934
  "since": "2025-01-01"
935
935
  },
936
936
  "cli:whoami": {
@@ -938,7 +938,7 @@
938
938
  "type": "cli-command",
939
939
  "domain": "identity",
940
940
  "sourcePath": "src/cli.ts",
941
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
941
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
942
942
  "since": "2025-01-01"
943
943
  },
944
944
  "cli:pair": {
@@ -946,7 +946,7 @@
946
946
  "type": "cli-command",
947
947
  "domain": "coordination",
948
948
  "sourcePath": "src/cli.ts",
949
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
949
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
950
950
  "since": "2025-01-01"
951
951
  },
952
952
  "cli:join": {
@@ -954,7 +954,7 @@
954
954
  "type": "cli-command",
955
955
  "domain": "coordination",
956
956
  "sourcePath": "src/cli.ts",
957
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
957
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
958
958
  "since": "2025-01-01"
959
959
  },
960
960
  "cli:wakeup": {
@@ -962,7 +962,7 @@
962
962
  "type": "cli-command",
963
963
  "domain": "coordination",
964
964
  "sourcePath": "src/cli.ts",
965
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
965
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
966
966
  "since": "2025-01-01"
967
967
  },
968
968
  "cli:leave": {
@@ -970,7 +970,7 @@
970
970
  "type": "cli-command",
971
971
  "domain": "coordination",
972
972
  "sourcePath": "src/cli.ts",
973
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
973
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
974
974
  "since": "2025-01-01"
975
975
  },
976
976
  "cli:doctor": {
@@ -978,7 +978,7 @@
978
978
  "type": "cli-command",
979
979
  "domain": "monitoring",
980
980
  "sourcePath": "src/cli.ts",
981
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
981
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
982
982
  "since": "2025-01-01"
983
983
  },
984
984
  "cli:review": {
@@ -986,7 +986,7 @@
986
986
  "type": "cli-command",
987
987
  "domain": "monitoring",
988
988
  "sourcePath": "src/cli.ts",
989
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
989
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
990
990
  "since": "2025-01-01"
991
991
  },
992
992
  "cli:nuke": {
@@ -994,7 +994,7 @@
994
994
  "type": "cli-command",
995
995
  "domain": "operations",
996
996
  "sourcePath": "src/cli.ts",
997
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
997
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
998
998
  "since": "2025-01-01"
999
999
  },
1000
1000
  "cli:playbook": {
@@ -1002,7 +1002,7 @@
1002
1002
  "type": "cli-command",
1003
1003
  "domain": "context",
1004
1004
  "sourcePath": "src/cli.ts",
1005
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
1005
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
1006
1006
  "since": "2025-01-01"
1007
1007
  },
1008
1008
  "cli:dev-preflight": {
@@ -1010,7 +1010,7 @@
1010
1010
  "type": "cli-command",
1011
1011
  "domain": "development",
1012
1012
  "sourcePath": "src/cli.ts",
1013
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
1013
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
1014
1014
  "since": "2025-01-01"
1015
1015
  },
1016
1016
  "cli:dev-ci-failures": {
@@ -1018,7 +1018,7 @@
1018
1018
  "type": "cli-command",
1019
1019
  "domain": "development",
1020
1020
  "sourcePath": "src/cli.ts",
1021
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
1021
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
1022
1022
  "since": "2025-01-01"
1023
1023
  },
1024
1024
  "cli:dev-profile-node": {
@@ -1026,7 +1026,7 @@
1026
1026
  "type": "cli-command",
1027
1027
  "domain": "development",
1028
1028
  "sourcePath": "src/cli.ts",
1029
- "contentHash": "e4f500dbdb5e986b90f211b0890134effbc477a7d123a2f9282c6082fa87ae66",
1029
+ "contentHash": "189bf25909698ef7aeeaa7b59dc8b737096bcaa64ff32e693f63c4654c311032",
1030
1030
  "since": "2025-01-01"
1031
1031
  },
1032
1032
  "template:build-stop-hook.sh": {
@@ -0,0 +1,25 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Instar now has a post-drive transcript auditor for operator-seat UX review. Given topic ids and a drive window, it reads the existing topic message history, classifies duplicate notices or deliveries, resend or retry asks, internal infrastructure noise, and content-free status updates, then files each finding into the framework issue ledger with a stable dedupe key.
9
+
10
+ The framework issue ledger also now preserves related-spec citations when observations are recorded, so findings can keep their link to Observation Needs Structure and the UX-blindspot work instead of losing that context after the write.
11
+
12
+ ## What to Tell Your User
13
+
14
+ I can now audit a supervised Telegram drive after it happens and turn visible friction into durable findings instead of leaving it buried in chat.
15
+
16
+ ## Summary of New Capabilities
17
+
18
+ | Capability | How to Use |
19
+ |-----------|-----------|
20
+ | Post-drive transcript UX audit | Run the new developer audit command with topic ids and a time window. |
21
+ | Framework issue citations | Automatic when an observation includes a parent-principle or related-spec citation. |
22
+
23
+ ## Evidence
24
+
25
+ Live fixture verification used topics 2278 and 2271 for the 11:15-11:21 PDT window on 2026-06-05. Dry-run first reported one duplicate-delivery group and two content-free status-notice groups after the ACK false positive was removed. Filing mode then wrote three framework issue observations with stable dedupe keys; rerunning the command deduped them instead of creating duplicates. Targeted tests passed for 50 cases across the auditor and framework issue ledger suites, build passed, lint passed, and the Tier-1 dev gate accepted the ELI16 plus side-effects artifacts.
@@ -0,0 +1,64 @@
1
+ # Side-Effects Review - post-drive transcript auditor
2
+
3
+ **Version / slug:** `post-drive-transcript-audit`
4
+ **Date:** `2026-06-05`
5
+ **Author:** `instar-codey`
6
+ **Second-pass reviewer:** `not required`
7
+
8
+ ## Summary of the change
9
+
10
+ This change adds a standalone post-drive transcript auditor and CLI command. It reads existing topic message history for specified topics and a time window, classifies operator-seat UX antipatterns, prints a structured report, and writes each finding to the existing framework issue ledger. It also fixes the ledger so a `relatedSpec` citation passed to the write path is persisted on new issues or backfilled on later matching observations.
11
+
12
+ ## Decision-point inventory
13
+
14
+ - `classifyTranscriptUx` - add - deterministic signal classifier for transcript messages.
15
+ - `runPostDriveTranscriptAudit` - add - decides whether to file each classified finding, with dry-run support.
16
+ - Framework issue ledger `recordObservation` - modify - preserves related-spec citation metadata; no new authority or route.
17
+
18
+ ## 1. Over-block
19
+
20
+ No block/allow surface - over-block is not applicable. The auditor can produce false-positive findings, but those are ledger signals for review, not user-message blocks.
21
+
22
+ The main false-positive risk is classifying a legitimate short status message as content-free. The live fixture dry-run exposed this for normal acknowledgements, so the heuristic was narrowed to repeated/status chatter such as "actively working", "still working", or "no terminal output", and repeated identical notices are grouped.
23
+
24
+ ## 2. Under-block
25
+
26
+ The auditor still misses UX issues that require deeper conversational interpretation. For example, it will not detect a polite but confusing request unless it contains resend/retry/re-paste language, and it will not detect subtle infrastructure leakage unless it uses the configured infrastructure terms. That is acceptable for this slice because the output is a structured starting signal, not a mentor judgment loop.
27
+
28
+ The message-history route currently returns a bounded recent history. A large topic with more than the cap between the drive window and audit time could under-report old messages. The command makes the limit explicit and clamps it to the existing server cap; a future slice can add a broader archival reader if needed.
29
+
30
+ ## 3. Level-of-abstraction fit
31
+
32
+ This is intentionally a low-level detector. It belongs after a drive, not in the live send path, because it is looking for transcript evidence to file. It does not duplicate the tone gate or messaging authority; it feeds the framework issue ledger with evidence pointers so later human or process review has a durable artifact.
33
+
34
+ The ledger citation fix is at the right layer because the route already accepted `relatedSpec`; losing it inside the storage layer meant callers could do the right thing and still end up with a blind record.
35
+
36
+ ## 4. Signal vs authority compliance
37
+
38
+ - [x] No - this change produces a signal consumed by an existing ledger.
39
+ - [ ] No - this change has no block/allow surface.
40
+ - [ ] Yes - but the logic is a smart gate with full conversational context.
41
+ - [ ] Yes, with brittle logic - STOP.
42
+
43
+ The classifier is deliberately brittle and therefore holds no authority. It cannot block, retry, resend, escalate, or alter a transcript. Its only side effect is filing reviewable observations with stable dedupe keys.
44
+
45
+ ## 5. Interactions
46
+
47
+ - **Shadowing:** no live messaging check is shadowed. The command runs manually after the drive and reads existing history.
48
+ - **Double-fire:** repeated runs file the same canonical issue because the dedupe key includes topic, window, category, and message evidence. The live fixture was run twice; the second write deduped.
49
+ - **Races:** the only shared state is the framework issue ledger. The ledger already owns SQLite write serialization and episode dedupe.
50
+ - **Feedback loops:** there is no mentor judgment loop. Findings do not automatically alter future classifications or message behavior.
51
+
52
+ ## 6. External surfaces
53
+
54
+ The command reads local server topic history and writes to the local framework issue ledger. That creates persistent state: open framework issue rows and observations. The live fixture run filed three observations for topics 2278 and 2271 in the 11:15-11:21 PDT window. Because the running server still had the pre-fix ledger code loaded, those three rows were updated directly with the related-spec citation after the code fix; future runs through this PR path persist it normally.
55
+
56
+ No Telegram messages are sent by the command. No GitHub, Cloudflare, or third-party systems are called. The CLI output can include short excerpts, so operators should treat reports as local/private unless deliberately published.
57
+
58
+ ## 7. Rollback cost
59
+
60
+ Code rollback is a normal revert. The command is additive, and removing it does not affect live messaging. The ledger citation change is backward-compatible: it only fills an existing nullable column. If a filed observation is wrong, the durable record can be closed, marked fixed, or superseded through the existing ledger workflow; no schema rollback is needed.
61
+
62
+ ## Conclusion
63
+
64
+ This slice is clear to ship as Tier 1. It adds a narrow, post-drive observation tool; keeps classification signal-only; files findings through the existing ledger; and fixes the storage bug that would otherwise erase the parent-principle citation required by the UX-blindspot work.