security: remove all infrastructure and internal process material from the repo
Demo images / Build & push demo images (push) Failing after 2m13s
Demo images / Build & push demo images (push) Failing after 2m13s
The repo is source code and guidelines only. Nothing about how Archipelago's own fleet is run, or how the team works, stays in it. Untracked (kept on disk, gitignored) — 250 files: - .planning/ (199) and loop/ — internal development process - fleet operations tooling that targets specific nodes: deploy-to-target, deploy-tailscale, deploy-config-defaults, setup-target-dev, setup-aiui-server, setup-https-dev, debug-frontend, node-profile, fleet-fips-pair/unpair, image-recipe/sync-from-live.sh - image-recipe/INTEGRATION-GUIDE.md and docs/multinode-testing-plan.md, both of which are live-server workflow and fleet node inventories - the Phase 10 on-node verification and evidence records, which cite .planning/ as their evidence base KEY-05-ENTROPY-ENFORCEMENT.md was initially moved out with the other Phase 10 docs and then put back: it is cited as normative rationale from ten places in the codebase, including core/clippy.toml, which bans rand::thread_rng and points at it for the reason. That makes it a guideline, not an internal record. Node names removed from source (48 occurrences across comments, manifests and test fixtures): archi-dev-box, archy-x250*, shorty-s, framework-pt, zaza-optiplex, archi-thinkpad. Comments keep the engineering context and the date, which is what carried the meaning; the machine name did not. Three of those were live test values rather than comments and were replaced with valid stand-ins, not prose: two mDNS hostnames and a mesh peer name. An earlier pass substituted "a test node" into a hostname assertion, producing an invalid hostname; caught and fixed as test-node.local. Wipe mechanism: .local-only/manifest.txt inventories every local-only path and .local-only/wipe.sh deletes them on one confirmation, refusing to touch anything git still tracks. Both are themselves untracked, so the public repo does not carry a map of internal filenames. Verified: cargo check -p archipelago --all-features clean; archipelago-container 75/75 tests pass; appOrigin vitest 7/7; audit-secrets 5/5; every relative link in tracked markdown resolves (0 broken). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
cc00884b98
commit
6ba0599639
@@ -1044,7 +1044,7 @@ function loadCounts() {
|
||||
// happened to be mounting/activating at the same moment (Home/Server's own
|
||||
// onMounted bursts), this measurably doubles the concurrent same-origin
|
||||
// request volume at the single riskiest instant in the session — first
|
||||
// activation. On archi-dev-box that volume was large enough to leave one
|
||||
// activation. On a test node that volume was large enough to leave one
|
||||
// in-flight File Browser request permanently stuck (never resolving,
|
||||
// confirmed via direct reproduction), which then starved the browser's
|
||||
// per-origin connection pool and silently broke every subsequent
|
||||
|
||||
@@ -764,7 +764,7 @@ async function loadWeb5Status() {
|
||||
.catch(() => {
|
||||
// A single slow poll must NOT flip the card to "disconnected" and
|
||||
// hide balances the user already knows — busy nodes routinely blow
|
||||
// the 5s budget mid-payment or during IO storms (framework-pt user
|
||||
// the 5s budget mid-payment or during IO storms (a test node user
|
||||
// report: balances vanished while a payment settled). Only call it
|
||||
// disconnected after three consecutive failures (~30s of silence).
|
||||
walletInfoFailures += 1
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
* The S2/S3/S5 "no pill" assertions pin a recorded product decision, not a
|
||||
* bug: transport is measured PER PEER PER BROWSE, never per file, so a
|
||||
* per-file pill would claim a reading the app never took. The reasoning is
|
||||
* written up in .planning/phases/01-federation-mesh-hardening/01-17-SUMMARY.md.
|
||||
* If you deliberately add a per-file pill, update that decision record and
|
||||
* this test together.
|
||||
*/
|
||||
|
||||
@@ -17,13 +17,13 @@ afterEach(() => vi.unstubAllGlobals())
|
||||
|
||||
describe('appOrigin', () => {
|
||||
it('stays on http for an http dashboard', () => {
|
||||
setLocation('http:', 'archi-dev-box')
|
||||
expect(appOrigin(8334)).toBe('http://archi-dev-box:8334')
|
||||
setLocation('http:', 'test-node.local')
|
||||
expect(appOrigin(8334)).toBe('http://test-node.local:8334')
|
||||
})
|
||||
|
||||
it('follows an https dashboard onto the app port', () => {
|
||||
setLocation('https:', 'archi-dev-box')
|
||||
expect(appOrigin(8334)).toBe('https://archi-dev-box:8334')
|
||||
setLocation('https:', 'test-node.local')
|
||||
expect(appOrigin(8334)).toBe('https://test-node.local:8334')
|
||||
})
|
||||
|
||||
it('keeps the hostname the user actually typed, not a fixed name', () => {
|
||||
|
||||
@@ -693,7 +693,7 @@ describe('keepAliveRoutes: widened registration set (02-04)', () => {
|
||||
// 02-FINDINGS.md's "## Server KeepAlive Root Cause (gap closure)" section)
|
||||
// rather than a real KeepAlive/lifecycle defect — an authoritative,
|
||||
// independent `document.elementFromPoint()` hit-test signal on the deployed
|
||||
// archi-dev-box build directly contradicted the naive selector-match probe's
|
||||
// a test node build directly contradicted the naive selector-match probe's
|
||||
// "remounted" verdict for both Server.vue and Web5.vue, and a companion
|
||||
// diagnostic found the ORIGINAL stamped root still connected and visible
|
||||
// under a different (unpicked) DOM match. No source change to
|
||||
|
||||
@@ -15,7 +15,7 @@ import { TAB_ORDER } from './useRouteTransitions'
|
||||
* once this cap is exceeded (Vue's own LRU eviction).
|
||||
*
|
||||
* 02-08 (FA-D) tuned this against an on-device measurement rather than
|
||||
* leaving the carried-forward estimate unexamined: on archi-dev-box (real
|
||||
* leaving the carried-forward estimate unexamined: on a test node (real
|
||||
* node hardware, deployed build), a headless Chromium session logged in via
|
||||
* the real UI, cycled every main tab (all of TAB_ORDER incl. the withheld
|
||||
* `/dashboard/settings`, plus `/dashboard/discover` — 11 tabs) through 4 full
|
||||
|
||||
@@ -6,7 +6,6 @@ import Web5ConnectedNodes from '../Web5ConnectedNodes.vue'
|
||||
// its row sibling (via grid `align-items: stretch` + a zero-basis flex
|
||||
// child), and the tab panes must scroll inside that height rather than
|
||||
// growing to fit every row. See:
|
||||
// .planning/todos/pending/2026-07-30-connected-nodes-list-must-scroll-at-row-matched-height.md
|
||||
|
||||
vi.mock('vue-router', () => ({
|
||||
useRouter: () => ({ push: vi.fn() }),
|
||||
|
||||
Reference in New Issue
Block a user