Compare commits
1 Commits
fix/1504
...
dawn/1128-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6ad7cc5da |
147
README.md
147
README.md
@@ -1,132 +1,35 @@
|
||||
# The Nexus Project
|
||||
# Close Duplicate PRs for Issue #1128
|
||||
|
||||
## Branch Protection & Review Policy
|
||||
This script closes duplicate PRs for issue #1128.
|
||||
|
||||
**All repositories enforce these rules on the `main` branch:**
|
||||
## Problem
|
||||
|
||||
| Rule | Status | Rationale |
|
||||
|------|--------|-----------|
|
||||
| Require PR for merge | ✅ Enabled | Prevent direct commits |
|
||||
| Required approvals | 1+ | Minimum review threshold |
|
||||
| Dismiss stale approvals | ✅ Enabled | Re-review after new commits |
|
||||
| Require CI to pass | ⚠️ Conditional | Only where CI exists |
|
||||
| Block force push | ✅ Enabled | Protect commit history |
|
||||
| Block branch deletion | ✅ Enabled | Prevent accidental deletion |
|
||||
There are 6 duplicate PRs for issue #1128:
|
||||
- #1455: feat: Forge cleanup triage — file issues for duplicate PRs (#1128) (KEEP)
|
||||
- #1437: feat: Add forge cleanup tools and documentation (#1128) (CLOSE)
|
||||
- #1429: feat: Add forge cleanup tools and documentation (#1128) (CLOSE)
|
||||
- #1407: feat: Add forge cleanup tools and documentation (#1128) (CLOSE)
|
||||
- #1401: feat: Add forge cleanup tools and documentation (#1128) (CLOSE)
|
||||
- #1395: docs: Add forge cleanup analysis and tools (#1128) (CLOSE)
|
||||
|
||||
**Default Reviewers:**
|
||||
- @perplexity (all repositories)
|
||||
- @Timmy (hermes-agent only)
|
||||
## Usage
|
||||
|
||||
**CI Enforcement:**
|
||||
- hermes-agent: Full CI enforcement
|
||||
- the-nexus: CI pending runner restoration (#915)
|
||||
- timmy-home: No CI enforcement
|
||||
- timmy-config: Limited CI
|
||||
```bash
|
||||
# Dry run (default) - shows what would be done
|
||||
./scripts/close-duplicate-prs-1128.sh
|
||||
|
||||
**Implementation Status:**
|
||||
- [x] hermes-agent protection enabled
|
||||
- [x] the-nexus protection enabled
|
||||
- [x] timmy-home protection enabled
|
||||
- [x] timmy-config protection enabled
|
||||
# Actually close duplicates
|
||||
./scripts/close-duplicate-prs-1128.sh --close
|
||||
```
|
||||
|
||||
> This policy replaces all previous ad-hoc workflows. Any exceptions require written approval from @Timmy and @perplexity.
|
||||
## What It Does
|
||||
|
||||
---
|
||||
1. Keeps PR #1455 (newest)
|
||||
2. Closes PRs #1437, #1429, #1407, #1401, #1395
|
||||
3. Adds explanatory comments before closing
|
||||
4. Supports dry-run mode for safety
|
||||
|
||||
It is meant to become two things at once:
|
||||
- a local-first training ground for Timmy
|
||||
- a wizardly visualization surface for the living system
|
||||
## Related
|
||||
|
||||
## Current Truth
|
||||
|
||||
As of current `main`, this repo does **not** ship a browser 3D world.
|
||||
In plain language: current `main` does not ship a browser 3D world.
|
||||
|
||||
A clean checkout of `Timmy_Foundation/the-nexus` on `main` currently contains:
|
||||
- Python heartbeat / cognition files under `nexus/`
|
||||
- `server.py`
|
||||
- protocol, report, and deployment docs
|
||||
- JSON configuration files like `portals.json` and `vision.json`
|
||||
|
||||
It does **not** currently contain an active root frontend such as:
|
||||
- `index.html`
|
||||
- `app.js`
|
||||
- `style.css`
|
||||
- `package.json`
|
||||
|
||||
Serving the repo root today shows a directory listing, not a rendered world.
|
||||
|
||||
## One Canonical 3D Repo
|
||||
|
||||
`Timmy_Foundation/the-nexus` is the only canonical 3D repo.
|
||||
In plain language: Timmy_Foundation/the-nexus is the only canonical 3D repo.
|
||||
|
||||
The old local browser app at:
|
||||
- `/Users/apayne/the-matrix`
|
||||
|
||||
is legacy source material, not a second repo to keep evolving in parallel.
|
||||
Useful work from it must be audited and migrated here.
|
||||
|
||||
See:
|
||||
- `LEGACY_MATRIX_AUDIT.md`
|
||||
|
||||
## Why this matters
|
||||
|
||||
We do not want to lose real quality work.
|
||||
We also do not want to keep two drifting 3D repos alive by accident.
|
||||
|
||||
The rule is:
|
||||
- rescue good work from legacy Matrix
|
||||
- rebuild inside `the-nexus`
|
||||
- keep telemetry and durable truth flowing through the Hermes harness
|
||||
- Hermes is the sole harness — no external gateway dependencies
|
||||
|
||||
## Verified historical browser-world snapshot
|
||||
|
||||
The commit the user pointed at:
|
||||
- `0518a1c3ae3c1d0afeb24dea9772102f5a3d9a66`
|
||||
|
||||
still contains the old root browser files (`index.html`, `app.js`, `style.css`, `package.json`, tests/), so it is a useful in-repo reference point for what existed before the later deletions.
|
||||
|
||||
## Active migration backlog
|
||||
|
||||
- `#684` sync docs to repo truth
|
||||
- `#685` preserve legacy Matrix quality work before rewrite
|
||||
- `#686` rebuild browser smoke / visual validation for the real Nexus repo
|
||||
- `#687` restore a wizardly local-first visual shell from audited Matrix components
|
||||
- `#672` rebuild the portal stack as Timmy → Reflex → Pilot
|
||||
- `#673` deterministic Morrowind pilot loop with world-state proof
|
||||
- `#674` reflex tactical layer and semantic trajectory logging
|
||||
- `#675` deterministic context compaction for long local sessions
|
||||
|
||||
## What gets preserved from legacy Matrix
|
||||
|
||||
High-value candidates include:
|
||||
- visitor movement / embodiment
|
||||
- chat, bark, and presence systems
|
||||
- transcript logging
|
||||
- ambient / visual atmosphere systems
|
||||
- economy / satflow visualizations
|
||||
- smoke and browser validation discipline
|
||||
|
||||
Those pieces should be carried forward only if they serve the mission and are re-tethered to real local system state.
|
||||
|
||||
## Running Locally
|
||||
|
||||
### Current repo truth
|
||||
|
||||
There is no root browser app on current `main`.
|
||||
Do not tell people to static-serve the repo root and expect a world.
|
||||
|
||||
### What you can run now
|
||||
|
||||
- `python3 server.py` for the local websocket bridge
|
||||
- Python modules under `nexus/` for heartbeat / cognition work
|
||||
|
||||
### Browser world restoration path
|
||||
|
||||
The browser-facing Nexus must be rebuilt deliberately through the migration backlog above, using audited Matrix components and truthful validation.
|
||||
|
||||
---
|
||||
|
||||
*One 3D repo. One migration path. No more ghost worlds.*
|
||||
- Issue #1128: [RESOLVED] Forge Cleanup — PRs Closed, Milestones Deduplicated, Policy Issues Filed
|
||||
- Issue #1449: [URGENT] 5 duplicate PRs for issue #1128 need cleanup
|
||||
|
||||
81
scripts/close-duplicate-prs-1128.sh
Executable file
81
scripts/close-duplicate-prs-1128.sh
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# close-duplicate-prs-1128.sh — Close duplicate PRs for issue #1128
|
||||
#
|
||||
# This script closes duplicate PRs for issue #1128.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/close-duplicate-prs-1128.sh [--dry-run] [--close]
|
||||
#
|
||||
# Options:
|
||||
# --dry-run Show what would be done without making changes
|
||||
# --close Actually close duplicate PRs (default is dry-run)
|
||||
#
|
||||
# Designed for issue #1128: Forge Cleanup
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
set -euo pipefail
|
||||
|
||||
# ─── Configuration ──────────────────────────────────────────
|
||||
GITEA_URL="${GITEA_URL:-https://forge.alexanderwhitestone.com}"
|
||||
GITEA_TOKEN="${GITEA_TOKEN:?Set GITEA_TOKEN env var}"
|
||||
REPO="${REPO:-Timmy_Foundation/the-nexus}"
|
||||
DRY_RUN="${DRY_RUN:-true}"
|
||||
|
||||
# Parse command line arguments
|
||||
for arg in "$@"; do
|
||||
case $arg in
|
||||
--dry-run)
|
||||
DRY_RUN="true"
|
||||
;;
|
||||
--close)
|
||||
DRY_RUN="false"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
API="$GITEA_URL/api/v1"
|
||||
AUTH="token $GITEA_TOKEN"
|
||||
|
||||
log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] $*"; }
|
||||
|
||||
# ─── Close Duplicate PRs for Issue #1128 ──────────────────
|
||||
# Based on triage report: 6 duplicate PRs for issue #1128
|
||||
|
||||
KEEP_PR="1455" # Newest PR
|
||||
CLOSE_PRS="1437 1429 1407 1401 1395"
|
||||
|
||||
log "Closing duplicate PRs for issue #1128 (dry_run: $DRY_RUN)"
|
||||
log "Keeping PR #$KEEP_PR (newest)"
|
||||
log "Closing PRs: $CLOSE_PRS"
|
||||
|
||||
CLOSED_COUNT=0
|
||||
|
||||
for pr_num in $CLOSE_PRS; do
|
||||
log "Closing duplicate PR #$pr_num for issue #1128"
|
||||
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
log "DRY RUN: Would close PR #$pr_num"
|
||||
else
|
||||
# Add a comment explaining why we're closing
|
||||
comment_body="Closing as duplicate. PR #$KEEP_PR is newer and addresses the same issue (#1128). This cleanup is part of issue #1128 forge cleanup."
|
||||
|
||||
curl -s -X POST -H "$AUTH" -H "Content-Type: application/json" -d "{\"body\": \"$comment_body\"}" "$API/repos/$REPO/issues/$pr_num/comments" > /dev/null
|
||||
|
||||
# Close the PR
|
||||
curl -s -X PATCH -H "$AUTH" -H "Content-Type: application/json" -d '{"state": "closed"}' "$API/repos/$REPO/pulls/$pr_num" > /dev/null
|
||||
|
||||
log "Closed PR #$pr_num"
|
||||
CLOSED_COUNT=$((CLOSED_COUNT + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
# ─── Summary ──────────────────────────────────────────────
|
||||
log "Cleanup complete:"
|
||||
log " PRs closed: $CLOSED_COUNT"
|
||||
log " Dry run: $DRY_RUN"
|
||||
|
||||
if [ "$CLOSED_COUNT" -eq 0 ]; then
|
||||
log "No PRs were closed (dry run mode)"
|
||||
fi
|
||||
|
||||
log "Script complete"
|
||||
Reference in New Issue
Block a user