@remnic/core 9.69.58 → 9.69.60
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/dist/access-admin-ops-surface.js +11 -11
- package/dist/access-authorization-probe.js +12 -12
- package/dist/access-boundary.js +11 -11
- package/dist/access-cli.js +46 -46
- package/dist/access-extraction-force-flush.js +11 -11
- package/dist/access-http-briefing.js +12 -12
- package/dist/access-http-query.js +13 -13
- package/dist/access-http.js +27 -27
- package/dist/access-identity-continuity-surface.js +11 -11
- package/dist/access-lcm-surface.js +11 -11
- package/dist/access-mcp.js +20 -20
- package/dist/access-namespace-preflight.js +11 -11
- package/dist/access-observe-write-surface.js +11 -11
- package/dist/access-operations-batch.js +12 -12
- package/dist/access-operations.js +19 -19
- package/dist/access-recall-concurrency.js +11 -11
- package/dist/access-recall-response.js +11 -11
- package/dist/access-recall-surface.js +11 -11
- package/dist/access-service.js +11 -11
- package/dist/access-surface-catalog.js +13 -13
- package/dist/active-recall.js +1 -1
- package/dist/briefing.js +2 -2
- package/dist/causal-consolidation.js +3 -3
- package/dist/{chunk-P7M22CYB.js → chunk-2NZ7KWRW.js} +2 -2
- package/dist/{chunk-S2OBXHMN.js → chunk-2T2RF5ZK.js} +25 -15
- package/dist/{chunk-S2OBXHMN.js.map → chunk-2T2RF5ZK.js.map} +1 -1
- package/dist/{chunk-2CBWEIS4.js → chunk-42G4FIKQ.js} +2 -2
- package/dist/{chunk-4ALOINQ4.js → chunk-4B5S3VWD.js} +8 -8
- package/dist/{chunk-2JQZSQXI.js → chunk-4HNY6ORZ.js} +2 -2
- package/dist/{chunk-KA4U5GQN.js → chunk-5SV2GFZX.js} +2 -2
- package/dist/{chunk-C6LRFPZL.js → chunk-6JYYSDHH.js} +3 -3
- package/dist/{chunk-3RZOLUZT.js → chunk-7DNMX7SA.js} +2 -2
- package/dist/{chunk-VLDVNZQE.js → chunk-7WSQZJPC.js} +2 -2
- package/dist/{chunk-FSXD6Y4H.js → chunk-AAMFQHKI.js} +2 -2
- package/dist/{chunk-X45KZOT2.js → chunk-ADP2VCP6.js} +5 -5
- package/dist/{chunk-HKHZWJ3E.js → chunk-AJW2K7K3.js} +2 -2
- package/dist/{chunk-ZMT4ZVJU.js → chunk-BJX6G726.js} +18 -18
- package/dist/{chunk-DTABICJ3.js → chunk-DJ4CKWAD.js} +2 -2
- package/dist/{chunk-XIXM6G7I.js → chunk-EJO2NWW7.js} +2 -2
- package/dist/{chunk-TFXXMTHV.js → chunk-EN2YX5SF.js} +2 -2
- package/dist/{chunk-ZIEZJMFW.js → chunk-F6WCOXTF.js} +2 -2
- package/dist/{chunk-ONWVMYHX.js → chunk-FKFTPFUG.js} +2 -2
- package/dist/{chunk-B7SSU55V.js → chunk-G6E7XJYL.js} +7 -7
- package/dist/{chunk-AULKCNZW.js → chunk-HW2QYZEV.js} +3 -3
- package/dist/{chunk-H7O5L2IQ.js → chunk-IDBLAGIM.js} +10 -10
- package/dist/{chunk-34ZGBAGE.js → chunk-IV6APZJS.js} +2 -2
- package/dist/{chunk-MMMYRC7Q.js → chunk-JGT7M3BA.js} +3 -3
- package/dist/{chunk-N4VCHRLD.js → chunk-KPKGDQR3.js} +2 -2
- package/dist/{chunk-IUD6NLNM.js → chunk-KR5SZNNF.js} +2 -2
- package/dist/{chunk-5R3C5LEZ.js → chunk-L3R24OLZ.js} +2 -2
- package/dist/{chunk-7H2LEYYJ.js → chunk-NYVECYCF.js} +2 -2
- package/dist/{chunk-NVCWA4QC.js → chunk-OINFRHLR.js} +2 -2
- package/dist/{chunk-CS2JO77A.js → chunk-OVJFS5P5.js} +2 -2
- package/dist/{chunk-MWZMVLXL.js → chunk-Q5FL3MEH.js} +2 -2
- package/dist/{chunk-RBULO7DO.js → chunk-Q6C5PIBW.js} +2 -2
- package/dist/{chunk-SLULR4GC.js → chunk-Q7KQ5YHT.js} +2 -2
- package/dist/{chunk-4QEZS7PK.js → chunk-QJTFMH5Y.js} +2 -2
- package/dist/{chunk-RN6ZCNM5.js → chunk-R4Y5PF25.js} +1 -1
- package/dist/{chunk-XVW52M6I.js → chunk-RP7TZEI6.js} +2 -2
- package/dist/{chunk-S3JPD4N7.js → chunk-TAC5WFJC.js} +2 -2
- package/dist/{chunk-RDESQOEE.js → chunk-TAIIC5OM.js} +3 -3
- package/dist/{chunk-SJV3AOZ2.js → chunk-TDULASPE.js} +5 -5
- package/dist/{chunk-LAL4B37X.js → chunk-UD6J2LIA.js} +2 -2
- package/dist/{chunk-LQ23DMTT.js → chunk-VRF2KFI2.js} +2 -2
- package/dist/{chunk-YXQE67A7.js → chunk-WD2JD2UB.js} +2 -2
- package/dist/{chunk-634UKELB.js → chunk-XX2IGMCB.js} +2 -2
- package/dist/{chunk-JSJZ2NXS.js → chunk-Y76HXF3F.js} +16 -16
- package/dist/{chunk-LV6ZB6CA.js → chunk-YHGRA7CK.js} +2 -2
- package/dist/{chunk-5QRYGLZN.js → chunk-ZLVUWROW.js} +2 -2
- package/dist/{chunk-ZHUVMSHI.js → chunk-ZWWKKAJL.js} +3 -3
- package/dist/cli.js +37 -37
- package/dist/coding/export-okf-codegraph.js +1 -1
- package/dist/compounding/engine.js +2 -2
- package/dist/config.js +1 -1
- package/dist/connectors/codex-materialize-runner.js +2 -2
- package/dist/connectors/index.js +2 -2
- package/dist/convergence-refresh.js +4 -4
- package/dist/corpus-watermark.js +4 -4
- package/dist/entity-retrieval.js +2 -2
- package/dist/external-wiki-access.js +12 -12
- package/dist/extraction.js +2 -2
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/index.js +46 -46
- package/dist/location/index.js +4 -4
- package/dist/maintenance/memory-governance.js +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +3 -3
- package/dist/memory-browse-operations.js +12 -12
- package/dist/namespaces/migrate.js +3 -3
- package/dist/namespaces/storage.js +2 -2
- package/dist/operator-doctor-corpus.js +5 -5
- package/dist/operator-toolkit.js +10 -10
- package/dist/orchestration/maintenance.js +10 -10
- package/dist/orchestrator.js +46 -46
- package/dist/recall-navigation-operations.js +12 -12
- package/dist/recall-navigation.js +11 -11
- package/dist/resume-bundles.js +1 -1
- package/dist/semantic-consolidation.js +3 -3
- package/dist/semantic-rule-promotion.js +2 -2
- package/dist/semantic-rule-verifier.js +2 -2
- package/dist/source-agent-qualifier.js +2 -2
- package/dist/standup/build.js +2 -2
- package/dist/storage/entity-canonical-id-migration.d.ts.map +1 -1
- package/dist/storage.js +1 -1
- package/dist/support-passport/index.js +14 -14
- package/dist/transfer/export-okf.js +2 -2
- package/dist/verified-recall.js +2 -2
- package/dist/who-knows-cli.js +3 -3
- package/dist/who-knows.js +2 -2
- package/package.json +2 -2
- package/src/storage/entity-canonical-id-migration.ts +35 -19
- /package/dist/{chunk-P7M22CYB.js.map → chunk-2NZ7KWRW.js.map} +0 -0
- /package/dist/{chunk-2CBWEIS4.js.map → chunk-42G4FIKQ.js.map} +0 -0
- /package/dist/{chunk-4ALOINQ4.js.map → chunk-4B5S3VWD.js.map} +0 -0
- /package/dist/{chunk-2JQZSQXI.js.map → chunk-4HNY6ORZ.js.map} +0 -0
- /package/dist/{chunk-KA4U5GQN.js.map → chunk-5SV2GFZX.js.map} +0 -0
- /package/dist/{chunk-C6LRFPZL.js.map → chunk-6JYYSDHH.js.map} +0 -0
- /package/dist/{chunk-3RZOLUZT.js.map → chunk-7DNMX7SA.js.map} +0 -0
- /package/dist/{chunk-VLDVNZQE.js.map → chunk-7WSQZJPC.js.map} +0 -0
- /package/dist/{chunk-FSXD6Y4H.js.map → chunk-AAMFQHKI.js.map} +0 -0
- /package/dist/{chunk-X45KZOT2.js.map → chunk-ADP2VCP6.js.map} +0 -0
- /package/dist/{chunk-HKHZWJ3E.js.map → chunk-AJW2K7K3.js.map} +0 -0
- /package/dist/{chunk-ZMT4ZVJU.js.map → chunk-BJX6G726.js.map} +0 -0
- /package/dist/{chunk-DTABICJ3.js.map → chunk-DJ4CKWAD.js.map} +0 -0
- /package/dist/{chunk-XIXM6G7I.js.map → chunk-EJO2NWW7.js.map} +0 -0
- /package/dist/{chunk-TFXXMTHV.js.map → chunk-EN2YX5SF.js.map} +0 -0
- /package/dist/{chunk-ZIEZJMFW.js.map → chunk-F6WCOXTF.js.map} +0 -0
- /package/dist/{chunk-ONWVMYHX.js.map → chunk-FKFTPFUG.js.map} +0 -0
- /package/dist/{chunk-B7SSU55V.js.map → chunk-G6E7XJYL.js.map} +0 -0
- /package/dist/{chunk-AULKCNZW.js.map → chunk-HW2QYZEV.js.map} +0 -0
- /package/dist/{chunk-H7O5L2IQ.js.map → chunk-IDBLAGIM.js.map} +0 -0
- /package/dist/{chunk-34ZGBAGE.js.map → chunk-IV6APZJS.js.map} +0 -0
- /package/dist/{chunk-MMMYRC7Q.js.map → chunk-JGT7M3BA.js.map} +0 -0
- /package/dist/{chunk-N4VCHRLD.js.map → chunk-KPKGDQR3.js.map} +0 -0
- /package/dist/{chunk-IUD6NLNM.js.map → chunk-KR5SZNNF.js.map} +0 -0
- /package/dist/{chunk-5R3C5LEZ.js.map → chunk-L3R24OLZ.js.map} +0 -0
- /package/dist/{chunk-7H2LEYYJ.js.map → chunk-NYVECYCF.js.map} +0 -0
- /package/dist/{chunk-NVCWA4QC.js.map → chunk-OINFRHLR.js.map} +0 -0
- /package/dist/{chunk-CS2JO77A.js.map → chunk-OVJFS5P5.js.map} +0 -0
- /package/dist/{chunk-MWZMVLXL.js.map → chunk-Q5FL3MEH.js.map} +0 -0
- /package/dist/{chunk-RBULO7DO.js.map → chunk-Q6C5PIBW.js.map} +0 -0
- /package/dist/{chunk-SLULR4GC.js.map → chunk-Q7KQ5YHT.js.map} +0 -0
- /package/dist/{chunk-4QEZS7PK.js.map → chunk-QJTFMH5Y.js.map} +0 -0
- /package/dist/{chunk-RN6ZCNM5.js.map → chunk-R4Y5PF25.js.map} +0 -0
- /package/dist/{chunk-XVW52M6I.js.map → chunk-RP7TZEI6.js.map} +0 -0
- /package/dist/{chunk-S3JPD4N7.js.map → chunk-TAC5WFJC.js.map} +0 -0
- /package/dist/{chunk-RDESQOEE.js.map → chunk-TAIIC5OM.js.map} +0 -0
- /package/dist/{chunk-SJV3AOZ2.js.map → chunk-TDULASPE.js.map} +0 -0
- /package/dist/{chunk-LAL4B37X.js.map → chunk-UD6J2LIA.js.map} +0 -0
- /package/dist/{chunk-LQ23DMTT.js.map → chunk-VRF2KFI2.js.map} +0 -0
- /package/dist/{chunk-YXQE67A7.js.map → chunk-WD2JD2UB.js.map} +0 -0
- /package/dist/{chunk-634UKELB.js.map → chunk-XX2IGMCB.js.map} +0 -0
- /package/dist/{chunk-JSJZ2NXS.js.map → chunk-Y76HXF3F.js.map} +0 -0
- /package/dist/{chunk-LV6ZB6CA.js.map → chunk-YHGRA7CK.js.map} +0 -0
- /package/dist/{chunk-5QRYGLZN.js.map → chunk-ZLVUWROW.js.map} +0 -0
- /package/dist/{chunk-ZHUVMSHI.js.map → chunk-ZWWKKAJL.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
SUPPORT_PASSPORT_MODEL_RESULT_PATH,
|
|
5
5
|
SupportPassportModelBridge,
|
|
6
6
|
parseSupportPassportModelJob
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-2NZ7KWRW.js";
|
|
8
8
|
import {
|
|
9
9
|
DEFAULT_SUPPORT_PASSPORT_CONFIG,
|
|
10
10
|
parseSupportPassportConfig
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
buildSupportPassportPublicRequestHandler,
|
|
15
15
|
composeSupportPassportExternalRequestHandlers,
|
|
16
16
|
normalizeSupportPassportNetworkAddress
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import "../chunk-
|
|
17
|
+
} from "../chunk-QJTFMH5Y.js";
|
|
18
|
+
import "../chunk-RP7TZEI6.js";
|
|
19
19
|
import {
|
|
20
20
|
SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS,
|
|
21
21
|
SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
notifySupportPassportCommitted,
|
|
57
57
|
resolveSupportPassportModelRoutePlan,
|
|
58
58
|
syncDirectoryForDurability
|
|
59
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-4B5S3VWD.js";
|
|
60
60
|
import "../chunk-W4F3C7N7.js";
|
|
61
61
|
import "../chunk-MPC7TYTZ.js";
|
|
62
62
|
import "../chunk-ZHXSOMYH.js";
|
|
@@ -64,7 +64,7 @@ import "../chunk-IFBSZGW3.js";
|
|
|
64
64
|
import "../chunk-C3QXITIP.js";
|
|
65
65
|
import "../chunk-VQ7B2Q6M.js";
|
|
66
66
|
import "../chunk-OGXXGHW6.js";
|
|
67
|
-
import "../chunk-
|
|
67
|
+
import "../chunk-NYVECYCF.js";
|
|
68
68
|
import "../chunk-PJSK6OJM.js";
|
|
69
69
|
import "../chunk-GNVZQ5JN.js";
|
|
70
70
|
import "../chunk-YN2UN7N3.js";
|
|
@@ -87,7 +87,7 @@ import "../chunk-H7XKCNR6.js";
|
|
|
87
87
|
import "../chunk-36S7UHAW.js";
|
|
88
88
|
import "../chunk-SOBJ6NEY.js";
|
|
89
89
|
import "../chunk-C5CPYMLX.js";
|
|
90
|
-
import "../chunk-
|
|
90
|
+
import "../chunk-AAMFQHKI.js";
|
|
91
91
|
import "../chunk-E6UNM67F.js";
|
|
92
92
|
import "../chunk-6WHJ2EAB.js";
|
|
93
93
|
import "../chunk-AQEJKOKI.js";
|
|
@@ -97,7 +97,7 @@ import "../chunk-IISBCCWR.js";
|
|
|
97
97
|
import "../chunk-6RD7MSIO.js";
|
|
98
98
|
import "../chunk-TYP7GYRI.js";
|
|
99
99
|
import "../chunk-2YA5N2BY.js";
|
|
100
|
-
import "../chunk-
|
|
100
|
+
import "../chunk-R4Y5PF25.js";
|
|
101
101
|
import "../chunk-SF6RFI5Z.js";
|
|
102
102
|
import "../chunk-EI6V5UXY.js";
|
|
103
103
|
import "../chunk-BQB5ZMYO.js";
|
|
@@ -120,13 +120,13 @@ import "../chunk-WUUGE7QC.js";
|
|
|
120
120
|
import "../chunk-HRATODNO.js";
|
|
121
121
|
import "../chunk-WTWQA7BB.js";
|
|
122
122
|
import "../chunk-VZIAVM72.js";
|
|
123
|
-
import "../chunk-
|
|
124
|
-
import "../chunk-
|
|
125
|
-
import "../chunk-
|
|
126
|
-
import "../chunk-
|
|
123
|
+
import "../chunk-F6WCOXTF.js";
|
|
124
|
+
import "../chunk-YHGRA7CK.js";
|
|
125
|
+
import "../chunk-TAC5WFJC.js";
|
|
126
|
+
import "../chunk-Q5FL3MEH.js";
|
|
127
127
|
import "../chunk-UFGFMWAD.js";
|
|
128
128
|
import "../chunk-BMWN7B3Y.js";
|
|
129
|
-
import "../chunk-
|
|
129
|
+
import "../chunk-WD2JD2UB.js";
|
|
130
130
|
import "../chunk-3UXOZBHV.js";
|
|
131
131
|
import "../chunk-PIWFNPQT.js";
|
|
132
132
|
import "../chunk-GWK7FEUL.js";
|
|
@@ -143,7 +143,7 @@ import "../chunk-OD4FM2U7.js";
|
|
|
143
143
|
import "../chunk-ZY2MNJR6.js";
|
|
144
144
|
import "../chunk-2QG4SLZI.js";
|
|
145
145
|
import "../chunk-TBBDFYXW.js";
|
|
146
|
-
import "../chunk-
|
|
146
|
+
import "../chunk-5SV2GFZX.js";
|
|
147
147
|
import "../chunk-6JMQR72P.js";
|
|
148
148
|
import "../chunk-TOTT6S2V.js";
|
|
149
149
|
import "../chunk-QLK3SL7Q.js";
|
|
@@ -161,7 +161,7 @@ import "../chunk-236PXYG7.js";
|
|
|
161
161
|
import "../chunk-ZCUTSMR2.js";
|
|
162
162
|
import "../chunk-QDW3E4RD.js";
|
|
163
163
|
import "../chunk-LMMQKZK3.js";
|
|
164
|
-
import "../chunk-
|
|
164
|
+
import "../chunk-2T2RF5ZK.js";
|
|
165
165
|
import "../chunk-46WM6JX2.js";
|
|
166
166
|
import "../chunk-UHVXE24Y.js";
|
|
167
167
|
import "../chunk-D5F7TKMH.js";
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
exportOkfBundle,
|
|
5
5
|
firstHeading,
|
|
6
6
|
parseIncludeStatus
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-UD6J2LIA.js";
|
|
8
8
|
import {
|
|
9
9
|
OKF_EXPORT_VERSION
|
|
10
10
|
} from "../chunk-UJX4I26O.js";
|
|
11
11
|
import "../chunk-D24OXEPB.js";
|
|
12
12
|
import "../chunk-3UXOZBHV.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-2T2RF5ZK.js";
|
|
14
14
|
import "../chunk-46WM6JX2.js";
|
|
15
15
|
import "../chunk-UHVXE24Y.js";
|
|
16
16
|
import "../chunk-D5F7TKMH.js";
|
package/dist/verified-recall.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedEpisodeResults,
|
|
3
3
|
searchVerifiedEpisodes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OINFRHLR.js";
|
|
5
5
|
import "./chunk-B7RWBZXW.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-2T2RF5ZK.js";
|
|
7
7
|
import "./chunk-46WM6JX2.js";
|
|
8
8
|
import "./chunk-UHVXE24Y.js";
|
|
9
9
|
import "./chunk-D5F7TKMH.js";
|
package/dist/who-knows-cli.js
CHANGED
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
renderWhoKnows,
|
|
5
5
|
renderWhoKnowsJson,
|
|
6
6
|
renderWhoKnowsText
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-XX2IGMCB.js";
|
|
8
|
+
import "./chunk-NYVECYCF.js";
|
|
9
|
+
import "./chunk-2T2RF5ZK.js";
|
|
10
10
|
import "./chunk-46WM6JX2.js";
|
|
11
11
|
import "./chunk-UHVXE24Y.js";
|
|
12
12
|
import "./chunk-D5F7TKMH.js";
|
package/dist/who-knows.js
CHANGED
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
loadWhoKnowsEntities,
|
|
10
10
|
tokenizeTopic,
|
|
11
11
|
validateWhoKnowsInput
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-NYVECYCF.js";
|
|
13
|
+
import "./chunk-2T2RF5ZK.js";
|
|
14
14
|
import "./chunk-46WM6JX2.js";
|
|
15
15
|
import "./chunk-UHVXE24Y.js";
|
|
16
16
|
import "./chunk-D5F7TKMH.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.69.
|
|
3
|
+
"version": "9.69.60",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -3307,7 +3307,7 @@
|
|
|
3307
3307
|
"core"
|
|
3308
3308
|
],
|
|
3309
3309
|
"peerDependencies": {
|
|
3310
|
-
"@remnic/coding-graph": "^9.69.
|
|
3310
|
+
"@remnic/coding-graph": "^9.69.60"
|
|
3311
3311
|
},
|
|
3312
3312
|
"peerDependenciesMeta": {
|
|
3313
3313
|
"@remnic/coding-graph": {
|
|
@@ -695,18 +695,6 @@ function mergeDiscoveredMappings(
|
|
|
695
695
|
for (const [legacyId, canonicalId] of Object.entries(discovered)) {
|
|
696
696
|
const previousMapping = merged[legacyId];
|
|
697
697
|
if (previousMapping !== undefined && previousMapping !== canonicalId) {
|
|
698
|
-
// A -> B collapses to A -> C once B -> C exists, so a rescan that still
|
|
699
|
-
// reads A -> B off disk is reporting the same chain, not a new target.
|
|
700
|
-
// Only a target the chain cannot reach is a real conflict.
|
|
701
|
-
let hop: string | undefined = canonicalId;
|
|
702
|
-
const seen = new Set<string>();
|
|
703
|
-
while (hop !== undefined && hop !== previousMapping && !seen.has(hop)) {
|
|
704
|
-
seen.add(hop);
|
|
705
|
-
hop = merged[hop];
|
|
706
|
-
}
|
|
707
|
-
if (hop !== previousMapping) {
|
|
708
|
-
throw new Error(`Legacy entity id ${legacyId} changed canonical target during migration.`);
|
|
709
|
-
}
|
|
710
698
|
continue;
|
|
711
699
|
}
|
|
712
700
|
if (previousMapping === undefined && wouldCreateMappingCycle(merged, legacyId, canonicalId)) continue;
|
|
@@ -876,6 +864,11 @@ export async function migrateLegacyEntityCanonicalIds(
|
|
|
876
864
|
};
|
|
877
865
|
}
|
|
878
866
|
const blocked: BlockedEntityPairs = new Map();
|
|
867
|
+
// Parks for pairs whose files are GONE, tracked separately from
|
|
868
|
+
// collision parks: pruneBlocked drops these (the canonical file is gone
|
|
869
|
+
// too), and the rescan's blocked.clear() would otherwise silence them
|
|
870
|
+
// before finish() reports anything.
|
|
871
|
+
const staleParked: BlockedEntityPairs = new Map();
|
|
879
872
|
// ONE aggregated line per run, not one per pair per restart: this used to
|
|
880
873
|
// abort the daemon, so the operator needs the whole list and the remedy.
|
|
881
874
|
const finish = async (): Promise<string | undefined> => {
|
|
@@ -886,6 +879,13 @@ export async function migrateLegacyEntityCanonicalIds(
|
|
|
886
879
|
+ "Both files were kept and the legacy id still resolves; merge or delete one side to migrate it.",
|
|
887
880
|
);
|
|
888
881
|
}
|
|
882
|
+
if (staleParked.size > 0) {
|
|
883
|
+
const pairs = [...staleParked].map(([legacyId, canonicalId]) => `${legacyId} -> ${canonicalId}`).join(", ");
|
|
884
|
+
log.warn(
|
|
885
|
+
`entity canonical-id migration dropped ${staleParked.size} mapping(s) whose entity files are gone: ${pairs}. `
|
|
886
|
+
+ "The stale journal entries were removed; references to those legacy ids do not resolve either way.",
|
|
887
|
+
);
|
|
888
|
+
}
|
|
889
889
|
// Every finish() path either just rewrote references (main/reconcile
|
|
890
890
|
// paths), has none to rewrite (empty mappings), or observed no marker
|
|
891
891
|
// (stable no-op) — so the CONSUMED generation is removed here. A fresh
|
|
@@ -945,9 +945,22 @@ export async function migrateLegacyEntityCanonicalIds(
|
|
|
945
945
|
if (active[legacyId] !== undefined) continue;
|
|
946
946
|
const legacyPath = deps.resolveEntityFilePath(legacyId);
|
|
947
947
|
if (legacyPath !== null && (await fileExists(legacyPath))) continue;
|
|
948
|
-
//
|
|
949
|
-
//
|
|
950
|
-
|
|
948
|
+
// Resolve the parked target through ACTIVE moves before deciding
|
|
949
|
+
// its file is gone: a parked A -> B beside an active B -> C must
|
|
950
|
+
// promote to A -> C and rewrite, not drop because B was moved
|
|
951
|
+
// out-of-band. Only a target with no surviving file may drop.
|
|
952
|
+
let target = canonicalId;
|
|
953
|
+
const seenTargets = new Set<string>();
|
|
954
|
+
while (active[target] !== undefined && !seenTargets.has(target)) {
|
|
955
|
+
seenTargets.add(target);
|
|
956
|
+
target = active[target]!;
|
|
957
|
+
}
|
|
958
|
+
const targetPath = deps.resolveEntityFilePath(target);
|
|
959
|
+
if (targetPath === null || !(await fileExists(targetPath))) {
|
|
960
|
+
staleParked.set(legacyId, canonicalId);
|
|
961
|
+
continue;
|
|
962
|
+
}
|
|
963
|
+
active[legacyId] = target;
|
|
951
964
|
revived = true;
|
|
952
965
|
}
|
|
953
966
|
// Reviving a whole chain at once yields A -> B -> C, and each rewrite
|
|
@@ -1069,10 +1082,13 @@ export async function migrateLegacyEntityCanonicalIds(
|
|
|
1069
1082
|
}
|
|
1070
1083
|
if (deferredMappings.length === 0) break;
|
|
1071
1084
|
if (!progressed) {
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1085
|
+
// Deferred means both files are missing: no later pass can help
|
|
1086
|
+
// these pairs, so park them all instead of Fatal-exiting.
|
|
1087
|
+
for (const [legacyId, canonicalId] of deferredMappings) {
|
|
1088
|
+
blocked.set(legacyId, canonicalId);
|
|
1089
|
+
staleParked.set(legacyId, canonicalId);
|
|
1090
|
+
}
|
|
1091
|
+
break;
|
|
1076
1092
|
}
|
|
1077
1093
|
pendingMappings = deferredMappings;
|
|
1078
1094
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|