Skip to content

chore: relocate dev-only files from dream-server/ to monorepo root#223

Open
evereq wants to merge 32 commits intoLight-Heart-Labs:mainfrom
evereq:chore/clean-dream-server-dev-files
Open

chore: relocate dev-only files from dream-server/ to monorepo root#223
evereq wants to merge 32 commits intoLight-Heart-Labs:mainfrom
evereq:chore/clean-dream-server-dev-files

Conversation

@evereq
Copy link
Contributor

@evereq evereq commented Mar 15, 2026

Problem

When installing DreamServer on a target machine, the installer copies the entire dream-server/ directory — including documentation, examples, CI scripts, and other development-only files that are never needed at runtime. This unnecessarily inflates the installed package size.

Solution

Restructure the monorepo so dream-server/ contains only runtime-essential files — what's actually needed to run DreamServer on a target machine. Development-only files are relocated to the monorepo root where they belong.

What Changed

📁 Documentation — moved to /docs/ (36 files)

All files from dream-server/docs/ → root docs/. Includes SUPPORT-MATRIX, TROUBLESHOOTING, HARDWARE-GUIDE, INSTALLER-ARCHITECTURE, EXTENSIONS, platform-specific guides (Windows, macOS, WSL2, Intel Arc), and all other documentation.

All 38 internal relative links updated (../scripts/../dream-server/scripts/, etc.) to reflect the new location.

📁 resources/docs/ — deduplicated (34 files removed)

Removed 34 duplicate/subset files from resources/docs/ that already existed in docs/ with identical or more content. 15 unique files retained: AUDIT, CAPABILITIES, DEPLOY-RUNBOOK, GOLDEN-BUILD, GUARDIAN, INFRASTRUCTURE, LIVEKIT-DEPLOYMENT-GUIDE, M1-QUICK-REFERENCE, M1-ZERO-CLOUD-RECIPE, PHILOSOPHY, PRODUCT-PORTFOLIO, PROTOCOLS, SETUP, TOKEN-MONITOR-PRODUCT-SCOPE, TOKEN-SPY.

📁 Examples — moved to /examples/ (2 files)

dream-server/examples/ → root examples/ (sample-code.py, sample-doc.txt).

📁 Dev Scripts — moved to /scripts/ (5 files + README)

CI/release-gate scripts that are never needed on target machines:

Script Purpose
check-compatibility.sh CI: validate manifest contracts
check-release-claims.sh CI: verify release claims match docs
release-gate.sh Full pre-release validation gate
simulate-installers.sh CI: installer dry-run simulation
validate-sim-summary.py CI: validate simulation output

All 27 runtime scripts (dream-doctor, health-check, preflight, hardware detection, etc.) remain in dream-server/scripts/.

📁 Community & Config Files — moved to monorepo root (8 files)

CHANGELOG.md, CODE_OF_CONDUCT.md, SECURITY.md, FAQ.md, QUICKSTART.md, EDGE-QUICKSTART.md, .shellcheckrc, PSScriptAnalyzerSettings.psd1

📄 Makefile — moved to monorepo root

Developer validation tool (make lint, make test, make smoke, make gate). All internal paths updated for root location.

📄 .github/ — merged

  • pull_request_template.md moved to root .github/ (supersedes old YAML-based templates)
  • dream-server/.github/ISSUE_TEMPLATE/ deleted (superseded by root .github/ISSUE_TEMPLATE/*.yml)
  • dream-server/.github/workflows/lint-shell.yml deleted (duplicate of root workflow)

📄 README.md — consolidated

Extracted 6 sections unique to our README that don't exist in upstream, moved to appropriate docs/ files:

Section Moved to
Architecture diagrams (AMD/NVIDIA stacks) docs/HOW-DREAM-SERVER-WORKS.md
Configuration (.env settings) docs/PROFILES.md
Showcase & Demos docs/TESTING.md
Useful management commands docs/TROUBLESHOOTING.md
Installer evidence docs/INSTALLER-ARCHITECTURE.md
Troubleshooting FAQ (10 entries) docs/TROUBLESHOOTING.md

Root README now matches upstream's section structure exactly. dream-server/README.md replaced with a short pointer to the root README (for repo browsers) and the GitHub project URL (for local installers).

📄 CONTRIBUTING.md — enriched

Replaced with comprehensive contributor guide covering 5 priority areas (hardware support, clean installs, extensions, testing, portability), merge criteria, PR anti-patterns, style guidelines, and make gate workflow. Code of Conduct moved to standalone CODE_OF_CONDUCT.md with a reference link. dream-server/CONTRIBUTING.md deleted (fully absorbed).

📄 .gitignore — merged & updated

dream-server/.gitignore entries merged into root .gitignore with appropriate dream-server/ prefixes. Added artifacts/ to prevent CI simulation output from being committed. dream-server/.gitignore deleted.

🔧 CI Workflows — updated

test-linux.yml: dev script paths updated to ../scripts/ (since working-directory: dream-server)

🔧 Smoke Tests — decoupled from docs

Removed grep docs/SUPPORT-MATRIX.md from 3 smoke tests (linux-nvidia.sh, wsl-logic.sh, macos-dispatch.sh). These doc-consistency checks now live exclusively in check-release-claims.sh. Smoke tests are now fully self-contained within dream-server/ with zero external dependencies.

🔧 Contract Tests — updated

Removed simulate-installers.sh from executable check in test-installer-contracts.sh (moved to root scripts/).

🔧 Dev Scripts — updated for new locations

  • check-compatibility.sh: Fixed paths to reference dream-server/ for compose, workflow catalog, extension schema, and ports contract lookups; added tr -d '\r' for Windows CR compatibility
  • check-release-claims.sh: Rewrote grep patterns to match current upstream SUPPORT-MATRIX content (macOS now Tier B, Windows label changed to Docker Desktop + WSL2, removed stale Tier C and Windows native installer UX checks)
  • simulate-installers.sh: Updated to cd into dream-server/ and adjusted --script-dir path
  • release-gate.sh: Updated test/smoke paths to dream-server/tests/

What Stayed in dream-server/

Everything needed to run on a target machine:

  • Installer scriptsinstall.sh, install-core.sh, get-dream-server.sh, etc.
  • CLIdream-cli
  • Operationsdream-update.sh, dream-backup.sh, dream-restore.sh, dream-uninstall.sh, dream-preflight.sh
  • Docker Compose files — base, amd, nvidia, apple, local
  • Runtime scripts — 27 scripts: health-check, preflight, hardware detection, doctor, etc.
  • Tests — 34 test scripts (tightly coupled to source code paths)
  • Configurationconfig/, .env, .env.example, .env.schema.json
  • Extensions, agents, lib, migrations, memory-shepherd, opencode
  • LICENSE (required for compliance)
  • manifest.json
  • README.md (short pointer for local installers)

Net Impact

  • 68 files changed — 415 insertions, 812 deletions
  • dream-server/ reduced from ~100+ files to runtime-only essentials
  • resources/docs/ reduced from 49 to 15 files (34 duplicates removed)
  • Zero breaking changes — all CI workflows, test paths, and script references updated
  • Rebased cleanly on latest upstream/main

Testing

make lint    → All lint checks passed ✅
make smoke   → linux-amd ✅, linux-nvidia ✅, wsl-logic ✅, macos-dispatch ✅
make test    → tier map: 55 pass / 0 fail ✅, contracts: PASS ✅
               (preflight fixture test requires Python 3.12+ — pre-existing upstream requirement)

Dev script validation (run from repo root):

scripts/check-compatibility.sh   → PASS ✅ (manifest, compose, workflow, extensions, ports contract)
scripts/check-release-claims.sh  → PASS ✅ (all platform entries verified)
scripts/release-gate.sh          → PASS ✅ (through contracts; preflight fixture needs Python 3.12+)
docs/ internal links             → 0 broken ✅ (38 links fixed after docs relocation)

@evereq evereq changed the title Chore/clean dream server dev fileschore: relocate dev-only files from dream-server/ to monorepo root chore: relocate dev-only files from dream-server/ to monorepo root Mar 15, 2026
@evereq evereq marked this pull request as draft March 15, 2026 19:26
@evereq evereq force-pushed the chore/clean-dream-server-dev-files branch from 626d907 to c229410 Compare March 15, 2026 20:25
@evereq evereq marked this pull request as ready for review March 15, 2026 20:41
Copy link
Collaborator

@Lightheartdevs Lightheartdevs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The structural rationale is sound — separating dev/CI tooling from the deployable dream-server/ directory is a clean improvement. The path reference updates look thorough.

Three things to address:

  1. Coordinate merge order with #225. Both PRs modify .github/workflows/test-linux.yml. If #225 merges first (which it should — it's smaller and approved), this PR will need a rebase. Plan accordingly.

  2. Keep a stub README in dream-server/. Deleting the inner README entirely means anyone who clones and cd dream-server/ sees no orientation. A one-line pointer (# Dream Server — see [root README](../README.md)) costs nothing and prevents confusion.

  3. README consolidation bloat. Merging the inner README content into the root adds ~150 lines of architecture diagrams, config snippets, and troubleshooting FAQ. Consider whether some of this belongs in docs/ rather than the root README — the root README is already substantial.

@evereq
Copy link
Contributor Author

evereq commented Mar 16, 2026

@Lightheartdevs thanks for feedback, I'll work tomorrow to finalize all and rebase so we can merge it :)

@Lightheartdevs
Copy link
Collaborator

Main has moved significantly — this needs a rebase to resolve conflicts before we can merge. Could you update?

@evereq
Copy link
Contributor Author

evereq commented Mar 17, 2026

@Lightheartdevs yes, I saw it, no worries absolutely, I can manage it today later, rebase, improve docs etc.

evereq added 17 commits March 18, 2026 13:05
Move documentation, tests, examples, CI config, and community files out of dream-server/ to keep it focused on runtime-essential content only. This reduces the installed footprint on target devices.

Changes:

- Moved docs/ (34 files), tests/ (35 files), examples/ (2 files) to monorepo root

- Merged .github/ (pull_request_template moved, superseded templates/workflows removed)

- Merged dream-server/.gitignore into root .gitignore and removed dream-server copy

- Consolidated dream-server/README.md content into root README.md

- Updated CI workflows (test-linux.yml, matrix-smoke.yml) for new test paths

- Updated Makefile test paths

- Kept LICENSE in dream-server/ for compliance

- Moved dev-only root files: CHANGELOG, CODE_OF_CONDUCT, SECURITY, FAQ, QUICKSTART, EDGE-QUICKSTART, .shellcheckrc, PSScriptAnalyzerSettings.psd1

- Replaced root CONTRIBUTING.md with richer dream-server version
@evereq evereq force-pushed the chore/clean-dream-server-dev-files branch from dd42435 to e70e189 Compare March 18, 2026 13:32
@evereq evereq marked this pull request as draft March 18, 2026 14:17
@evereq evereq marked this pull request as ready for review March 18, 2026 14:30
@evereq evereq requested a review from Lightheartdevs March 18, 2026 14:55
@evereq
Copy link
Contributor Author

evereq commented Mar 18, 2026

@Lightheartdevs I did more work on this, rebased, incorporated your suggestions, added some more fixes and improvements etc (updated all in PR description). I would really recommend to merge this as soon as we can, otherwise again tons of work might be needed. Note that also it's VERY hard to predict all possible issues related to moving such files around etc, so I hope not much of things got broken, but on the positive side - even if something does got broken it means that we need to add tests to prevent it again to happen and I think all such issues can be fixed very fast anyway.

Also I would like to point out one thing that this PR really doing conceptually - it clean up "dream-server" folder to really be only what we installing on target device and attempts to move all other things outside of that folder. That way now for example, we will have mono-repo root "scripts" folder with scripts used by developers (e.g. say simulate installers script or check releases etc), while the dream-server\scripts folder concentrate scripts that needed for operations of dream server on target device, unrelated to devs flows etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants