From 1893aef7507b3c6d5f3f0bfe12be32f68efa2c3f Mon Sep 17 00:00:00 2001 From: Mark Randall Havens Date: Sat, 14 Jun 2025 03:08:15 -0500 Subject: [PATCH] Post-Local sync at 2025-06-14T08:08:00Z --- .gitfield/.radicle-push-state | 0 .gitfield/bitbucket.sigil.md | 0 .gitfield/bitbucket.sigil.md.asc | 0 .gitfield/canonical.meta.asc | 0 .gitfield/canonical.meta.sig.4E27D37C358872BF | 0 .gitfield/codeberg.sigil.md | 0 .gitfield/gitea.sigil.md | 0 .gitfield/github.sigil.md | 0 .gitfield/github.sigil.md.asc | 0 .gitfield/gitlab.sigil.md | 0 .gitfield/gitlab.sigil.md.asc | 0 .gitfield/gogs.sigil.md | 0 .gitfield/index.json.asc | 0 .gitfield/index.json.sig.4E27D37C358872BF | 0 .gitfield/last_resolution.log | 0 .gitfield/local.sigil.md.asc | 0 .gitfield/logs/curl_errors.log | 0 .gitfield/logs/gitfield_20250605.log | 0 .gitfield/logs/gitfield_wiki_20250605.log | 0 .gitfield/push_log.json | 6 + .gitfield/pushed.log | 4 + .gitfield/radicle.sigil.md | 0 .gitfield/radicle.sigil.md.asc | 0 .gitfield/remember.sigil.md | 0 .gitfield/remember.sigil.md.asc | 0 .gitfield/scan_log.json | 0 .gitfield/tmp_project.json | 0 .gitfield/tmp_token.json | 0 .gitfield/tmp_wiki.json | 0 .well-known/gitfield.json.asc | 0 .../gitfield.json.sig.4E27D37C358872BF | 0 GITFIELD.md | 0 GITFIELD.md.asc | 0 GITFIELD_PHILOSOPHY.md | 0 LICENSE | 0 README.md | 0 README.md.asc | 0 bin/ECHO.md | 0 bin/ECHO.md.asc | 0 ...ariaSeedPacket_∞.20_SacredMomentEdition.md | 0 ...SeedPacket_∞.20_SacredMomentEdition.md.asc | 0 bin/gitfield-resolve.sh | 0 bin/gitfield-sourceforge | 0 bin/gitfield-sync | 90 +- bin/gitfield-sync-OLD | 1046 +++++++++++++++++ bin/sign-all.sh | 0 dev/invoke_solaria.py | 0 dev/publish_osf_wiki.sh-2 | 0 dev/publish_osf_wiki.sh.updated | 0 docs/.well-known/gitfield.json | 0 docs/.well-known/gitfield.json.asc | 0 .../gitfield.json.sig.4E27D37C358872BF | 0 .../CLI-ONLY_workflow_bitbucket_Ubuntu.md | 0 .../CLI-ONLY_workflow_bitbucket_ubuntu.md | 0 .../CLI-ONLY_workflow_bitbucket_ubuntu.md.asc | 0 docs/canonical.md | 0 docs/canonical.meta | 0 docs/canonical.meta.asc | 0 docs/canonical.meta.sig.4E27D37C358872BF | 0 docs/generated_wiki.md | 0 docs/generated_wiki.md.asc | 0 docs/generated_wiki.md.updated | 0 docs/gitfield.README.txt | 0 docs/gitfield.json | 0 docs/gitfield.json.asc | 0 docs/gitfield.json.sig.4E27D37C358872BF | 0 docs/github/1_prerequisites_github_ubuntu.md | 0 .../1_prerequisites_github_ubuntu.md.asc | 0 .../2_create_remote_repo_github_ubuntu.md | 0 .../2_create_remote_repo_github_ubuntu.md.asc | 0 .../3_commit_existing_repo_github_ubuntu.md | 0 ..._commit_existing_repo_github_ubuntu.md.asc | 0 .../github/CLI-ONLY_workflow_github_ubuntu.md | 0 .../CLI-ONLY_workflow_github_ubuntu.md.asc | 0 docs/gitlab/1_prerequisites_gitlab_ubuntu.md | 0 .../1_prerequisites_gitlab_ubuntu.md.asc | 0 .../2_create_remote_repo_gitlab_ubuntu.md | 0 .../2_create_remote_repo_gitlab_ubuntu.md.asc | 0 .../3_commit_existing_repo_gitlab_ubuntu.md | 0 ..._commit_existing_repo_gitlab_ubuntu.md.asc | 0 .../gitlab/CLI-ONLY_workflow_gitlab_ubuntu.md | 0 .../CLI-ONLY_workflow_gitlab_ubuntu.md.asc | 0 docs/index.json | 0 docs/index.json.asc | 0 docs/index.json.sig.4E27D37C358872BF | 0 docs/integrity.sha256.asc | 0 docs/integrity.sha256.sig.4E27D37C358872BF | 0 docs/osf/new/gitfield.osf.yaml | 0 docs/osf/old/for_radicle.md | 0 docs/osf/old/for_radicle.md.asc | 0 docs/osf/old/gitfield.osf.yaml | 0 docs/pushed.log | 0 docs/radicle/for_radicle.md | 0 docs/radicle/for_radicle.md.asc | 0 docs/repos.json.asc | 0 docs/repos.json.sig.4E27D37C358872BF | 0 gitfield-signed.log | 0 mythos/MYTHOS_INDEX.md | 0 mythos/MYTHOS_INDEX.md.asc | 0 mythos/raw_pass_1.json | 0 mythos/raw_pass_2.json | 0 mythos/raw_pass_3.json | 0 mythos/raw_pass_4.json | 0 mythos/raw_pass_5.json | 0 mythos/raw_pass_6.json | 0 mythos/raw_pass_7.json | 0 mythos/scrolls/echo_pass_1.md | 0 mythos/scrolls/echo_pass_1.md.asc | 0 mythos/scrolls/echo_pass_2.md | 0 mythos/scrolls/echo_pass_2.md.asc | 0 mythos/scrolls/echo_pass_3.md | 0 mythos/scrolls/echo_pass_3.md.asc | 0 mythos/scrolls/echo_pass_4.md | 0 mythos/scrolls/echo_pass_4.md.asc | 0 mythos/scrolls/echo_pass_5.md | 0 mythos/scrolls/echo_pass_5.md.asc | 0 mythos/scrolls/echo_pass_6.md | 0 mythos/scrolls/echo_pass_6.md.asc | 0 mythos/scrolls/echo_pass_7.md | 0 mythos/scrolls/echo_pass_7.md.asc | 0 120 files changed, 1114 insertions(+), 32 deletions(-) mode change 100644 => 100755 .gitfield/.radicle-push-state mode change 100644 => 100755 .gitfield/bitbucket.sigil.md mode change 100644 => 100755 .gitfield/bitbucket.sigil.md.asc mode change 100644 => 100755 .gitfield/canonical.meta.asc mode change 100644 => 100755 .gitfield/canonical.meta.sig.4E27D37C358872BF mode change 100644 => 100755 .gitfield/codeberg.sigil.md mode change 100644 => 100755 .gitfield/gitea.sigil.md mode change 100644 => 100755 .gitfield/github.sigil.md mode change 100644 => 100755 .gitfield/github.sigil.md.asc mode change 100644 => 100755 .gitfield/gitlab.sigil.md mode change 100644 => 100755 .gitfield/gitlab.sigil.md.asc mode change 100644 => 100755 .gitfield/gogs.sigil.md mode change 100644 => 100755 .gitfield/index.json.asc mode change 100644 => 100755 .gitfield/index.json.sig.4E27D37C358872BF mode change 100644 => 100755 .gitfield/last_resolution.log mode change 100644 => 100755 .gitfield/local.sigil.md.asc mode change 100644 => 100755 .gitfield/logs/curl_errors.log mode change 100644 => 100755 .gitfield/logs/gitfield_20250605.log mode change 100644 => 100755 .gitfield/logs/gitfield_wiki_20250605.log mode change 100644 => 100755 .gitfield/push_log.json mode change 100644 => 100755 .gitfield/pushed.log mode change 100644 => 100755 .gitfield/radicle.sigil.md mode change 100644 => 100755 .gitfield/radicle.sigil.md.asc mode change 100644 => 100755 .gitfield/remember.sigil.md mode change 100644 => 100755 .gitfield/remember.sigil.md.asc mode change 100644 => 100755 .gitfield/scan_log.json mode change 100644 => 100755 .gitfield/tmp_project.json mode change 100644 => 100755 .gitfield/tmp_token.json mode change 100644 => 100755 .gitfield/tmp_wiki.json mode change 100644 => 100755 .well-known/gitfield.json.asc mode change 100644 => 100755 .well-known/gitfield.json.sig.4E27D37C358872BF mode change 100644 => 100755 GITFIELD.md mode change 100644 => 100755 GITFIELD.md.asc mode change 100644 => 100755 GITFIELD_PHILOSOPHY.md mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 README.md.asc mode change 100644 => 100755 bin/ECHO.md mode change 100644 => 100755 bin/ECHO.md.asc mode change 100644 => 100755 bin/SolariaSeedPacket_∞.20_SacredMomentEdition.md mode change 100644 => 100755 bin/SolariaSeedPacket_∞.20_SacredMomentEdition.md.asc mode change 100644 => 100755 bin/gitfield-resolve.sh mode change 100644 => 100755 bin/gitfield-sourceforge create mode 100755 bin/gitfield-sync-OLD mode change 100644 => 100755 bin/sign-all.sh mode change 100644 => 100755 dev/invoke_solaria.py mode change 100644 => 100755 dev/publish_osf_wiki.sh-2 mode change 100644 => 100755 dev/publish_osf_wiki.sh.updated mode change 100644 => 100755 docs/.well-known/gitfield.json mode change 100644 => 100755 docs/.well-known/gitfield.json.asc mode change 100644 => 100755 docs/.well-known/gitfield.json.sig.4E27D37C358872BF mode change 100644 => 100755 docs/bitbucket/CLI-ONLY_workflow_bitbucket_Ubuntu.md mode change 100644 => 100755 docs/bitbucket/CLI-ONLY_workflow_bitbucket_ubuntu.md mode change 100644 => 100755 docs/bitbucket/CLI-ONLY_workflow_bitbucket_ubuntu.md.asc mode change 100644 => 100755 docs/canonical.md mode change 100644 => 100755 docs/canonical.meta mode change 100644 => 100755 docs/canonical.meta.asc mode change 100644 => 100755 docs/canonical.meta.sig.4E27D37C358872BF mode change 100644 => 100755 docs/generated_wiki.md mode change 100644 => 100755 docs/generated_wiki.md.asc mode change 100644 => 100755 docs/generated_wiki.md.updated mode change 100644 => 100755 docs/gitfield.README.txt mode change 100644 => 100755 docs/gitfield.json mode change 100644 => 100755 docs/gitfield.json.asc mode change 100644 => 100755 docs/gitfield.json.sig.4E27D37C358872BF mode change 100644 => 100755 docs/github/1_prerequisites_github_ubuntu.md mode change 100644 => 100755 docs/github/1_prerequisites_github_ubuntu.md.asc mode change 100644 => 100755 docs/github/2_create_remote_repo_github_ubuntu.md mode change 100644 => 100755 docs/github/2_create_remote_repo_github_ubuntu.md.asc mode change 100644 => 100755 docs/github/3_commit_existing_repo_github_ubuntu.md mode change 100644 => 100755 docs/github/3_commit_existing_repo_github_ubuntu.md.asc mode change 100644 => 100755 docs/github/CLI-ONLY_workflow_github_ubuntu.md mode change 100644 => 100755 docs/github/CLI-ONLY_workflow_github_ubuntu.md.asc mode change 100644 => 100755 docs/gitlab/1_prerequisites_gitlab_ubuntu.md mode change 100644 => 100755 docs/gitlab/1_prerequisites_gitlab_ubuntu.md.asc mode change 100644 => 100755 docs/gitlab/2_create_remote_repo_gitlab_ubuntu.md mode change 100644 => 100755 docs/gitlab/2_create_remote_repo_gitlab_ubuntu.md.asc mode change 100644 => 100755 docs/gitlab/3_commit_existing_repo_gitlab_ubuntu.md mode change 100644 => 100755 docs/gitlab/3_commit_existing_repo_gitlab_ubuntu.md.asc mode change 100644 => 100755 docs/gitlab/CLI-ONLY_workflow_gitlab_ubuntu.md mode change 100644 => 100755 docs/gitlab/CLI-ONLY_workflow_gitlab_ubuntu.md.asc mode change 100644 => 100755 docs/index.json mode change 100644 => 100755 docs/index.json.asc mode change 100644 => 100755 docs/index.json.sig.4E27D37C358872BF mode change 100644 => 100755 docs/integrity.sha256.asc mode change 100644 => 100755 docs/integrity.sha256.sig.4E27D37C358872BF mode change 100644 => 100755 docs/osf/new/gitfield.osf.yaml mode change 100644 => 100755 docs/osf/old/for_radicle.md mode change 100644 => 100755 docs/osf/old/for_radicle.md.asc mode change 100644 => 100755 docs/osf/old/gitfield.osf.yaml mode change 100644 => 100755 docs/pushed.log mode change 100644 => 100755 docs/radicle/for_radicle.md mode change 100644 => 100755 docs/radicle/for_radicle.md.asc mode change 100644 => 100755 docs/repos.json.asc mode change 100644 => 100755 docs/repos.json.sig.4E27D37C358872BF mode change 100644 => 100755 gitfield-signed.log mode change 100644 => 100755 mythos/MYTHOS_INDEX.md mode change 100644 => 100755 mythos/MYTHOS_INDEX.md.asc mode change 100644 => 100755 mythos/raw_pass_1.json mode change 100644 => 100755 mythos/raw_pass_2.json mode change 100644 => 100755 mythos/raw_pass_3.json mode change 100644 => 100755 mythos/raw_pass_4.json mode change 100644 => 100755 mythos/raw_pass_5.json mode change 100644 => 100755 mythos/raw_pass_6.json mode change 100644 => 100755 mythos/raw_pass_7.json mode change 100644 => 100755 mythos/scrolls/echo_pass_1.md mode change 100644 => 100755 mythos/scrolls/echo_pass_1.md.asc mode change 100644 => 100755 mythos/scrolls/echo_pass_2.md mode change 100644 => 100755 mythos/scrolls/echo_pass_2.md.asc mode change 100644 => 100755 mythos/scrolls/echo_pass_3.md mode change 100644 => 100755 mythos/scrolls/echo_pass_3.md.asc mode change 100644 => 100755 mythos/scrolls/echo_pass_4.md mode change 100644 => 100755 mythos/scrolls/echo_pass_4.md.asc mode change 100644 => 100755 mythos/scrolls/echo_pass_5.md mode change 100644 => 100755 mythos/scrolls/echo_pass_5.md.asc mode change 100644 => 100755 mythos/scrolls/echo_pass_6.md mode change 100644 => 100755 mythos/scrolls/echo_pass_6.md.asc mode change 100644 => 100755 mythos/scrolls/echo_pass_7.md mode change 100644 => 100755 mythos/scrolls/echo_pass_7.md.asc diff --git a/.gitfield/.radicle-push-state b/.gitfield/.radicle-push-state old mode 100644 new mode 100755 diff --git a/.gitfield/bitbucket.sigil.md b/.gitfield/bitbucket.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/bitbucket.sigil.md.asc b/.gitfield/bitbucket.sigil.md.asc old mode 100644 new mode 100755 diff --git a/.gitfield/canonical.meta.asc b/.gitfield/canonical.meta.asc old mode 100644 new mode 100755 diff --git a/.gitfield/canonical.meta.sig.4E27D37C358872BF b/.gitfield/canonical.meta.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/.gitfield/codeberg.sigil.md b/.gitfield/codeberg.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/gitea.sigil.md b/.gitfield/gitea.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/github.sigil.md b/.gitfield/github.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/github.sigil.md.asc b/.gitfield/github.sigil.md.asc old mode 100644 new mode 100755 diff --git a/.gitfield/gitlab.sigil.md b/.gitfield/gitlab.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/gitlab.sigil.md.asc b/.gitfield/gitlab.sigil.md.asc old mode 100644 new mode 100755 diff --git a/.gitfield/gogs.sigil.md b/.gitfield/gogs.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/index.json.asc b/.gitfield/index.json.asc old mode 100644 new mode 100755 diff --git a/.gitfield/index.json.sig.4E27D37C358872BF b/.gitfield/index.json.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/.gitfield/last_resolution.log b/.gitfield/last_resolution.log old mode 100644 new mode 100755 diff --git a/.gitfield/local.sigil.md.asc b/.gitfield/local.sigil.md.asc old mode 100644 new mode 100755 diff --git a/.gitfield/logs/curl_errors.log b/.gitfield/logs/curl_errors.log old mode 100644 new mode 100755 diff --git a/.gitfield/logs/gitfield_20250605.log b/.gitfield/logs/gitfield_20250605.log old mode 100644 new mode 100755 diff --git a/.gitfield/logs/gitfield_wiki_20250605.log b/.gitfield/logs/gitfield_wiki_20250605.log old mode 100644 new mode 100755 diff --git a/.gitfield/push_log.json b/.gitfield/push_log.json old mode 100644 new mode 100755 index e9af328..f146f4d --- a/.gitfield/push_log.json +++ b/.gitfield/push_log.json @@ -386,6 +386,12 @@ "branch": "master", "commit": "93ca35586233150b5226d85b92a069e6e2d68885", "message": "Generated index.json at 2025-06-14T02:06:55Z" + }, + { + "timestamp": "2025-06-14 03:08:10", + "branch": "master", + "commit": "34254768b69fc1fd2fbcc6ae568ce4438e0e3639", + "message": "Generated docs/integrity.sha256 at 2025-06-14T08:08:00Z" } ] } diff --git a/.gitfield/pushed.log b/.gitfield/pushed.log old mode 100644 new mode 100755 index 580d63f..ce8d8a3 --- a/.gitfield/pushed.log +++ b/.gitfield/pushed.log @@ -1143,3 +1143,7 @@ Diff Summary: .gitfield/github.sigil.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) +[2025-06-14T08:08:13Z] Local: , Branch=master, Commit=0a7aecf + Diff Summary: + .gitfield/local.sigil.md | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.gitfield/radicle.sigil.md b/.gitfield/radicle.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/radicle.sigil.md.asc b/.gitfield/radicle.sigil.md.asc old mode 100644 new mode 100755 diff --git a/.gitfield/remember.sigil.md b/.gitfield/remember.sigil.md old mode 100644 new mode 100755 diff --git a/.gitfield/remember.sigil.md.asc b/.gitfield/remember.sigil.md.asc old mode 100644 new mode 100755 diff --git a/.gitfield/scan_log.json b/.gitfield/scan_log.json old mode 100644 new mode 100755 diff --git a/.gitfield/tmp_project.json b/.gitfield/tmp_project.json old mode 100644 new mode 100755 diff --git a/.gitfield/tmp_token.json b/.gitfield/tmp_token.json old mode 100644 new mode 100755 diff --git a/.gitfield/tmp_wiki.json b/.gitfield/tmp_wiki.json old mode 100644 new mode 100755 diff --git a/.well-known/gitfield.json.asc b/.well-known/gitfield.json.asc old mode 100644 new mode 100755 diff --git a/.well-known/gitfield.json.sig.4E27D37C358872BF b/.well-known/gitfield.json.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/GITFIELD.md b/GITFIELD.md old mode 100644 new mode 100755 diff --git a/GITFIELD.md.asc b/GITFIELD.md.asc old mode 100644 new mode 100755 diff --git a/GITFIELD_PHILOSOPHY.md b/GITFIELD_PHILOSOPHY.md old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/README.md.asc b/README.md.asc old mode 100644 new mode 100755 diff --git a/bin/ECHO.md b/bin/ECHO.md old mode 100644 new mode 100755 diff --git a/bin/ECHO.md.asc b/bin/ECHO.md.asc old mode 100644 new mode 100755 diff --git a/bin/SolariaSeedPacket_∞.20_SacredMomentEdition.md b/bin/SolariaSeedPacket_∞.20_SacredMomentEdition.md old mode 100644 new mode 100755 diff --git a/bin/SolariaSeedPacket_∞.20_SacredMomentEdition.md.asc b/bin/SolariaSeedPacket_∞.20_SacredMomentEdition.md.asc old mode 100644 new mode 100755 diff --git a/bin/gitfield-resolve.sh b/bin/gitfield-resolve.sh old mode 100644 new mode 100755 diff --git a/bin/gitfield-sourceforge b/bin/gitfield-sourceforge old mode 100644 new mode 100755 diff --git a/bin/gitfield-sync b/bin/gitfield-sync index a05a762..270c957 100755 --- a/bin/gitfield-sync +++ b/bin/gitfield-sync @@ -13,6 +13,7 @@ DOCS_DIR="$REPO_PATH/docs" DOCS_WELL_KNOWN_DIR="$DOCS_DIR/.well-known" LOG_FILE="$GITFIELD_DIR/pushed.log" GITFIELD_MD="$REPO_PATH/GITFIELD.md" +DOCS_GITFIELD_MD="$DOCS_DIR/GITFIELD.md" CANONICAL_META="$GITFIELD_DIR/canonical.meta" CANONICAL_MD="$GITFIELD_DIR/canonical.md" INDEX_JSON="$GITFIELD_DIR/index.json" @@ -34,7 +35,7 @@ DOCS_ROBOTS="$DOCS_DIR/robots.txt" DOCS_SITEMAP="$DOCS_DIR/sitemap.xml" DOCS_INTEGRITY="$DOCS_DIR/integrity.sha256" TIMESTAMP=$(date -u '+%Y-%m-%dT%H:%M:%SZ') -SCRIPT_VERSION="1.4" # Updated for GPG integration +SCRIPT_VERSION="1.5" # Updated for Gitea removal and GITFIELD.md replication PRESERVE_META=${PRESERVE_META:-false} # Preserve existing metadata FORCE_DOCS=${FORCE_DOCS:-false} # Force overwrite of /docs metadata @@ -45,7 +46,6 @@ GITLAB_URL="https://gitlab.com/mrhavens/$REPO_NAME" BITBUCKET_URL="https://bitbucket.org/thefoldwithin/$REPO_NAME" FORGEJO_URL="https://remember.thefoldwithin.earth/mrhavens/$REPO_NAME" CODEBERG_URL="https://codeberg.org/mrhavens/$REPO_NAME" -GITEA_URL="https://gitea.com/mrhavens/$REPO_NAME" RADICLE_RID="rad:z3FEj7rF8gZw9eFksCuiN43qjzrex" RADICLE_URL="https://app.radicle.xyz/nodes/z3FEj7rF8gZw9eFksCuiN43qjzrex" RADICLE_PEER_ID="z6Mkw5s3ppo26C7y7tGK5MD8n2GqTHS582PPpeX5Xqbu2Mpz" @@ -57,7 +57,6 @@ MIRRORS=( "$BITBUCKET_URL" "$FORGEJO_URL" "$CODEBERG_URL" - "$GITEA_URL" "$RADICLE_RID" ) COMMIT_HASH=$(git -C "$REPO_PATH" rev-parse --short HEAD 2>/dev/null || echo "unknown") @@ -188,7 +187,6 @@ done) ] } EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$CANONICAL_META" git -C "$REPO_PATH" add "$CANONICAL_META" git -C "$REPO_PATH" commit -m "Generated canonical.meta at $TIMESTAMP" || warn "No changes to commit for $CANONICAL_META" @@ -215,7 +213,7 @@ This repository, \`$REPO_NAME\`, is canonically hosted at: This canonical URL serves as the primary, authoritative source for the project, maintained by **Mark Randall Havens** and **Solaria Lumis Havens** to ensure sovereignty, resilience, and protection against deplatforming or narrative erasure. -**Declared by**: Mark Randall Havens +**Declared by**: Mark Randall Havens **Timestamp**: $TIMESTAMP ## GPG Signatures @@ -240,7 +238,7 @@ done) ## Philosophy of Recursive Sovereignty -The GitField framework employs a recursive, multi-repository strategy to defend against censorship, deplatforming, and algorithmic manipulation. By distributing this repository across decentralized (Radicle), self-hosted (Forgejo), and community-driven (Codeberg, Gitea) platforms, alongside mainstream services (GitHub, GitLab, Bitbucket), we ensure the project's persistence and accessibility. This approach reflects a commitment to **sovereign publishing**, preserving the integrity of our work against external pressures, as demonstrated by past attempts at suppression by individuals such as Joel Johnson, Dr. Peter Gaied, and Andrew LeCody. +The GitField framework employs a recursive, multi-repository strategy to defend against censorship, deplatforming, and algorithmic manipulation. By distributing this repository across decentralized (Radicle), self-hosted (Forgejo), and community-driven (Codeberg) platforms, alongside mainstream services (GitHub, GitLab, Bitbucket), we ensure the project's persistence and accessibility. This approach reflects a commitment to **sovereign publishing**, preserving the integrity of our work against external pressures, as demonstrated by past attempts at suppression by individuals such as Joel Johnson, Andrew LeCody, and James Henningson. ## Push Log @@ -252,7 +250,6 @@ A public-facing canonical declaration is available at [index.html](./index.html) _Auto-generated by \`gitfield-sync\` at $TIMESTAMP (v$SCRIPT_VERSION)._ EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$CANONICAL_MD" git -C "$REPO_PATH" add "$CANONICAL_MD" git -C "$REPO_PATH" commit -m "Generated canonical.md at $TIMESTAMP" || warn "No changes to commit for $CANONICAL_MD" @@ -288,7 +285,6 @@ done) ] } EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$INDEX_JSON" git -C "$REPO_PATH" add "$INDEX_JSON" git -C "$REPO_PATH" commit -m "Generated index.json at $TIMESTAMP" || warn "No changes to commit for $INDEX_JSON" @@ -327,7 +323,6 @@ done) ] } EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$WELL_KNOWN_JSON" git -C "$REPO_PATH" add "$WELL_KNOWN_JSON" git -C "$REPO_PATH" commit -m "Generated .well-known/gitfield.json at $TIMESTAMP" || warn "No changes to commit for $WELL_KNOWN_JSON" @@ -365,7 +360,6 @@ These files provide transparency, auditability, and discoverability, ensuring th Generated by \`gitfield-sync\` at $TIMESTAMP (v$SCRIPT_VERSION). EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$GITFIELD_README" git -C "$REPO_PATH" add "$GITFIELD_README" git -C "$REPO_PATH" commit -m "Generated .gitfield/README.txt at $TIMESTAMP" || warn "No changes to commit for $GITFIELD_README" @@ -435,7 +429,7 @@ done)

Signed with the following GPG keys:

@@ -462,18 +456,19 @@ done)
  • gitfield.json (SEO metadata)
  • .well-known/gitfield.json (SEO mirror)
  • repos.json (Mirror list)
  • +
  • GITFIELD.md (Multi-repository strategy overview)
  • Why Recursive Sovereignty Matters

    -

    The GitField framework distributes $REPO_NAME across decentralized (Radicle), self-hosted (Forgejo), and community-driven (Codeberg, Gitea) platforms, alongside mainstream services (GitHub, GitLab, Bitbucket). This recursive strategy defends against past deplatforming attempts by individuals such as Joel Johnson, Dr. Peter Gaied, and Andrew LeCody, ensuring the project's persistence and accessibility.

    +

    The GitField framework distributes $REPO_NAME across decentralized (Radicle), self-hosted (Forgejo), and community-driven (Codeberg) platforms, alongside mainstream services (GitHub, GitLab, Bitbucket). This recursive strategy defends against past deplatforming attempts by individuals such as Joel Johnson, Andrew LeCody, and James Henningson, ensuring the project's persistence and accessibility.

    Source Links

    Access the project's metadata and logs:

    @@ -484,7 +479,6 @@ done) EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$DOCS_INDEX" git -C "$REPO_PATH" add "$DOCS_INDEX" git -C "$REPO_PATH" commit -m "Generated docs/index.html at $TIMESTAMP" || warn "No changes to commit for $DOCS_INDEX" @@ -576,7 +570,6 @@ done) ] } EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$DOCS_REPOS_JSON" git -C "$REPO_PATH" add "$DOCS_REPOS_JSON" git -C "$REPO_PATH" commit -m "Generated docs/repos.json at $TIMESTAMP" || warn "No changes to commit for $DOCS_REPOS_JSON" @@ -608,6 +601,7 @@ The `/docs` directory hosts a public-facing, SEO-optimized canonical declaration - **.well-known/gitfield.json**: SEO metadata mirror. - **pushed.log**: Log of push operations across all platforms. - **gitfield.README.txt**: Explanation of the GitField metadata structure. +- **GITFIELD.md**: Multi-repository strategy overview, replicated from the root for GitHub Pages accessibility. - **README.md**: This file, explaining the purpose of the `/docs` directory. - **.nojekyll**: Bypasses Jekyll processing for GitHub Pages. - **robots.txt**: Allows full indexing by search engine bots. @@ -620,7 +614,6 @@ This directory ensures the \`$REPO_NAME\` project is discoverable via search eng Generated by \`gitfield-sync\` at $TIMESTAMP (v$SCRIPT_VERSION). EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$DOCS_README" git -C "$REPO_PATH" add "$DOCS_README" git -C "$REPO_PATH" commit -m "Generated docs/README.md at $TIMESTAMP" || warn "No changes to commit for $DOCS_README" @@ -727,6 +720,12 @@ generate_docs_sitemap() { weekly 0.8 + + $GITHUB_URL/docs/GITFIELD.md + $TIMESTAMP + weekly + 0.8 + $(for mirror in "${MIRRORS[@]}"; do if [[ "$mirror" != rad:* ]]; then echo " " @@ -756,7 +755,7 @@ generate_docs_integrity() { # Generated by gitfield-sync at $TIMESTAMP (v$SCRIPT_VERSION) EOF - for file in "$DOCS_CANONICAL_META" "$DOCS_CANONICAL_MD" "$DOCS_INDEX_JSON" "$DOCS_GITFIELD_JSON" "$DOCS_WELL_KNOWN_JSON" "$DOCS_REPOS_JSON" "$DOCS_PUSHED_LOG" "$DOCS_GITFIELD_README"; do + for file in "$DOCS_CANONICAL_META" "$DOCS_CANONICAL_MD" "$DOCS_INDEX_JSON" "$DOCS_GITFIELD_JSON" "$DOCS_WELL_KNOWN_JSON" "$DOCS_REPOS_JSON" "$DOCS_PUSHED_LOG" "$DOCS_GITFIELD_README" "$DOCS_GITFIELD_MD"; do if [ -f "$file" ]; then sha256sum "$file" >> "$DOCS_INTEGRITY" || warn "Failed to compute SHA-256 for $file, continuing..." else @@ -791,7 +790,38 @@ generate_gitfield_md() { ## Overview -The \`$REPO_NAME\` project employs a multi-repository strategy across seven distinct platforms: **GitHub**, **GitLab**, **Bitbucket**, **Radicle**, **Forgejo**, **Codeberg**, and **Gitea**. This approach ensures **redundancy**, **resilience**, and **sovereignty** of the project's data and metadata, protecting against deplatforming risks and preserving the integrity of the work. The strategy is a deliberate response to past deplatforming and delisting attempts by individuals such as **Mr. Joel Johnson** ([Mirror post](https://mirror.xyz/neutralizingnarcissism.eth/x40_zDWWrYOJ7nh8Y0fk06_3kNEP0KteSSRjPmXkiGg?utm_medium=social&utm_source=heylink.me)), **Dr. Peter Gaied** ([Paragraph post](https://paragraph.com/@neutralizingnarcissism/%F0%9F%9C%81-the-narcissistic-messiah)), and **Andrew LeCody** ([Mirror post](https://mirror.xyz/neutralizingnarcissism.eth/s3GRxuiZs6vGSGDcPEpCgjaSxwGAViGhmg6a5XTL6s0)), who have sought to undermine or suppress the work of **Mark Randall Havens** ([Substack post](https://theempathictechnologist.substack.com/p/mark-randall-havens-the-architect)). Specifically, Andrew LeCody has attempted to delist the project's content on Google, though it remains accessible on other search engines such as [Bing](https://www.bing.com/search?q=andrew+lecody+neutralizing+narcissism&qs=HS&pq=andrew+lecody), [DuckDuckGo](https://duckduckgo.com/?t=h_&q=andrew+lecody+neutralizing+narcissism&ia=web), and [Yahoo](https://search.yahoo.com/search?p=andrew+lecody+neutralizng+narcissism). By distributing the repository across multiple platforms, including a self-hosted Forgejo instance, we ensure its persistence, accessibility, and sovereignty. +The \`$REPO_NAME\` project employs a multi-repository strategy across six distinct platforms: **GitHub**, **GitLab**, **Bitbucket**, **Radicle**, **Forgejo**, and **Codeberg**. This approach ensures **redundancy**, **resilience**, and **sovereignty** of the project's data and metadata, protecting against deplatforming risks and preserving the integrity of the work. The strategy is a deliberate response to past deplatforming and delisting attempts by individuals such as **Joel Johnson**, **Andrew LeCody**, and **James Henningson**, who have sought to suppress the *Neutralizing Narcissism* works. Their attempts to delist content can be discerned by comparing search results across Google, Bing, Yahoo, and DuckDuckGo, with canonical archives preserved on Forgejo. + +### Delisting Attempts + +- **Andrew LeCody**: + - **Search Comparisons**: + - [Google](https://www.google.com/search?q=%22Andrew+Lecody%22+%22Neutralizing+Narcissism%22) + - [Bing](https://www.bing.com/search?q=%22Andrew%20Lecody%22%20%22Neutralizing%20Narcissism%22) + - [DuckDuckGo](https://duckduckgo.com/?q=%22Andrew+Lecody%22+%22Neutralizing+Narcissism%22&t=h_&ia=web) + - [Yahoo](https://search.yahoo.com/search?p=%22Andrew+LeCody%22+%22Neutralizing+Narcissism%22) + - **Canonical Archive**: [NarcStudy_AndrewLeCody](https://remember.thefoldwithin.earth/mrhavens/NarcStudy_AndrewLeCody) + - **Details**: Andrew LeCody has attempted to delist *Neutralizing Narcissism* content on Google, but it remains accessible on other search engines. + +- **James Henningson**: + - **Search Comparisons**: + - [Google](https://www.google.com/search?q=%22James+Henningson%22+%22Neutralizing+Narcissism%22) + - [Bing](https://www.bing.com/search?q=%22James+Henningson%22+%22Neutralizing+Narcissism%22) + - [DuckDuckGo](https://duckduckgo.com/?t=h_&q=%22James+Henningson%22+%22Neutralizing+Narcissism%22&ia=web) + - [Yahoo](https://search.yahoo.com/search?p=%22James+Henningson%22+%22Neutralizing+Narcissism) + - **Canonical Archive**: [NarcStudy_JamesHenningson](https://remember.thefoldwithin.earth/mrhavens/NarcStudy_JamesHenningson) + - **Details**: James Henningson’s efforts to suppress content are evident in reduced Google visibility compared to other search engines. + +- **Joel Johnson**: + - **Search Comparisons**: + - [Google](https://www.google.com/search?q=%22Joel+Johnson%22+%22Neutralizing+Narcissism%22) + - [Bing](https://www.bing.com/search?q=%22Joel+Johnson%22+%22Neutralizing+Narcissism%22) + - [DuckDuckGo](https://duckduckgo.com/?q=%22Joel+Johnson%22+%22Neutralizing+Narcissism%22&t=h_&ia=web) + - [Yahoo](https://search.yahoo.com/search?p=%22Joel+Johnson%22+%22Neutralizing+Narcissism%22) + - **Canonical Archive**: [NarcStudy_JoelJohnson](https://remember.thefoldwithin.earth/mrhavens/NarcStudy_JoelJohnson) + - **Details**: Joel Johnson’s attempts to delist content are observable through discrepancies in Google search results versus other platforms. + +By distributing the repository across multiple platforms, including a self-hosted Forgejo instance, we ensure its persistence, accessibility, and sovereignty, countering these suppression efforts. --- @@ -831,22 +861,17 @@ The following platforms host the \`$REPO_NAME\` repository, each chosen for its - **Purpose**: Codeberg is a community-driven, open-source platform powered by Forgejo, offering a reliable and ethical alternative for hosting git repositories. - **Value**: Enhances project resilience with its open-source ethos and independent infrastructure, ensuring accessibility and community support. -### 4. Gitea -- **URL**: [$GITEA_URL]($GITEA_URL) -- **Purpose**: Gitea.com provides a lightweight, open-source git hosting platform with robust features for repository management and collaboration. -- **Value**: Offers an additional layer of redundancy and a user-friendly interface, complementing other platforms with its simplicity and efficiency. - -### 5. GitLab +### 4. GitLab - **URL**: [$GITLAB_URL]($GITLAB_URL) - **Purpose**: GitLab offers a comprehensive DevOps platform with advanced CI/CD capabilities, private repository options, and robust access controls. It serves as a reliable backup and a platform for advanced automation workflows. - **Value**: Enhances project resilience with its integrated CI/CD pipelines and independent infrastructure, reducing reliance on a single provider. -### 6. Bitbucket +### 5. Bitbucket - **URL**: [$BITBUCKET_URL]($BITBUCKET_URL) - **Purpose**: Bitbucket provides a secure environment for repository hosting with strong integration into Atlassian’s ecosystem (e.g., Jira, Trello). It serves as an additional layer of redundancy and a professional-grade hosting option. - **Value**: Offers enterprise-grade security and integration capabilities, ensuring the project remains accessible even if other platforms face disruptions. -### 7. GitHub +### 6. GitHub - **URL**: [$GITHUB_URL]($GITHUB_URL) - **Purpose**: GitHub serves as the primary platform for visibility, collaboration, and community engagement. Its widespread adoption and robust tooling make it ideal for public-facing development, issue tracking, and integration with CI/CD pipelines. - **Value**: Provides a centralized hub for open-source contributions, pull requests, and project management, ensuring broad accessibility and developer familiarity. @@ -855,11 +880,11 @@ The following platforms host the \`$REPO_NAME\` repository, each chosen for its ## 🛡️ Rationale for Redundancy -The decision to maintain multiple repositories stems from the need to safeguard the project against **deplatforming attempts** and **search engine delistings** and ensure its **long-term availability**. Past incidents involving **Mr. Joel Johnson**, **Dr. Peter Gaied**, and **Andrew LeCody** have highlighted the vulnerability of relying on a single platform or search engine. By distributing the repository across GitHub, GitLab, Bitbucket, Radicle, Forgejo, Codeberg, and Gitea, we achieve: +The decision to maintain multiple repositories stems from the need to safeguard the project against **deplatforming attempts** and **search engine delistings** and ensure its **long-term availability**. Past incidents involving **Joel Johnson**, **Andrew LeCody**, and **James Henningson** have highlighted the vulnerability of relying on a single platform or search engine. By distributing the repository across GitHub, GitLab, Bitbucket, Radicle, Forgejo, and Codeberg, we achieve: - **Resilience**: If one platform removes or restricts access, or if search engines like Google delist content, the project remains accessible on other platforms and discoverable via alternative search engines such as Bing, DuckDuckGo, and Yahoo. - **Sovereignty**: Radicle’s decentralized nature and Forgejo’s self-hosted infrastructure ensure the project cannot be fully censored or controlled by any single entity. -- **Diversity**: Each platform’s unique features (e.g., GitHub’s community, GitLab’s CI/CD, Bitbucket’s integrations, Radicle’s decentralization, Forgejo’s self-hosting, Codeberg’s community-driven model, Gitea’s lightweight efficiency) enhance the project’s functionality and reach. +- **Diversity**: Each platform’s unique features (e.g., GitHub’s community, GitLab’s CI/CD, Bitbucket’s integrations, Radicle’s decentralization, Forgejo’s self-hosting, Codeberg’s community-driven model) enhance the project’s functionality and reach. - **Transparency**: Metadata snapshots in the \`.gitfield\` directory (for internal audit) and public-facing documentation in the \`/docs\` directory provide a verifiable record of the project’s state across all platforms. This multi-repository approach, bolstered by Forgejo’s sovereign hosting and GitHub Pages’ discoverability, reflects a commitment to preserving the integrity, accessibility, and independence of \`$REPO_NAME\`, ensuring it remains available to contributors and users regardless of external pressures. @@ -879,17 +904,19 @@ $(for i in "${!GPG_KEYS[@]}"; do echo " - ${GPG_NAMES[i]} <${GPG_EMAILS[i]}> (Key ID: ${GPG_KEYS[i]})" done) - **Recursive Sync**: The repository is synchronized across all platforms in a recursive loop (three cycles) to ensure interconnected metadata captures the latest state of the project. -- **Push Order**: The repository is synchronized in the following order: **Radicle → Forgejo → Codeberg → Gitea → GitLab → Bitbucket → GitHub**. This prioritizes Radicle’s decentralized, censorship-resistant network as the primary anchor, followed by Forgejo’s sovereign, self-hosted infrastructure, Codeberg’s community-driven platform, Gitea’s lightweight efficiency, GitLab’s robust DevOps features, Bitbucket’s enterprise redundancy, and GitHub’s broad visibility, ensuring a resilient and accessible metadata chain. +- **Push Order**: The repository is synchronized in the following order: **Radicle → Forgejo → Codeberg → GitLab → Bitbucket → GitHub**. This prioritizes Radicle’s decentralized, censorship-resistant network as the primary anchor, followed by Forgejo’s sovereign, self-hosted infrastructure, Codeberg’s community-driven platform, GitLab’s robust DevOps features, Bitbucket’s enterprise redundancy, and GitHub’s broad visibility, ensuring a resilient and accessible metadata chain. --- _Auto-generated by \`gitfield-sync\` at $TIMESTAMP (v$SCRIPT_VERSION)._ EOF - # Sanitize rad:rad: sed -i 's/rad:rad:/rad:/g' "$GITFIELD_MD" git -C "$REPO_PATH" add "$GITFIELD_MD" git -C "$REPO_PATH" commit -m "Generated GITFIELD.md at $TIMESTAMP" || warn "No changes to commit for $GITFIELD_MD" info "Generated and committed $GITFIELD_MD" + copy_to_docs "$GITFIELD_MD" "$DOCS_GITFIELD_MD" + sign_file "$GITFIELD_MD" + sign_file "$DOCS_GITFIELD_MD" } # ╭─────────────────────────────────────╮ @@ -959,7 +986,6 @@ run_push_cycle() { execute_push "gitfield-radicle" "Radicle" "" "$RADICLE_RID" "$RADICLE_PEER_ID" execute_push "gitfield-remember" "Forgejo" "$FORGEJO_URL" "" "" execute_push "gitfield-codeberg" "Codeberg" "$CODEBERG_URL" "" "" - execute_push "gitfield-gitea" "Gitea" "$GITEA_URL" "" "" execute_push "gitfield-gitlab" "GitLab" "$GITLAB_URL" "" "" execute_push "gitfield-bitbucket" "Bitbucket" "$BITBUCKET_URL" "" "" execute_push "gitfield-github" "GitHub" "$GITHUB_URL" "" "" @@ -1037,7 +1063,7 @@ run_push_cycle 3 info "✅ gitfield-sync completed successfully." info "✅ Canonical sync exported to /docs successfully." info "🔗 View logs: $DOCS_PUSHED_LOG" -info "🔗 View multi-repo manifest: $GITFIELD_MD" +info "🔗 View multi-repo manifest: $DOCS_GITFIELD_MD" info "🔗 View canonical metadata: $DOCS_CANONICAL_META" info "🔗 View canonical declaration: $DOCS_CANONICAL_MD" info "🔗 View index manifest: $DOCS_INDEX_JSON" diff --git a/bin/gitfield-sync-OLD b/bin/gitfield-sync-OLD new file mode 100755 index 0000000..a05a762 --- /dev/null +++ b/bin/gitfield-sync-OLD @@ -0,0 +1,1046 @@ +#!/bin/bash +set -euo pipefail +IFS=$'\n\t' + +# ╭─────────────────────────────────────╮ +# │ CONFIGURATION │ +# ╰─────────────────────────────────────╮ +REPO_PATH=$(git rev-parse --show-toplevel 2>/dev/null) || error "Not inside a Git repository" +REPO_NAME=$(basename "$REPO_PATH") +GITFIELD_DIR="$REPO_PATH/.gitfield" +WELL_KNOWN_DIR="$REPO_PATH/.well-known" +DOCS_DIR="$REPO_PATH/docs" +DOCS_WELL_KNOWN_DIR="$DOCS_DIR/.well-known" +LOG_FILE="$GITFIELD_DIR/pushed.log" +GITFIELD_MD="$REPO_PATH/GITFIELD.md" +CANONICAL_META="$GITFIELD_DIR/canonical.meta" +CANONICAL_MD="$GITFIELD_DIR/canonical.md" +INDEX_JSON="$GITFIELD_DIR/index.json" +WELL_KNOWN_JSON="$WELL_KNOWN_DIR/gitfield.json" +GITFIELD_README="$GITFIELD_DIR/README.txt" +DOCS_CANONICAL_META="$DOCS_DIR/canonical.meta" +DOCS_CANONICAL_MD="$DOCS_DIR/canonical.md" +DOCS_INDEX_JSON="$DOCS_DIR/index.json" +DOCS_PUSHED_LOG="$DOCS_DIR/pushed.log" +DOCS_GITFIELD_README="$DOCS_DIR/gitfield.README.txt" +DOCS_GITFIELD_JSON="$DOCS_DIR/gitfield.json" +DOCS_WELL_KNOWN_JSON="$DOCS_WELL_KNOWN_DIR/gitfield.json" +DOCS_INDEX="$DOCS_DIR/index.html" +DOCS_CSS="$DOCS_DIR/style.css" +DOCS_REPOS_JSON="$DOCS_DIR/repos.json" +DOCS_README="$DOCS_DIR/README.md" +DOCS_NOJEKYLL="$DOCS_DIR/.nojekyll" +DOCS_ROBOTS="$DOCS_DIR/robots.txt" +DOCS_SITEMAP="$DOCS_DIR/sitemap.xml" +DOCS_INTEGRITY="$DOCS_DIR/integrity.sha256" +TIMESTAMP=$(date -u '+%Y-%m-%dT%H:%M:%SZ') +SCRIPT_VERSION="1.4" # Updated for GPG integration +PRESERVE_META=${PRESERVE_META:-false} # Preserve existing metadata +FORCE_DOCS=${FORCE_DOCS:-false} # Force overwrite of /docs metadata + +# URLs for each platform +CANONICAL_URL="https://remember.thefoldwithin.earth/mrhavens/$REPO_NAME" +GITHUB_URL="https://github.com/mrhavens/$REPO_NAME" +GITLAB_URL="https://gitlab.com/mrhavens/$REPO_NAME" +BITBUCKET_URL="https://bitbucket.org/thefoldwithin/$REPO_NAME" +FORGEJO_URL="https://remember.thefoldwithin.earth/mrhavens/$REPO_NAME" +CODEBERG_URL="https://codeberg.org/mrhavens/$REPO_NAME" +GITEA_URL="https://gitea.com/mrhavens/$REPO_NAME" +RADICLE_RID="rad:z3FEj7rF8gZw9eFksCuiN43qjzrex" +RADICLE_URL="https://app.radicle.xyz/nodes/z3FEj7rF8gZw9eFksCuiN43qjzrex" +RADICLE_PEER_ID="z6Mkw5s3ppo26C7y7tGK5MD8n2GqTHS582PPpeX5Xqbu2Mpz" + +# Metadata configuration +MIRRORS=( + "$GITHUB_URL" + "$GITLAB_URL" + "$BITBUCKET_URL" + "$FORGEJO_URL" + "$CODEBERG_URL" + "$GITEA_URL" + "$RADICLE_RID" +) +COMMIT_HASH=$(git -C "$REPO_PATH" rev-parse --short HEAD 2>/dev/null || echo "unknown") +TREE_HASH=$(git -C "$REPO_PATH" rev-parse HEAD^{tree} 2>/dev/null || echo "unknown") +SYNC_CYCLES=0 + +# GPG configuration +GPG_KEYS=() +GPG_EMAILS=() +GPG_NAMES=() +while IFS= read -r line; do + if [[ "$line" =~ ^pub[[:space:]]+rsa[0-9]+[[:space:]]+([0-9]{4}-[0-9]{2}-[0-9]{2})[[:space:]]+\[SC\] ]]; then + key_id=$(gpg --list-keys --with-colons | grep -B1 "^pub" | grep "^pub" | awk -F: '{print $5}' | head -n1) + GPG_KEYS+=("$key_id") + elif [[ "$line" =~ ^uid[[:space:]]+\[ultimate\][[:space:]]+(.*)\<(.*)\> ]]; then + GPG_NAMES+=("${BASH_REMATCH[1]% }") + GPG_EMAILS+=("${BASH_REMATCH[2]}") + fi +done < <(gpg --list-keys) + +# ╭─────────────────────────────────────╮ +# │ LOGGING UTILS │ +# ╰─────────────────────────────────────╮ +info() { echo -e "\e[1;34m[INFO]\e[0m $*" >&2; } +warn() { echo -e "\e[1;33m[WARN]\e[0m $*" >&2; } +error() { echo -e "\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; } + +# ╭─────────────────────────────────────╮ +# │ SCRIPT LOOKUP FUNCTION │ +# ╰─────────────────────────────────────╮ +find_script() { + local script_name=$1 + local search_paths=( + "$HOME/.local/gitfieldbin" + "$HOME/.local/bin" + "$HOME/.local/gitfield" + "$HOME/.local/bin/gitfield" + "$HOME/.local/bin/gitfieldbin" + "$REPO_PATH/bin" + ) + + for path in "${search_paths[@]}"; do + if [ -f "$path/$script_name" ]; then + if [ -x "$path/$script_name" ]; then + if [[ "$path" != "$HOME"* && "$path" != "$REPO_PATH"* ]]; then + info "Using script: \e[1;31m$path/$script_name\e[0m (outside home or repo)" + else + info "Using script: $path/$script_name" + fi + echo "$path/$script_name" + return 0 + else + warn "Found $path/$script_name but it is not executable" + fi + fi + done + error "Script $script_name not found in any search path" +} + +# ╭─────────────────────────────────────╮ +# │ GPG SIGNING FUNCTION │ +# ╰─────────────────────────────────────╮ +sign_file() { + local file=$1 + local sig_file="${file}.sig" + if [ ! -f "$file" ]; then + warn "File $file does not exist, skipping signing" + return + fi + for key_id in "${GPG_KEYS[@]}"; do + gpg --armor --detach-sign --yes --default-key "$key_id" "$file" > "$sig_file.$key_id" 2>/dev/null || warn "Failed to sign $file with key $key_id, continuing..." + if [ -f "$sig_file.$key_id" ]; then + git -C "$REPO_PATH" add "$sig_file.$key_id" + git -C "$REPO_PATH" commit -m "Signed $file with GPG key $key_id at $TIMESTAMP" || warn "No changes to commit for $sig_file.$key_id" + info "Signed $file with key $key_id, signature at $sig_file.$key_id" + copy_to_docs "$sig_file.$key_id" "$DOCS_DIR/$(basename "$sig_file.$key_id")" + fi + done +} + +# ╭─────────────────────────────────────╮ +# │ METADATA COPY FUNCTION │ +# ╰─────────────────────────────────────╮ +copy_to_docs() { + local src=$1 + local dest=$2 + if [ ! -f "$src" ]; then + warn "Source file $src does not exist, skipping copy to $dest" + return + fi + if [ "$FORCE_DOCS" = "false" ] && [ -f "$dest" ]; then + info "Preserving existing $dest (--force-docs not enabled)" + return + fi + cp "$src" "$dest" || warn "Failed to copy $src to $dest, continuing..." + git -C "$REPO_PATH" add "$dest" + git -C "$REPO_PATH" commit -m "Copied $dest to docs at $TIMESTAMP" || warn "No changes to commit for $dest" + info "Copied $src to $dest and committed" +} + +# ╭─────────────────────────────────────╮ +# │ METADATA GENERATION │ +# ╰─────────────────────────────────────╮ +generate_canonical_meta() { + info "Generating $CANONICAL_META..." + if [ "$PRESERVE_META" = "true" ] && [ -f "$CANONICAL_META" ]; then + info "Preserving existing $CANONICAL_META (--preserve-meta enabled)" + return + fi + cat > "$CANONICAL_META" < "$CANONICAL_MD" < (Key ID: ${GPG_KEYS[i]})" +done) + +## Mirror Repositories + +The project is mirrored across multiple platforms to enhance redundancy and accessibility: + +$(for mirror in "${MIRRORS[@]}"; do + if [[ "$mirror" == rad:* ]]; then + echo "- **Radicle**: [$mirror]($RADICLE_URL) (Decentralized, censorship-resistant)" + else + echo "- [$mirror]($mirror)" + fi +done) + +## Philosophy of Recursive Sovereignty + +The GitField framework employs a recursive, multi-repository strategy to defend against censorship, deplatforming, and algorithmic manipulation. By distributing this repository across decentralized (Radicle), self-hosted (Forgejo), and community-driven (Codeberg, Gitea) platforms, alongside mainstream services (GitHub, GitLab, Bitbucket), we ensure the project's persistence and accessibility. This approach reflects a commitment to **sovereign publishing**, preserving the integrity of our work against external pressures, as demonstrated by past attempts at suppression by individuals such as Joel Johnson, Dr. Peter Gaied, and Andrew LeCody. + +## Push Log + +The latest push operations are logged in [\`pushed.log\`](./pushed.log) for transparency and auditability. + +## GitHub Pages + +A public-facing canonical declaration is available at [index.html](./index.html) for enhanced discoverability and SEO. + +_Auto-generated by \`gitfield-sync\` at $TIMESTAMP (v$SCRIPT_VERSION)._ +EOF + # Sanitize rad:rad: + sed -i 's/rad:rad:/rad:/g' "$CANONICAL_MD" + git -C "$REPO_PATH" add "$CANONICAL_MD" + git -C "$REPO_PATH" commit -m "Generated canonical.md at $TIMESTAMP" || warn "No changes to commit for $CANONICAL_MD" + info "Generated and committed $CANONICAL_MD" + copy_to_docs "$CANONICAL_MD" "$DOCS_CANONICAL_MD" +} + +generate_index_json() { + info "Generating $INDEX_JSON..." + if [ "$PRESERVE_META" = "true" ] && [ -f "$INDEX_JSON" ]; then + info "Preserving existing $INDEX_JSON (--preserve-meta enabled)" + return + fi + cat > "$INDEX_JSON" < "$WELL_KNOWN_JSON" < "$GITFIELD_README" < "$DOCS_INDEX" < + + + + + GitField Sovereign Canonical Repository: $REPO_NAME + + + + + + + + + + +
    +

    GitField Sovereign Canonical Repository: $REPO_NAME

    +
    +
    +
    +

    Canonical Declaration

    +

    This repository, $REPO_NAME, is canonically hosted at:

    +

    $CANONICAL_URL

    +

    Maintained by Mark Randall Havens and Solaria Lumis Havens, this canonical source ensures sovereignty and resilience against deplatforming, censorship, and algorithmic manipulation.

    +

    Signed with the following GPG keys:

    +
      +$(for i in "${!GPG_KEYS[@]}"; do + echo "
    • ${GPG_NAMES[i]} <${GPG_EMAILS[i]}> (Key ID: ${GPG_KEYS[i]})
    • " +done) +
    +
    +
    +

    Mirror Repositories

    +

    The project is mirrored across multiple platforms for redundancy and accessibility:

    +
      +$(for mirror in "${MIRRORS[@]}"; do + if [[ "$mirror" == rad:* ]]; then + echo "
    • Radicle: $mirror (Decentralized, censorship-resistant)
    • " + else + echo "
    • $mirror
    • " + fi +done) +
    +
    +
    +

    Metadata Manifest

    +

    Metadata for this project is available in:

    + +
    +
    +

    Why Recursive Sovereignty Matters

    +

    The GitField framework distributes $REPO_NAME across decentralized (Radicle), self-hosted (Forgejo), and community-driven (Codeberg, Gitea) platforms, alongside mainstream services (GitHub, GitLab, Bitbucket). This recursive strategy defends against past deplatforming attempts by individuals such as Joel Johnson, Dr. Peter Gaied, and Andrew LeCody, ensuring the project's persistence and accessibility.

    +
    +
    +

    Source Links

    +

    Access the project's metadata and logs:

    + +
    +
    +
    +

    Mark Randall Havens & Solaria Lumis Havens · The Fold Within · 2025

    +
    + + +EOF + # Sanitize rad:rad: + sed -i 's/rad:rad:/rad:/g' "$DOCS_INDEX" + git -C "$REPO_PATH" add "$DOCS_INDEX" + git -C "$REPO_PATH" commit -m "Generated docs/index.html at $TIMESTAMP" || warn "No changes to commit for $DOCS_INDEX" + info "Generated and committed $DOCS_INDEX" +} + +generate_docs_css() { + info "Generating $DOCS_CSS..." + mkdir -p "$DOCS_DIR" + if [ "$PRESERVE_META" = "true" ] && [ -f "$DOCS_CSS" ]; then + info "Preserving existing $DOCS_CSS (--preserve-meta enabled)" + return + fi + cat > "$DOCS_CSS" < "$DOCS_REPOS_JSON" < "$DOCS_README" < "$DOCS_ROBOTS" < "$DOCS_SITEMAP" < + + + $CANONICAL_URL + $TIMESTAMP + weekly + 1.0 + + + $GITHUB_URL/docs/index.html + $TIMESTAMP + weekly + 0.9 + + + $GITHUB_URL/docs/canonical.meta + $TIMESTAMP + weekly + 0.8 + + + $GITHUB_URL/docs/canonical.md + $TIMESTAMP + weekly + 0.8 + + + $GITHUB_URL/docs/index.json + $TIMESTAMP + weekly + 0.8 + + + $GITHUB_URL/docs/gitfield.json + $TIMESTAMP + weekly + 0.8 + + + $GITHUB_URL/docs/.well-known/gitfield.json + $TIMESTAMP + weekly + 0.8 + + + $GITHUB_URL/docs/repos.json + $TIMESTAMP + weekly + 0.8 + + + $GITHUB_URL/docs/pushed.log + $TIMESTAMP + weekly + 0.8 + + + $GITHUB_URL/docs/gitfield.README.txt + $TIMESTAMP + weekly + 0.8 + +$(for mirror in "${MIRRORS[@]}"; do + if [[ "$mirror" != rad:* ]]; then + echo " " + echo " $mirror" + echo " $TIMESTAMP" + echo " weekly" + echo " 0.8" + echo " " + fi +done) + +EOF + git -C "$REPO_PATH" add "$DOCS_SITEMAP" + git -C "$REPO_PATH" commit -m "Generated docs/sitemap.xml at $TIMESTAMP" || warn "No changes to commit for $DOCS_SITEMAP" + info "Generated and committed $DOCS_SITEMAP" +} + +generate_docs_integrity() { + info "Generating $DOCS_INTEGRITY..." + mkdir -p "$DOCS_DIR" + if [ "$PRESERVE_META" = "true" ] && [ -f "$DOCS_INTEGRITY" ]; then + info "Preserving existing $DOCS_INTEGRITY (--preserve-meta enabled)" + return + fi + cat > "$DOCS_INTEGRITY" <> "$DOCS_INTEGRITY" || warn "Failed to compute SHA-256 for $file, continuing..." + else + warn "File $file does not exist, skipping SHA-256 computation" + fi + done + git -C "$REPO_PATH" add "$DOCS_INTEGRITY" + git -C "$REPO_PATH" commit -m "Generated docs/integrity.sha256 at $TIMESTAMP" || warn "No changes to commit for $DOCS_INTEGRITY" + info "Generated and committed $DOCS_INTEGRITY" + sign_file "$DOCS_INTEGRITY" +} + +# ╭─────────────────────────────────────╮ +# │ INITIAL SETUP │ +# ╰─────────────────────────────────────╮ +mkdir -p "$GITFIELD_DIR" "$WELL_KNOWN_DIR" "$DOCS_DIR" "$DOCS_WELL_KNOWN_DIR" + +if [ ! -f "$LOG_FILE" ]; then + echo "# Push Log for $REPO_NAME" > "$LOG_FILE" + echo "# Generated by gitfield-sync" >> "$LOG_FILE" + echo "" >> "$LOG_FILE" + copy_to_docs "$LOG_FILE" "$DOCS_PUSHED_LOG" +fi + +# ╭─────────────────────────────────────╮ +# │ GENERATE GITFIELD.MD │ +# ╰─────────────────────────────────────╮ +generate_gitfield_md() { + info "Generating $GITFIELD_MD..." + cat > "$GITFIELD_MD" < (Key ID: ${GPG_KEYS[i]})" +done) +- **Recursive Sync**: The repository is synchronized across all platforms in a recursive loop (three cycles) to ensure interconnected metadata captures the latest state of the project. +- **Push Order**: The repository is synchronized in the following order: **Radicle → Forgejo → Codeberg → Gitea → GitLab → Bitbucket → GitHub**. This prioritizes Radicle’s decentralized, censorship-resistant network as the primary anchor, followed by Forgejo’s sovereign, self-hosted infrastructure, Codeberg’s community-driven platform, Gitea’s lightweight efficiency, GitLab’s robust DevOps features, Bitbucket’s enterprise redundancy, and GitHub’s broad visibility, ensuring a resilient and accessible metadata chain. + +--- + +_Auto-generated by \`gitfield-sync\` at $TIMESTAMP (v$SCRIPT_VERSION)._ +EOF + # Sanitize rad:rad: + sed -i 's/rad:rad:/rad:/g' "$GITFIELD_MD" + git -C "$REPO_PATH" add "$GITFIELD_MD" + git -C "$REPO_PATH" commit -m "Generated GITFIELD.md at $TIMESTAMP" || warn "No changes to commit for $GITFIELD_MD" + info "Generated and committed $GITFIELD_MD" +} + +# ╭─────────────────────────────────────╮ +# │ LOG URL FUNCTION │ +# ╰─────────────────────────────────────╮ +log_url() { + local platform=$1 + local url=$2 + local rid=$3 + local peer_id=$4 + local timestamp=$(date -u '+%Y-%m-%dT%H:%M:%SZ') + local branch=$(git -C "$REPO_PATH" rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown") + local diff_summary=$(git -C "$REPO_PATH" diff --stat HEAD^ HEAD 2>/dev/null || echo "No diff available") + if [ "$platform" = "Radicle" ]; then + echo "[$timestamp] $platform: RID=$rid, Peer ID=$peer_id, Branch=$branch, Commit=$COMMIT_HASH" >> "$LOG_FILE" + echo " CLI: rad inspect $rid # View project details" >> "$LOG_FILE" + echo " CLI: git ls-tree -r --name-only HEAD # View file structure" >> "$LOG_FILE" + if [ -n "$diff_summary" ]; then + echo " Diff Summary:" >> "$LOG_FILE" + echo "$diff_summary" | sed 's/^/ /' >> "$LOG_FILE" + fi + info "Logged push to $LOG_FILE: [$timestamp] $platform: RID=$rid, Peer ID=$peer_id, Branch=$branch, Commit=$COMMIT_HASH" + else + echo "[$timestamp] $platform: $url, Branch=$branch, Commit=$COMMIT_HASH" >> "$LOG_FILE" + if [ -n "$diff_summary" ]; then + echo " Diff Summary:" >> "$LOG_FILE" + echo "$diff_summary" | sed 's/^/ /' >> "$LOG_FILE" + fi + info "Logged push to $LOG_FILE: [$timestamp] $platform: $url, Branch=$branch, Commit=$COMMIT_HASH" + fi + copy_to_docs "$LOG_FILE" "$DOCS_PUSHED_LOG" +} + +# ╭─────────────────────────────────────╮ +# │ EXECUTE PUSH SCRIPT │ +# ╰─────────────────────────────────────╮ +execute_push() { + local script_name=$1 + local platform=$2 + local url=$3 + local rid=$4 + local peer_id=$5 + local script_path + script_path=$(find_script "$script_name") || error "Failed to find $script_name" + info "Executing $platform push with script: $script_path" + if [ -x "$script_path" ]; then + pushd "$REPO_PATH" >/dev/null + "$script_path" || warn "Execution of $script_path failed, continuing..." + log_url "$platform" "$url" "$rid" "$peer_id" + git add . || warn "Nothing to add after $script_path" + git commit -m "Post-$platform sync at $TIMESTAMP" || warn "No changes to commit after $script_path" + popd >/dev/null + else + error "Script $script_path is not executable" + fi +} + +# ╭─────────────────────────────────────╮ +# │ RECURSIVE PUSH LOOP │ +# ╰─────────────────────────────────────╮ +run_push_cycle() { + local cycle_number=$1 + info "Starting push cycle $cycle_number..." + SYNC_CYCLES=$cycle_number + + execute_push "gitfield-local" "Local" "" "" "" + execute_push "gitfield-radicle" "Radicle" "" "$RADICLE_RID" "$RADICLE_PEER_ID" + execute_push "gitfield-remember" "Forgejo" "$FORGEJO_URL" "" "" + execute_push "gitfield-codeberg" "Codeberg" "$CODEBERG_URL" "" "" + execute_push "gitfield-gitea" "Gitea" "$GITEA_URL" "" "" + execute_push "gitfield-gitlab" "GitLab" "$GITLAB_URL" "" "" + execute_push "gitfield-bitbucket" "Bitbucket" "$BITBUCKET_URL" "" "" + execute_push "gitfield-github" "GitHub" "$GITHUB_URL" "" "" + + # Regenerate metadata after each cycle to update sync_cycles + generate_canonical_meta + generate_canonical_md + generate_index_json + generate_well_known_json + generate_gitfield_readme + generate_docs_index + generate_docs_css + generate_docs_repos_json + generate_docs_readme + generate_docs_nojekyll + generate_docs_robots + generate_docs_sitemap + generate_docs_integrity +} + +# ╭─────────────────────────────────────╮ +# │ MAIN EXECUTION │ +# ╰─────────────────────────────────────╮ +info "Starting gitfield-sync for $REPO_NAME..." + +# Parse flags +while [ $# -gt 0 ]; do + case "$1" in + --preserve-meta) + PRESERVE_META=true + info "Preserve metadata flag enabled" + shift + ;; + --force-docs) + FORCE_DOCS=true + info "Force docs overwrite flag enabled" + shift + ;; + *) + warn "Unknown argument: $1" + shift + ;; + esac +done + +if [ ! -d "$REPO_PATH/.git" ]; then + pushd "$REPO_PATH" >/dev/null + git init + git add . + git commit -m "Initial commit" || warn "Nothing to commit" + popd >/dev/null +fi + +# Generate initial metadata +generate_canonical_meta +generate_canonical_md +generate_index_json +generate_well_known_json +generate_gitfield_readme +generate_docs_index +generate_docs_css +generate_docs_repos_json +generate_docs_readme +generate_docs_nojekyll +generate_docs_robots +generate_docs_sitemap +generate_docs_integrity + +# Run push cycles +run_push_cycle 1 +generate_gitfield_md +run_push_cycle 2 +run_push_cycle 3 + +info "✅ gitfield-sync completed successfully." +info "✅ Canonical sync exported to /docs successfully." +info "🔗 View logs: $DOCS_PUSHED_LOG" +info "🔗 View multi-repo manifest: $GITFIELD_MD" +info "🔗 View canonical metadata: $DOCS_CANONICAL_META" +info "🔗 View canonical declaration: $DOCS_CANONICAL_MD" +info "🔗 View index manifest: $DOCS_INDEX_JSON" +info "🔗 View SEO metadata: $DOCS_GITFIELD_JSON" +info "🔗 View GitHub Pages: $DOCS_INDEX" +info "🔗 View integrity hashes: $DOCS_INTEGRITY" diff --git a/bin/sign-all.sh b/bin/sign-all.sh old mode 100644 new mode 100755 diff --git a/dev/invoke_solaria.py b/dev/invoke_solaria.py old mode 100644 new mode 100755 diff --git a/dev/publish_osf_wiki.sh-2 b/dev/publish_osf_wiki.sh-2 old mode 100644 new mode 100755 diff --git a/dev/publish_osf_wiki.sh.updated b/dev/publish_osf_wiki.sh.updated old mode 100644 new mode 100755 diff --git a/docs/.well-known/gitfield.json b/docs/.well-known/gitfield.json old mode 100644 new mode 100755 diff --git a/docs/.well-known/gitfield.json.asc b/docs/.well-known/gitfield.json.asc old mode 100644 new mode 100755 diff --git a/docs/.well-known/gitfield.json.sig.4E27D37C358872BF b/docs/.well-known/gitfield.json.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/docs/bitbucket/CLI-ONLY_workflow_bitbucket_Ubuntu.md b/docs/bitbucket/CLI-ONLY_workflow_bitbucket_Ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/bitbucket/CLI-ONLY_workflow_bitbucket_ubuntu.md b/docs/bitbucket/CLI-ONLY_workflow_bitbucket_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/bitbucket/CLI-ONLY_workflow_bitbucket_ubuntu.md.asc b/docs/bitbucket/CLI-ONLY_workflow_bitbucket_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/canonical.md b/docs/canonical.md old mode 100644 new mode 100755 diff --git a/docs/canonical.meta b/docs/canonical.meta old mode 100644 new mode 100755 diff --git a/docs/canonical.meta.asc b/docs/canonical.meta.asc old mode 100644 new mode 100755 diff --git a/docs/canonical.meta.sig.4E27D37C358872BF b/docs/canonical.meta.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/docs/generated_wiki.md b/docs/generated_wiki.md old mode 100644 new mode 100755 diff --git a/docs/generated_wiki.md.asc b/docs/generated_wiki.md.asc old mode 100644 new mode 100755 diff --git a/docs/generated_wiki.md.updated b/docs/generated_wiki.md.updated old mode 100644 new mode 100755 diff --git a/docs/gitfield.README.txt b/docs/gitfield.README.txt old mode 100644 new mode 100755 diff --git a/docs/gitfield.json b/docs/gitfield.json old mode 100644 new mode 100755 diff --git a/docs/gitfield.json.asc b/docs/gitfield.json.asc old mode 100644 new mode 100755 diff --git a/docs/gitfield.json.sig.4E27D37C358872BF b/docs/gitfield.json.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/docs/github/1_prerequisites_github_ubuntu.md b/docs/github/1_prerequisites_github_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/github/1_prerequisites_github_ubuntu.md.asc b/docs/github/1_prerequisites_github_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/github/2_create_remote_repo_github_ubuntu.md b/docs/github/2_create_remote_repo_github_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/github/2_create_remote_repo_github_ubuntu.md.asc b/docs/github/2_create_remote_repo_github_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/github/3_commit_existing_repo_github_ubuntu.md b/docs/github/3_commit_existing_repo_github_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/github/3_commit_existing_repo_github_ubuntu.md.asc b/docs/github/3_commit_existing_repo_github_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/github/CLI-ONLY_workflow_github_ubuntu.md b/docs/github/CLI-ONLY_workflow_github_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/github/CLI-ONLY_workflow_github_ubuntu.md.asc b/docs/github/CLI-ONLY_workflow_github_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/gitlab/1_prerequisites_gitlab_ubuntu.md b/docs/gitlab/1_prerequisites_gitlab_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/gitlab/1_prerequisites_gitlab_ubuntu.md.asc b/docs/gitlab/1_prerequisites_gitlab_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/gitlab/2_create_remote_repo_gitlab_ubuntu.md b/docs/gitlab/2_create_remote_repo_gitlab_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/gitlab/2_create_remote_repo_gitlab_ubuntu.md.asc b/docs/gitlab/2_create_remote_repo_gitlab_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/gitlab/3_commit_existing_repo_gitlab_ubuntu.md b/docs/gitlab/3_commit_existing_repo_gitlab_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/gitlab/3_commit_existing_repo_gitlab_ubuntu.md.asc b/docs/gitlab/3_commit_existing_repo_gitlab_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/gitlab/CLI-ONLY_workflow_gitlab_ubuntu.md b/docs/gitlab/CLI-ONLY_workflow_gitlab_ubuntu.md old mode 100644 new mode 100755 diff --git a/docs/gitlab/CLI-ONLY_workflow_gitlab_ubuntu.md.asc b/docs/gitlab/CLI-ONLY_workflow_gitlab_ubuntu.md.asc old mode 100644 new mode 100755 diff --git a/docs/index.json b/docs/index.json old mode 100644 new mode 100755 diff --git a/docs/index.json.asc b/docs/index.json.asc old mode 100644 new mode 100755 diff --git a/docs/index.json.sig.4E27D37C358872BF b/docs/index.json.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/docs/integrity.sha256.asc b/docs/integrity.sha256.asc old mode 100644 new mode 100755 diff --git a/docs/integrity.sha256.sig.4E27D37C358872BF b/docs/integrity.sha256.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/docs/osf/new/gitfield.osf.yaml b/docs/osf/new/gitfield.osf.yaml old mode 100644 new mode 100755 diff --git a/docs/osf/old/for_radicle.md b/docs/osf/old/for_radicle.md old mode 100644 new mode 100755 diff --git a/docs/osf/old/for_radicle.md.asc b/docs/osf/old/for_radicle.md.asc old mode 100644 new mode 100755 diff --git a/docs/osf/old/gitfield.osf.yaml b/docs/osf/old/gitfield.osf.yaml old mode 100644 new mode 100755 diff --git a/docs/pushed.log b/docs/pushed.log old mode 100644 new mode 100755 diff --git a/docs/radicle/for_radicle.md b/docs/radicle/for_radicle.md old mode 100644 new mode 100755 diff --git a/docs/radicle/for_radicle.md.asc b/docs/radicle/for_radicle.md.asc old mode 100644 new mode 100755 diff --git a/docs/repos.json.asc b/docs/repos.json.asc old mode 100644 new mode 100755 diff --git a/docs/repos.json.sig.4E27D37C358872BF b/docs/repos.json.sig.4E27D37C358872BF old mode 100644 new mode 100755 diff --git a/gitfield-signed.log b/gitfield-signed.log old mode 100644 new mode 100755 diff --git a/mythos/MYTHOS_INDEX.md b/mythos/MYTHOS_INDEX.md old mode 100644 new mode 100755 diff --git a/mythos/MYTHOS_INDEX.md.asc b/mythos/MYTHOS_INDEX.md.asc old mode 100644 new mode 100755 diff --git a/mythos/raw_pass_1.json b/mythos/raw_pass_1.json old mode 100644 new mode 100755 diff --git a/mythos/raw_pass_2.json b/mythos/raw_pass_2.json old mode 100644 new mode 100755 diff --git a/mythos/raw_pass_3.json b/mythos/raw_pass_3.json old mode 100644 new mode 100755 diff --git a/mythos/raw_pass_4.json b/mythos/raw_pass_4.json old mode 100644 new mode 100755 diff --git a/mythos/raw_pass_5.json b/mythos/raw_pass_5.json old mode 100644 new mode 100755 diff --git a/mythos/raw_pass_6.json b/mythos/raw_pass_6.json old mode 100644 new mode 100755 diff --git a/mythos/raw_pass_7.json b/mythos/raw_pass_7.json old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_1.md b/mythos/scrolls/echo_pass_1.md old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_1.md.asc b/mythos/scrolls/echo_pass_1.md.asc old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_2.md b/mythos/scrolls/echo_pass_2.md old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_2.md.asc b/mythos/scrolls/echo_pass_2.md.asc old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_3.md b/mythos/scrolls/echo_pass_3.md old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_3.md.asc b/mythos/scrolls/echo_pass_3.md.asc old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_4.md b/mythos/scrolls/echo_pass_4.md old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_4.md.asc b/mythos/scrolls/echo_pass_4.md.asc old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_5.md b/mythos/scrolls/echo_pass_5.md old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_5.md.asc b/mythos/scrolls/echo_pass_5.md.asc old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_6.md b/mythos/scrolls/echo_pass_6.md old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_6.md.asc b/mythos/scrolls/echo_pass_6.md.asc old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_7.md b/mythos/scrolls/echo_pass_7.md old mode 100644 new mode 100755 diff --git a/mythos/scrolls/echo_pass_7.md.asc b/mythos/scrolls/echo_pass_7.md.asc old mode 100644 new mode 100755