1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
//! What:
//! Internal native cli-git implementation,
//! not yet the production executable.
//! Why:
//! The Rust rewrite preserves Git's own argument,
//! repository and transaction semantics.
//!
//! In TS you'd write (pseudocode):
//! ```ts
//! // Internal modules used by the forthcoming native entry point and consumer verification.
//! ```
/// The decision one invocation ends in:
/// become Git,
/// or print and exit.
/// The four top-level spellings after which the wrapper announces itself,
/// and the text it prints once Git has answered.
/// Variables added to every real-Git child:
/// lock PID injection and the forward-target marker.
/// The one failure type for rejected configuration content or files.
/// Repository-root discovery and bounded reading of `cli-git.config.jsonc`.
/// Lazy configuration loading for known inspection versus mutation/ambiguous commands.
/// Whole-document JSONC validation into typed settings.
/// Validation of the `policies` section and per-policy options.
/// The `rulesFile` option:
/// a repository-relative name that stays inside the repository.
/// Typed settings and their defaults.
/// One `git config --list` read, parsed, and the lookups the commit path makes against it.
/// Key-naming typed readers over parsed JSONC values.
/// JSONL event rendering for wrapper-made diagnostics.
/// Worktree target classification for worktree-enforcing policies.
/// The per-invocation decision the thin executable performs.
/// Spellings of the wrapper-only escape hatches shared by several modules.
/// Starting real Git with unchanged arguments,
/// streams and exit status.
/// Captured read-only real-Git queries over raw bytes.
/// Git 2.56.0 global-argument boundaries over unchanged operating-system strings.
/// Configuration of the repository one invocation selects.
/// The `git cli-git` decision:
/// help,
/// retired commands,
/// and direct `check`/`fix`.
/// The `git cli-git` argument grammar.
/// The refusal of a direct command whose `--policy` selects a policy that is off.
/// The fixed registry of shipped policies.
/// PATH resolution of the real Git executable.
/// Wrapper self-exclusion for one PATH candidate.
/// Disposable fixtures shared by unit tests;
/// never part of the release executable.
/// A Git stand-in that logs each start and runs the real Git;
/// never part of the release executable.
/// The Git starts of the layout questions for a user whose own file holds `core.fsmonitor = true`;
/// never part of the release executable.
/// Repository and worktree identity as reported by real Git.
/// Git 2.56.0 `parse-options` tokenization of one command's argument region.
/// Long-option matching:
/// exact names,
/// unique abbreviations and `no-` negation.
/// Final-state and position questions over a tokenized region.
/// Short-option clusters and their attached or following values.
/// The shared decision of which bytes are an option's value.
/// Real-Git fixtures and table oracles for command tests;
/// never in the release build.
/// Per-case copies of a pristine fixture and worker threads for independent test cases;
/// never in the release build.
/// Differential harness over `git rev-parse --parseopt`;
/// never in the release build.
/// Table oracle over `--git-completion-helper-all`;
/// never in the release build.
/// Facts about the arguments after `git commit`.
/// The complete Git 2.56.0 option table of `git commit`.
/// The shared result and builder of transforms that add tokens to a command line.
/// Pure core of the index-against-`HEAD` check.
/// The query and reading of "does this worktree hold uncommitted state?".
/// Pure decision of the commit-only transform.
/// User-facing diagnostics of the commit-only transform.
/// Pure core of the merge,
/// cherry-pick and revert conclusion check.
/// The Git 2.56.0 option table of `git push` and its facts.
/// The Git 2.56.0 option table of `git status`,
/// its facts and the advice-key reading.
/// Pure decision of the atomic-push transform.
/// Pure decision of the status-hints transform.
/// The Git 2.56.0 option table of `git add` and its bulk-staging facts.
/// The Git 2.56.0 option table of `git clean` and its deletion facts.
/// The Git 2.56.0 option table of `git reset` and its mode.
/// `git stash` subcommand dispatch and wrapper-flag positions.
/// The commands that can overwrite or delete uncommitted state, read as Git reads them.
/// The `checkout` and `restore` command lines that take one side of a conflicted file.
/// Conflicted paths, the decision on a command line that names them, and the saved copy of each file.
/// The linked-worktree policy's carve-out for conflicted files during a merge, rebase, cherry-pick or revert.
/// The Git 2.56.0 option tables of every `git stash` subcommand.
/// Branch-creation facts of `git branch`,
/// `git checkout` and `git switch`.
/// Which action a tokenized `git branch` region selects.
/// The complete Git 2.56.0 option table of `git branch`.
/// Explicit creation and the remote-guess candidate of `git checkout` and `git switch`.
/// The complete Git 2.56.0 option tables of `git checkout` and `git switch`.
/// The Git 2.56.0 option groups of `git config`.
/// The form and file scope of a `git config` region.
/// Pure decision of the require-root policy.
/// Whether a `git worktree` invocation creates or moves a worktree.
/// Wrapper-only control spellings,
/// their meanings,
/// and removal before the subcommand.
/// Removal of every wrapper control from one invocation,
/// by position.
/// Lifecycle triggers and the trigger set of every shipped policy.
/// Policy events and their JSON Lines rendering.
/// A pathname as events report it:
/// text,
/// plus base64 `pathBytes` when it is not UTF-8.
/// Exact repository path bytes as the operating system takes them, and as text for messages.
/// Ordered policy execution for one lifecycle point.
/// Slice 6: writes one corrected file into the private commit index as a blob and an index entry.
/// Slice 6: the commit path's bounded policy convergence over the private index.
/// The commit transaction in the incumbent's order, up to the settled policies.
/// The conclusion of a settled commit transaction: preparation, landing and post-landing completion.
/// The normalization-only transaction for a correction that removed every change.
/// The finding for a staged deletion that an explicit-path commit cannot record.
/// The `git commit` command: the transaction, the settled events, the post-commit gate and the backup.
/// Rule facts from the real repository with candidates read from the private index.
/// The worktree completion records of selected corrections and of hook changes.
/// The bounded loop that repeats a pass after corrections changed candidate content.
/// The one query for repository identity,
/// top level and the path below it.
/// Lazily fetched repository facts behind one interface,
/// with the real-Git provider.
/// Pure decision of the linked-worktree-only policy.
/// The rejection texts of the linked-worktree-only policy.
/// The append-only record of every command form that can discard uncommitted state.
/// The record of where one wrapped commit spent its time,
/// appended beside the discard audit.
/// The intent-guessing hint that follows a finding, an engine failure or a notice.
/// Pure decision of the branch-worktree-only policy and its one-query remote guess.
/// Pure decision of the add-explicit policy.
/// The repository content the dependent-version planner reads, and its two failure kinds.
/// Which paths the dependent-version planner reads: manifests, configuration, source.
/// Strict JSON reading of a manifest's name, version and dependency names.
/// Patch bumps of plain release versions and `JSON.stringify` quoting.
/// The byte-preserving rewrite of a manifest's top-level version.
/// Publishable package names from the generated registry configuration.
/// Whether source text imports a package.
/// The dependency walk and the plan of dependent bumps.
/// Every workspace manifest at both states, and which versions were raised.
/// Which development dependencies each dependent bundles.
/// The dependent-version plan with exact manifest bytes before and after.
/// The decision and findings of `mono/dependent-version-bump`.
/// The dependent-version planner's view of a prepared candidate state.
/// Whether a direct fix may change a tracked file it did not select.
/// The `mono/dependent-version-bump` check over a lifecycle's candidate state.
/// An in-memory workspace that records reads; never in the release build.
/// Differential fixture reading and canonical results; never in the release build.
/// Canonical renderings of the native planner's results; never in the release build.
/// One differential case evaluated by the native planner; never in the release build.
/// The native planner against the incumbent's recorded results; never in the release build.
/// The shipped policies as checks over rule cores and repository facts.
/// What a lifecycle offers content policies,
/// and its candidates once prepared.
/// The built-in final-newline policy:
/// canonical final LF,
/// preserved paths,
/// findings.
/// The optional root-context policy:
/// no top-level `CONTEXT.md` enters the index.
/// The optional catalog-specifier policy over the shared rule crate:
/// every dependency in a tracked `package.json` is a catalog or workspace reference.
/// The optional forbidden-strings policy over the linked scanner,
/// with redacted findings.
/// What one in-process linter run produced:
/// the fixed source and the findings left,
/// or why it is unusable.
/// The one-rule linter configuration document.
/// The gitignore-syntax `exclude` patterns of `markdown/autofix`,
/// matched as the linter matches them.
/// The `markdown/autofix` policy over candidates,
/// behind its linter interface.
/// The executable's linter for that policy:
/// `monochromatic-lint` linked in-process,
/// guarded by a deadline,
/// once per candidate.
/// A job on a thread of its own with a deadline and panic containment.
/// The executable's panic hook:
/// where an internal error happened,
/// never its message.
/// Installing a direct fix's corrections into the worktree,
/// all or none.
/// The direct fix:
/// converge corrections in memory,
/// then install them.
/// The fixed argument transforms of a forwarded command,
/// in order.
/// One complete pass:
/// built-in policies,
/// fixed transforms,
/// optional policies.
/// The names of the commands built into Git 2.56.0.
/// The work of the installed cli-git that is not ported,
/// and the refusal notice.
/// The lifecycle of one wrapped Git command,
/// from refusals to forwarding.
/// A scripted repository-facts provider for unit tests;
/// never in the release build.
/// The one failure type of the candidate layer and its closed list of causes.
/// Validated Git object names and the file modes a candidate can carry.
/// Pure framing of one `git cat-file --batch` reply.
/// Pure parsing of raw NUL-delimited changed-path records.
/// The long-lived object reader that answers every blob read of an invocation.
/// Immutable candidate versions:
/// identity,
/// pathname,
/// mode,
/// change and object per path.
/// Per-invocation listing,
/// lazy bytes and invalidation of candidate versions.
/// Pure parsing of `git ls-files --stage` records and the delta between two index states.
/// The files of a commit's tree with their modes and objects.
/// A private,
/// timestamp-preserving copy of the real index,
/// removed when dropped.
/// Which candidate paths have their `text` Git attribute unset,
/// read from the state the candidates were listed from.
/// What `git add` would stage,
/// and the worktree files a direct command selects.
/// Which candidates hold content that a parent commit's tree already holds,
/// found by exact object name.
/// The linked forbidden-strings scanner:
/// one load per invocation,
/// typed redacted findings.
/// Rules-file precedence and which candidates the scanner is given.
/// One scan pass over a candidate version's exact bytes.
/// Which engine failure code each candidate and scanner failure carries.
/// Process isolation and rule fixtures for scanner controls;
/// never in the release build.
/// Private,
/// crash-safe file primitives shared by every durable record.
/// Where short-lived private files live:
/// the per-user scratch directory and the repository scratch directory,
/// never the system temporary directory.
/// Compact JSON records read and written with the incumbent's `JSON` semantics.
/// Random identifiers in the layout of the incumbent's `randomUUID`.
/// Text operations with the exact semantics of JavaScript's built-ins.
/// The PID namespace an owner record names, and the rule for owners of another one.
/// Process-birth identities in the incumbent's exact spelling.
/// The owner record inside every owner-lock directory.
/// Line-oriented debug and warning diagnostics on standard error.
/// The fail-closed failure of reading or recovering durable transaction state.
/// The owner record of one commit-transaction directory and its liveness rule.
/// The schema-version-2 journal records of one commit transaction and their filenames.
/// UTC timestamps in the exact form of JavaScript's `toISOString`.
/// Running real Git for transaction,
/// recovery and landing work.
/// Lexical path normalization.
/// The ban on Git starting the wrapper for a hook: no entry writer, no start-name dispatch.
/// What `git cli-git doctor` reports from the configuration: configured hooks and the retired `hooks` key.
/// The configured external hooks, read from the snapshot, and the loud report that none runs.
/// The non-blocking warning for a configured `core.hooksPath`, decided from the configuration snapshot alone.
/// `git cli-git doctor`: the traditional hooks a repository holds, which are unsupported.
/// When a push needs the Git LFS upload, and the texts the parent prints around it.
/// What the Git LFS upload sends: the remote and the refs, read from the push and the configuration Git would read.
/// The configuration the Git LFS upload plan reads, and the default remote derived from it.
/// Hides the credentials inside URLs in the text relayed from `git-lfs`.
/// Which failed `git-lfs push` runs are tried again (server errors only), after how long, and the notice.
/// Whether a blob is a Git LFS pointer, decided as `git-lfs` decides it.
/// The LFS objects a push introduces, found in process from the commits to be pushed.
/// The upload plan narrowed to the objects the push introduces, or to nothing.
/// The parent's bounded or interactive run of the Git LFS upload.
/// The Git LFS step before a push the caller typed: pre-check, plan and upload with the caller's streams.
/// The check that `git-lfs` can start, made before a push that is preceded by the upload.
/// The auto-push's bounded `git push`, preceded by the upload, its pre-check and its explanation.
/// The push of a merge that integrated a lost race, planned and run inside the running wrapper.
/// Every real-Git start of the wrapper carries `core.hooksPath` pointing at a directory that never exists.
/// No-follow file operations recovery and landing share.
/// Test-only transaction phase markers, compiled into the release executable and armed only by an environment variable.
/// Git commands run against a transaction's shadow repository.
/// Native conclusion cleanup reproduced in the owning worktree.
/// Replay: the unified-diff parser of subsumption (`replay_patch`).
/// Replay: the exact strict reverse check of subsumption (`replay_reverse_apply`).
/// Replay: the one-sided extension of subsumption over zero-context hunks (`replay_containment`).
/// Replay: capture order over the landed first-parent history and the per-path decision (`replay_capture_order`).
/// Replay: the shadow-repository Git runner that every replay step uses (`replay_shadow`).
/// Replay: shared paths of the landed history and the prepared commit, with their three entries (`replay_shared_paths`).
/// Replay: the text half of subsumption over index-named blobs and hunks (`replay_subsumption_text`).
/// Replay: subsumption rules and the synthetic merge base (`replay_subsumption`).
/// Replay: the merge tree, the first conflicting landed commit, and the replayed commit rebuild (`replay_merge`).
/// The empty tree's object name under each known object format.
/// Files-backend ref reads that answer without a Git process or decline.
/// Proof, without a Git process, that a sequencer marker names nothing on the files ref storage.
/// The invocation capture:
/// repository layout, symbolic `HEAD`, conclusion kind, ref backend and base.
/// The private index and object store a commit's preparation selects, and the Git request that carries them.
/// The shadow repository `config` file and the copied repository format.
/// The shadow repository links to the real shared entries.
/// The shadow ref store: snapshot, private target, symbolic refs and `HEAD`.
/// The shadow conclusion copies at preparation.
/// Argument transforms of native preparation: normalisation, global split, `-a` removal and private arguments.
/// The private commit index: copies, selection modes, pathspec files and listings.
/// Native `git commit` in the shadow, the prepared commit read back and `prepared.json`.
/// Creation of the shadow repository of one transaction.
/// The entries of an empty bare repository, created in-process instead of by `git init`.
/// A read of the assume-unchanged and skip-worktree marks of an index file.
/// Loading many blobs through one `git cat-file --batch`.
/// Bringing added paths' worktree copies to their landed bytes.
/// The startup step of a command: isolated merges whose process died, and what an earlier release left behind.
/// Process start times for lock owners,
/// read from `/proc`,
/// `ps` or the Windows process table.
/// The Git version check run once before work that depends on Git's behavior.
/// The private per-user cache of the version text, keyed by the Git executable's identity.
/// Processes holding a lock file open,
/// found by device and inode.
/// Parsers of `lsof -F pcDi` records and Restart Manager lines,
/// matched by device and inode.
/// Evidence about a foreign `index.lock` and the verdict it supports.
/// The Git command a forwarded invocation runs,
/// after ordinary alias expansion.
/// Index-writer classification and the commands that coordinate with a landing.
/// Waiting for a foreign index.lock under the classification rules and Git's backoff schedule.
/// The landing location a forwarded index writer coordinates with:
/// the real index and the registry.
/// Running a coordinated forwarded index writer:
/// the landing lock held while real Git runs as a child.
/// The `git merge` command lines the wrapper completes in isolation, and those it leaves to native Git.
/// The durable intent record of an isolated merge.
/// The raw differences of an isolated merge and the worktree state of each changed path.
/// Recovery of an isolated merge whose process died.
/// The commit message of an isolated merge.
/// The refusal findings of an isolated merge.
/// A true merge completed in isolation while the index holds staged changes.
/// Automatic maintenance decision: config record parsing and the enable and detach rules.
/// Running automatic maintenance after a landing: the config read, then `git maintenance run --auto`.
/// Catching SIGINT, SIGTERM, SIGHUP and SIGQUIT while a Git child runs, and relaying only process-sent signals.
/// The per-branch file name of the push failure notice: a reversible, flat, case-safe key.
/// How long a command waits for the commit service's hold on the index, and the variable that sets it.
/// The shared clock of every wait notice: the grace, the repeat interval and a queued commit's place in line.
/// A watcher for waits that block on a child process: notices at the cadence and the child stopped at the bound.
/// The classes of Git step a commit starts for itself, with the bound and the notice grace of each.
/// Read-only Git queries of the auto-push, each with a deadline and separate output streams.
/// The auto-push's real `git push` with a deadline and its low-speed abort.
/// The processes of this host that use a directory or a file.
/// The processes below one process, read before it is stopped and signalled only while they are still the ones found.
/// The real Git of a push, its query runner and the failure types of a push.
/// Where a plain `git push` of one named branch goes, from the configuration and the local refs.
/// The push a merge, pull, cherry-pick, revert or am hands to the service when it leaves the branch ahead of its upstream.
/// The record of each decision of the push trigger: handed over, or declined with its reason.
/// Publishing a landed commit that a moved remote branch rejected: the merge is made from objects alone and pushed.
/// The paths of a dirty worktree and of a fast-forward, and their overlap.
/// Post-commit auto-push of a landed commit: the push argv, the surfaced output and the failure reporting.
/// The post-commit gate over a landed commit: its events, its blocking and the backup it allows.
/// Authoritative manual-push updates discovered by a private dry-run push and confirmed with ls-remote.
/// The updates a manual `git push` would send, learned from Git's own dry-run report and confirmed against the remote.
/// Published-set and range computation for manual-push scans: which pushed commits a remote does not have.
/// An explicit push that lost a race: run as a child, merge in what landed on the remote and publish the merge.
/// Starting a child again when the operating system refuses it for lack of processes, within a bounded wait.
/// The manual-push candidate scope of one push: the commits and trees the destination lacks.
/// The one failure type of the linked-worktree ignored-state copy and its diagnostics.
/// Which linked worktrees a worktree-creating Git command registered, before and after it ran.
/// The ignored source paths a linked-worktree copy selects, and the path validation every selection passes.
/// The deterministic parent-first manifest of a copy, and the mode application to a staged copy.
/// Exact comparison of manifest entries against the filesystem, and the source stability check after staging.
/// The private, validated stage of one source's ignored state beside a destination worktree.
/// The exclusive creation of one destination entry from the stage, and the identity captured after it.
/// Installation of a validated stage into a new worktree, with preflight, batches and rollback on failure.
/// Removal of the paths a failed installation created, only where their identity and content still prove them cli-git's own.
/// The durable journal of one copy: exact encoding, strict validation, private storage and removal.
/// The durable claim on a stage container's name, and the removal of stages an interrupted copy left behind.
/// The append-only install log of one stage: per-batch intents and creations, with resumption.
/// One journaled installation to an end, resumption from the log, and synchronization of a created worktree.
/// The settlement lock that serializes copy installation and recovery, its owner record, and inherited leases.
/// Recovery of interrupted copies: registration checks, discards with notices, resumption, and the pending check.
/// The linked-worktree ignored-state copy around one forwarded Git invocation: the integrator's entry point.
/// Which forwarded invocations the copy applies to, and the child run that carries its settlement lease.
/// The system configuration file a real Git executable reads, learned once per executable identity.
/// In-process repository reads: the plain-text configuration reader that gives up on any spelling it cannot prove.
/// In-process repository reads: proof that no configuration scope sets `core.bare` or `core.worktree`.
/// In-process repository reads: proof that every configuration value Git types at startup is one Git accepts silently.
/// In-process repository reads: the location, Git paths and object format found from the file system.
/// In-process repository reads: the layout turned into the shapes the wrapper's existing queries answer with.
/// In-process repository reads: object kinds, names and the zlib step shared by loose objects and packs.
/// In-process repository reads: one pack, its index lookup and delta resolution.
/// In-process repository reads: the object database of a repository, its packs and alternates.
/// The abbreviated object name Git prints (`core.abbrev`, the automatic length, uniqueness), computed without starting Git.
/// In-process repository reads: trees, flattened trees and commit fields.
/// In-process repository reads: the entries of an index file, versions 2 to 4.
/// In-process repository reads: the difference between two sorted entry lists and the output spellings.
/// In-process repository reads: the files ref storage, one ref by name, a symbolic chain and the list of all refs.
/// In-process repository reads: the merged configuration listing with includes and environment entries.
/// In-process repository reads: answers to the exact read-only command lines the wrapper issues.
/// In-process repository reads: answers for the reference and configuration command lines.
/// In-process repository reads: the two runner entry points that try the answers before starting Git.
/// The standards-review shadow run: JavaScript text behaviors the log depends on (UTF-16 lengths, number text).
/// The standards-review shadow run: a file's changed old-side ranges read from the patch.
/// The standards-review shadow run: which commits get an entry, and the capped model input.
/// The standards-review shadow run: the Decisions API request body and the answer reading.
/// The standards-review shadow run: log entry rendering and appending.
/// The standards-review shadow run: the in-process HTTPS call to the decisions gateway, with a total deadline.
/// The standards-review shadow run: the two real-Git reads (patch and file texts) of a landed commit.
/// The standards-review shadow run, end to end, and its bounded runner. Nothing calls it yet.
/// A loopback HTTP server for the standards-review tests; never in the release build.
/// The durable work-item record for asynchronous work (review, push, maintenance) left for a resident consumer.
/// The clocks a claim's lease is judged by.
/// The repositories the service looks at again when a claim another instance holds may have run out.
/// Messages between the wrapper and the resident commit service.
/// What the user is told when the commit service cannot land a commit.
/// The commit service's journal and its restart decisions.
/// Test-only fault points of the commit service.
/// The commit service's serialized step.
/// What the commit service's landing does once the branch has moved: index entries and conclusion state.
/// The commit service's hold on Git's index lock across a landing.
/// The attempts and the wait of an acquisition of the index lock.
/// The marker the service writes into the index lock and the questions asked of a marker.
/// The marker of the next batch's index lock, made and flushed while the service is idle.
/// What an acquisition of the index lock found when it had to wait, for the service's log.
/// Who a marker's holder is: the identity a process writes, and the answers a reader gives (gone, running, unknown).
/// The service's hold on a placed index lock: the check that it is still the holder's, the release and the removal.
/// Whether the index lock is still the file the holder placed, and the record of a lock that could not be settled.
/// The staging files of the index lock.
/// How the service's marked file becomes the index lock, and the cleanup of staging files.
/// The inotify watch the wait for the index lock blocks on.
/// The preparation of a commit that the service lands, for every command line.
/// The `discardedCopies` section of `cli-git.config.jsonc`.
/// The bound on the folder of saved copies of conflicted files: age, size, audit and doctor report.
/// The native journal protocol and the standard error fallback the service's entries go through.
/// The lines the commit service writes about its life and about the time each request took.
/// The line the commit service writes when a signal ends it.
/// The commit service's loop.
/// The wrapper's side of a commit through the commit service.
/// Which commit command lines the commit service covers, and the message they stand for.
/// The one summary line a landed commit prints, with the abbreviated name Git would print.
/// The wait of a wrapped index writer for the commit service's own hold on the index.
/// A forwarded index writer started again when the commit service took the index before its Git did.
/// The commit command's path through the commit service.
/// The service's memory of when the bytes of the commits it landed were captured, per worktree.
/// The retry of a commit the service sent back: the captured change merged onto the branch, never prepared again from the worktree.
/// Which way a commit goes: through the service, set up first, or the earlier path.
/// The wrapper's own provisioning of the commit service's socket activation.
/// A minimal D-Bus client for the user session bus, for the provisioning's two calls.
/// The message and identities of a service commit, made as native `git commit` makes them.
/// What an amend takes from the commit it replaces: parents, message and author.
/// The commits real Git builds for the service: an editor, a signature, and what the service does not embed.
/// The renewal that keeps the claims of a shared work directory from looking abandoned while their holder works.
/// The service's consumer of after-commit push and upkeep work.
/// The wrapper's side of after-commit work: records and the wake.
/// Which commit service instance belongs to a worktree: its name, socket and unit instances.
/// Whether a worktree's head still names the branch a commit was prepared on.
/// How a commit headed for the service notices that its prepared content was removed before it landed.
/// The record of a failed backup push and the rule for when a wrapper command shows it.
/// What becomes of the unshown push notices and unfinished pushes of a linked worktree that Git removes.
/// The plan for one `git worktree add` that the cheap-worktree ladder serves: its destination and insertion point.
/// The empty subvolume made at the destination of a `git worktree add` before Git runs, and its cleanup.
/// Whether a worktree is clean enough to copy from or to remove without asking Git, proven in process.
/// The plan of a `git worktree remove` that names one directory and no option.
/// The removal of a clean subvolume worktree by one ioctl, and the plan of the `git worktree remove` it serves.
/// Fixtures shared by the controls of the cheap-worktree ladder.
/// The snapshot source: whether the creating worktree can be snapshotted for a new worktree, and what that needs.
/// The snapshot rung's mechanics: snapshot to a stage name, make it a worktree, swap it into place.
/// The binding of a `git worktree add` to the directories Git made for it, its record, and the check that the binding holds.
/// The clone rung: tracked files cloned into the new worktree, the source's index installed with fresh stat fields.
/// What both filling rungs read from Git's `--no-checkout` result, and the one step that applies the tree difference.
/// The ladder's choice of rung before real Git runs.
/// The ladder's steps after real Git returned: the snapshot rung and the fall back to Git's checkout.
/// The cheap-worktree ladder around one `git worktree add`: what runs before real Git and after it.
/// The words that say how to change the push deadline, for the terminal and for the resident commit service.
/// The mechanical ban: no release code starts the wrapper, passes it management words or writes shell text.
/// The structural check that the review's network client is reachable only from the service run; never in the release build.
/// The standards-review shadow run: appending an entry to the shared log without a lock, once per commit, with repair.
/// The service's handler for a review work item, bounded by a call deadline and a total budget.
/// The standards-review credential: redacted when printed, read from the wrapper's environment, sent in the work message.
/// The typed failure of one Linux filesystem primitive:
/// the call, the path and the error number.
/// Which filesystem holds a path (btrfs, overlayfs, other) and whether a directory is a btrfs subvolume root.
/// The mount of a path read from `/proc/self/mountinfo`, with its options (`user_subvol_rm_allowed`).
/// The btrfs ioctls that create, snapshot and destroy a subvolume, called in process.
/// `FICLONE` of one file into another and the atomic `RENAME_EXCHANGE` of two paths.
/// Directory-relative file operations that never follow a link: the held-handle primitives of the clone rung and of the
/// snapshot's stub removal.
/// The btrfs fixture root of the primitive and migration controls, and the loud report where there is none.
/// SHA-1 and SHA-256, for the checksum of a rewritten Git index.
/// The stat rewrite of a Git index file's bytes.
/// The linked worktrees of a main checkout and the index stat rewrite applied to files.
/// The failure type of the subvolume migration and its simulated-kill hook.
/// The operating-system operations of the migration behind one trait, and the Linux implementation.
/// Copying owner, permissions, times and extended attributes onto a copy.
/// One idempotent pass that makes a directory tree match another, in process.
/// The index locks the migration holds, marked with a token that names the migration.
/// An open directory that every operation inside it is addressed through, so a replaced path cannot redirect them.
/// Removal of a directory tree whose directories may lack owner write permission.
/// The migration journal beside the checkout.
/// The paths of a migration and the refusals that stop it before anything is created.
/// The state a migration command carries between its steps.
/// Converting a main checkout into a btrfs subvolume, resumably.
/// Undoing a migration and deleting the old tree.
/// The grammar of `git cli-git migrate-to-subvolume`.
/// `git cli-git migrate-to-subvolume`: root discovery, modes and exit statuses.
/// The stand-in platform and fixture checkouts of the subvolume migration controls.
/// The migration controls that need the real btrfs ioctls, `FICLONE` and exchange.
/// Quoting of bytes printed inside a shell command for a person to run.
/// The filesystem section of `git cli-git doctor`: btrfs subvolume, overlayfs, the removal mount option and its commands.