aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoan Luu Duc Tai <doan@luuduct.ai>2026-10-30 22:38:19 -0500
committerDoan Luu Duc Tai <doan@luuduct.ai>2026-10-30 22:38:19 -0500
commitdd1d5863ef865ebe29dc93d03ca6abc0aaf48bee (patch)
treebb5a3c51eae1727d897b4817eebab65c3ec02094
parent6933ec28be3dac0dc17cd634c663db3b4818caad (diff)
Document the signed history rewrite and clone recoveryfeature/private-chat
-rw-r--r--docs/GIT-HISTORY.txt85
1 files changed, 85 insertions, 0 deletions
diff --git a/docs/GIT-HISTORY.txt b/docs/GIT-HISTORY.txt
new file mode 100644
index 0000000..2dfc335
--- /dev/null
+++ b/docs/GIT-HISTORY.txt
@@ -0,0 +1,85 @@
+Copyright (C) 2026 Doan Luu Duc Tai <doan@luuduct.ai>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+GIT IDENTITY AND SIGNATURE REWRITE
+
+ Requested to replace the historical ops <ops@localhost> identity with
+ Doan Luu Duc Tai <doan@luuduct.ai> and sign the history with the canonical
+ RSA-2048 key 3346AA3150F8F16828BB0D14F8C66DF77AFECEA6.
+
+ Ten historical author identities and their corresponding committer identities
+ were corrected. All 27 commits reachable from main and feature/private-chat
+ at the time of the rewrite were recreated and signed because rewritten
+ parents change descendant commit IDs. Every new signature was verified.
+
+ Every corresponding tree, message, original author timestamp/time zone, and
+ original committer timestamp/time zone was preserved. Merge topology was
+ preserved. Signature creation times reflect the new signing operation.
+ main's file tree is unchanged. Configuration/chat development stays on
+ feature/private-chat; rewriting metadata does not deploy that code to main.
+
+ Remote updates use an atomic push and exact force-with-lease expectations
+ for both branches, preventing overwrite of an unexpected remote update.
+ Existing objects and reflogs may still contain old IDs: this is an authorship
+ correction, not a claim of private-data removal or historical erasure.
+
+EXISTING CLONES
+
+ The active development checkout is already aligned. Other clones must fetch
+ the new history instead of using an ordinary pull across divergent histories.
+ Preserve local-only commits and working changes first. A fresh development
+ clone is also possible; keep private .env and runtime data out of Git.
+
+ For an existing clone with no local-only commits:
+
+ git fetch origin
+ git switch main
+ git reset --keep origin/main
+
+ For a feature checkout, use feature/private-chat in the final two commands.
+ --keep refuses updates that would overwrite conflicting working changes.
+ Do not blindly reset a clone with independent local work; use the mapping
+ below to identify the corresponding rewritten base before rebasing that work.
+ Git changes do not remove or replace ignored .env or var/ data.
+
+ORIGINAL TO REWRITTEN COMMITS
+
+ 47fcc566884d7078c153cdce9fb62399fcca5d9e c4b2f892a1c6508360a683c90e8c4d596c521336
+ 37d5e4a152df67d247349d2ed289bf65859ead53 020d3454cad6619bf25c6ecb0a293502f40364bd
+ 8a327a41cdce40933b977f7c6662929488bcf83e 64a1b484abb96c91da9aa23e0e45576749f6cdfe
+ 3a8956f9cb85184ae2b8202d7a733124a0d3f95f 9599590f67c24f70c400b967d162095c63f6af61
+ 2f5c323be4a44b80cf9e39d51210776146a77cbd 1632c88ba08c62966c1f0b1578741d8af007e6fd
+ 118ba081389cfd80b38c9c691fd6d75f6497dcb5 274e70679b83bcac3dee3599bd9389a3332462ec
+ 38aa5d1f2a8dfc8ea97c0fdce8feae7e37795533 5317fa43b79e4251fcbcff2b4f1243a961ac00fe
+ 902cfd395fb03d6147813560ac5fcd7146702a1d 463c6f48a06730c29f89b2f376e68dc805df5cc9
+ e373f154dbeacc5a0e83b4ec73c3aa316239c029 5386a63bfb2f14cab99874e7c414e1a418b01f67
+ 006a1e94075e90fccfe248cd66bf7d0586a86279 84960925108eb2b5950d4c299b15b18893e0c0d0
+ 19a0280d7dabd4ca637d8070cc7d3691a0e85bd1 909dce458d4bbef6710c2b4a67cd906902bb7f3f
+ c06e29dae4bb290fd2849f69da1bfa940c5a8222 5bed750baa5d782427e98550d34124f569e2fff8
+ 714866be200b882be437375006180456284bab1c 9c7dd654512b8f51af15d50dd75a515566723be7
+ 9f070f7ad0952c61b4ee66d2a01ff1bdf7ade0a8 cad7ab1e1ab1dde8ff4ba349cd5b1a05bbd32b05
+ faaac8558431c80a6b8fbcf2c8f17f16d8602ab6 1386bd16b0fd796314d9ad70aede0946bd5c46bd
+ 92bf96961c09d7df6b1bfea72eb8a107bcf9e221 d546193ee543a5b1a0a097d0a7deca76e81b7de2
+ 0a0cdc0c44dd8b4fb44d8a859962c40c593e98eb f196233257d247c94550cf822b91bc3c9d8a7f8f
+ 1206813d47e8602f08cbeaf27e73453e089e7c52 834a21a7cadce64889856a2a7521440a1519e244
+ d611c869eb12e7fff5754be31775f82200ec958b b46ece18a424eaea3f396ddae7e45e91d1c0e742
+ 436e217c7858888702d2b6d9e655597ccadb7281 f196c27faf265cd14d8d7accf58e87b4df3c8a91
+ 7a0ce2805258e8ac061202904379692d53d5dc95 cf2f0e8c6752c401f152a8e534ba166839d4307e
+ 774074bb2bbd3bc07f7094cdce0935eca7520725 a0057b13fa4b6bed8aee3132001e79a245efabc8
+ 143880db086c617b843340ca7023a879507761f8 0a4da3b86eb69f0f09b802a55e36fa9cf1bbf38c
+ 556eaa133e9cfe7f4c8e542708119fdfd311357e e6b350a1d48ca0490b7a3447bb8d0a4235514b76
+ b7374fe09306c495131cf3673addb76a1dcf017d 3034705b6679bff1802c4180b7b4711b94fed7f9
+ be16d00a8a4750028073e018ab2c58d54af192c4 c3b361c45ac8dd898d5c83a161abed5fc138b6c0
+ 28a772cab50b1064e317aedbe4689aea286b1ec4 6933ec28be3dac0dc17cd634c663db3b4818caad