Skip to content

Commit 2612bf7

Browse files
author
FTMahringer
committed
fix(linux): prioritize native install path
Make the CLI self-contained without a missing local incubator workspace, switch the installer to a Linux-first native flow, and generate plugin lifecycle fixtures inside backend tests. Bump release metadata to v2.5.8-dev and update repo docs for the Linux-first path.
1 parent 122089a commit 2612bf7

36 files changed

Lines changed: 385 additions & 253 deletions
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# SYNAPSE v2.5.8-dev
2+
3+
Linux stabilization starts here with Ubuntu 24.04 WSL2 as the primary target.
4+
5+
## Highlights
6+
7+
- CLI build no longer depends on the missing local `go-tui-incubator` workspace.
8+
- Installer flow now treats native Linux as the primary path and Docker Compose as optional.
9+
- Plugin lifecycle integration fixtures are generated inside backend tests instead of depending on a local ignored template checkout.
10+
- Root docs and onboarding references were cleaned up for Linux-first usage and repo-relative paths.
11+
12+
## Scope
13+
14+
- Backend
15+
- CLI
16+
- Plugin lifecycle test flow
17+
- Installer scripts
18+
- Main repo docs
19+
20+
## Notes
21+
22+
- Validation in the current workspace was limited because Go and Java were not installed/configured at release time.
23+
- The paired docs pre-release for this docs-affecting dev cycle is tracked in `Synapse-docs`.

.gitignore

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
# Maven build output
22
packages/core/target/
3+
synapse-plugin-api/target/
34

45
# IDE
56
.idea/
67
.vscode/
78
*.iml
9+
*.classpath
10+
*.project
11+
*.settings/
812

913
# OS
1014
.DS_Store
@@ -16,9 +20,9 @@ Thumbs.db
1620
# Environment
1721
.env
1822
.env.local
19-
/synapse-docs
23+
/Synapse-docs
2024
/synapse-plugins
21-
/synapse-plugin-template
25+
/Synapse-plugin-template
2226
/synapse-plugins-community
2327
/.installer-tmp
2428
/go-tui-incubator

AGENT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Before major work:
2424
## Repository context and boundaries
2525

2626
- Main codebase root: this repository.
27-
- Docs live in nested, separate git repo: `synapse-docs\`.
27+
- Docs live in a nested, separate git repo when present: `synapse-docs/`.
2828
- Never mix commits across these repositories.
2929
- Keep changes scoped to the active task; avoid unrelated refactors.
3030
- Linux is the primary runtime target for validation work.
@@ -53,5 +53,5 @@ Before major work:
5353

5454
- Project rules: `RULES.md`
5555
- Root changelog: `CHANGELOG.md`
56-
- Docs repository: `synapse-docs\`
57-
- Linux migration notes: `docs\NEXT_LINUX_PLAN.md`
56+
- Docs repository: `synapse-docs/`
57+
- Linux migration notes: `docs/NEXT_LINUX_PLAN.md`

AGENTS_QUICKSTART.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
## Read
44

5-
- [AGENT.md](/D:/projects/Agents-Umgeung-planning/Synapse/AGENT.md)
6-
- [RULES.md](/D:/projects/Agents-Umgeung-planning/Synapse/RULES.md)
7-
- [INSTRUCTIONS.md](/D:/projects/Agents-Umgeung-planning/Synapse/INSTRUCTIONS.md)
5+
- [AGENT.md](./AGENT.md)
6+
- [RULES.md](./RULES.md)
7+
- [INSTRUCTIONS.md](./INSTRUCTIONS.md)
88

99
## Work Areas
1010

1111
- `packages/core`
1212
- `packages/cli`
1313
- `synapse-plugin-api`
14-
- `synapse-plugin-template`
14+
- `synapse-plugin-template` may be absent in a clean clone
1515
- `docs/roadmaps`
1616
- `docs/superpowers`
1717

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
---
1111

12+
## [v2.5.8-dev] - 2026-05-18
13+
14+
**Linux Stabilization — Ubuntu 24.04 WSL2 First**
15+
16+
### Fixed
17+
- CLI build no longer depends on the missing local `go-tui-incubator` workspace; it uses the in-repo terminal, theme, and output packages.
18+
- Plugin lifecycle integration fixtures are now generated inside backend tests instead of requiring an ignored local `synapse-plugin-template` checkout.
19+
- Installer prerequisites no longer force Docker for the base flow; native Linux setup remains valid even when Docker Compose is unavailable.
20+
21+
### Changed
22+
- `install.sh` now defaults to the native Linux path and leaves Docker Compose as an explicit optional follow-up.
23+
- Root agent docs and quickstart references now use repo-relative paths instead of hardcoded Windows drive paths.
24+
- README quick start now recommends native Linux setup first and treats Docker Compose as optional.
25+
26+
---
27+
1228
## [v2.5.7-dev] - 2026-05-12
1329

1430
**Plugin Ecosystem — Official Plugin Library**

INSTRUCTIONS.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@ Short handoff for other agents working in this repo.
44

55
## Read First
66

7-
- [AGENT.md](/D:/projects/Agents-Umgeung-planning/Synapse/AGENT.md)
8-
- [RULES.md](/D:/projects/Agents-Umgeung-planning/Synapse/RULES.md)
9-
- [README.md](/D:/projects/Agents-Umgeung-planning/Synapse/README.md)
10-
- [IDEAS.md](/D:/projects/Agents-Umgeung-planning/Synapse/IDEAS.md)
7+
- [AGENT.md](./AGENT.md)
8+
- [RULES.md](./RULES.md)
9+
- [README.md](./README.md)
10+
- [IDEAS.md](./IDEAS.md)
1111

1212
## Important Areas
1313

14-
- [packages/core/pom.xml](/D:/projects/Agents-Umgeung-planning/Synapse/packages/core/pom.xml)
15-
- [packages/core/src/main/java/](/D:/projects/Agents-Umgeung-planning/Synapse/packages/core/src/main/java/)
16-
- [packages/core/src/test/java/](/D:/projects/Agents-Umgeung-planning/Synapse/packages/core/src/test/java/)
17-
- [packages/cli/](/D:/projects/Agents-Umgeung-planning/Synapse/packages/cli/)
18-
- [synapse-plugin-api/](/D:/projects/Agents-Umgeung-planning/Synapse/synapse-plugin-api/)
19-
- [synapse-plugin-template/](/D:/projects/Agents-Umgeung-planning/Synapse/synapse-plugin-template/)
20-
- [docs/roadmaps/](/D:/projects/Agents-Umgeung-planning/Synapse/docs/roadmaps/)
21-
- [docs/superpowers/](/D:/projects/Agents-Umgeung-planning/Synapse/docs/superpowers/)
14+
- [packages/core/pom.xml](./packages/core/pom.xml)
15+
- [packages/core/src/main/java/](./packages/core/src/main/java/)
16+
- [packages/core/src/test/java/](./packages/core/src/test/java/)
17+
- [packages/cli/](./packages/cli/)
18+
- [synapse-plugin-api/](./synapse-plugin-api/)
19+
- `synapse-plugin-template/` is optional local test scaffolding and may be absent in a clean Linux clone.
20+
- [docs/roadmaps/](./docs/roadmaps/)
21+
- [docs/superpowers/](./docs/superpowers/)
2222

2323
## Current Focus
2424

README.md

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,45 @@ SYNAPSE is a self-hosted, fully extensible AI platform that puts you in complete
2929

3030
### Prerequisites
3131

32-
- **Docker & Docker Compose** (recommended) **or** local development tools:
32+
- Primary validation target: Ubuntu 24.04 on WSL2 or native Linux
33+
- Recommended native toolchain:
3334
- JDK 25+
3435
- Maven 3.9+
3536
- Node.js 22+
3637
- Go 1.26+
3738
- PostgreSQL 18+
3839
- Redis 8+
39-
- Supported OS: Linux, macOS, or Windows (WSL2 recommended)
40+
- Qdrant 1.14+
41+
- Docker Compose is supported as an optional path, not the only install path.
4042

41-
### Docker Compose Setup (Recommended)
43+
### Native Linux Setup (Recommended)
44+
45+
```bash
46+
# Clone the repository
47+
git clone https://github.com/FTMahringer/Synapse.git
48+
cd Synapse
49+
50+
# Bootstrap the CLI and generate local config
51+
./install.sh
52+
53+
# Or prepare environment variables manually
54+
cp .env.example .env
55+
56+
# Start local dependencies first, then run the backend
57+
cd packages/core
58+
mvn spring-boot:run
59+
60+
# In another shell, run the dashboard
61+
cd packages/dashboard/frontend
62+
npm install
63+
npm run dev
64+
65+
# In another shell, use the CLI
66+
cd packages/cli
67+
go run . health
68+
```
69+
70+
### Docker Compose Setup (Optional)
4271

4372
```bash
4473
# Clone the repository
@@ -87,26 +116,7 @@ POSTGRES_PASSWORD=your-secure-password
87116
ECHO_ENABLED=false
88117
```
89118

90-
### Manual Development Setup
91-
92-
```bash
93-
# Clone the repository
94-
git clone https://github.com/FTMahringer/Synapse.git
95-
cd Synapse
96-
97-
# Backend (requires PostgreSQL and Redis running)
98-
cd packages/core
99-
mvn spring-boot:run
100-
101-
# Frontend
102-
cd packages/dashboard/frontend
103-
npm install
104-
npm run dev
105-
106-
# CLI
107-
cd packages/cli
108-
go run main.go health
109-
```
119+
The native path is the first target for Linux stabilization. Use the Docker path when you specifically want containerized services.
110120

111121
---
112122

install.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ ok() { printf "${GREEN}✓ %s${RESET}\n" "$1"; }
2929
warn() { printf "${YELLOW}⚠ %s${RESET}\n" "$1"; }
3030
err() { printf "${RED}✗ %s${RESET}\n" "$1"; }
3131

32+
go_version_token() {
33+
go version 2>/dev/null | awk '{print $3}'
34+
}
35+
3236
# ── OS Detection ─────────────────────────────────────────────────
3337
detect_os() {
3438
case "$(uname -s)" in
@@ -101,7 +105,7 @@ install_go() {
101105
esac
102106

103107
if command -v go &>/dev/null; then
104-
ok "Go $(go version | grep -oP 'go\S+' || true) installed"
108+
ok "Go $(go_version_token)" installed
105109
else
106110
err "Go installation failed. Please install manually: https://go.dev/dl/"
107111
exit 1
@@ -164,7 +168,7 @@ echo ""
164168

165169
# Step 2: Check / Install Go
166170
if command -v go &>/dev/null; then
167-
GO_VER=$(go version | grep -oP 'go\S+' || true)
171+
GO_VER=$(go_version_token)
168172
ok "Go ${GO_VER} found"
169173
else
170174
warn "Go not found — installing..."
@@ -176,12 +180,13 @@ echo ""
176180
build_and_install
177181

178182
# Step 4: Run the interactive TUI installer
179-
info "Launching interactive installer..."
183+
info "Launching interactive installer (native Linux path)..."
180184
echo ""
181-
"$BIN_DIR/synapse" install
185+
"$BIN_DIR/synapse" install --skip-docker
182186

183187
echo ""
184188
ok "Installation complete!"
185189
ok "You can now use 'synapse' from any terminal."
186190
echo ""
187191
info "Run 'synapse --help' to see available commands."
192+
info "Run 'docker compose -f installer/compose/docker-compose.yml --env-file .env up -d' later if you want the optional container path."

packages/cli/cmd/agents.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@ package cmd
33
import (
44
"fmt"
55

6-
tuioutput "github.com/FTMahringer/go-tui-incubator/output"
76
"github.com/spf13/cobra"
87
"github.com/synapse-dev/synapse-cli/internal/commandfeatures"
9-
clioutput "github.com/synapse-dev/synapse-cli/internal/output"
8+
tuioutput "github.com/synapse-dev/synapse-cli/internal/output"
109
)
1110

1211
var agentsCmd = &cobra.Command{
1312
Use: "agents",
1413
Short: "Manage agents",
1514
RunE: func(cmd *cobra.Command, args []string) error {
16-
handled, err := commandfeatures.HandleSubcommandListing(cmd, clioutput.PrintSubcommands)
15+
handled, err := commandfeatures.HandleSubcommandListing(cmd, tuioutput.PrintSubcommands)
1716
if err != nil || handled {
1817
return err
1918
}

packages/cli/cmd/auth.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,19 @@ package cmd
33
import (
44
"fmt"
55

6-
tuioutput "github.com/FTMahringer/go-tui-incubator/output"
76
"github.com/spf13/cobra"
87
"github.com/spf13/viper"
98
"github.com/synapse-dev/synapse-cli/internal/api"
109
"github.com/synapse-dev/synapse-cli/internal/commandfeatures"
1110
"github.com/synapse-dev/synapse-cli/internal/config"
12-
clioutput "github.com/synapse-dev/synapse-cli/internal/output"
11+
tuioutput "github.com/synapse-dev/synapse-cli/internal/output"
1312
)
1413

1514
var authCmd = &cobra.Command{
1615
Use: "auth",
1716
Short: "Authentication commands",
1817
RunE: func(cmd *cobra.Command, args []string) error {
19-
handled, err := commandfeatures.HandleSubcommandListing(cmd, clioutput.PrintSubcommands)
18+
handled, err := commandfeatures.HandleSubcommandListing(cmd, tuioutput.PrintSubcommands)
2019
if err != nil || handled {
2120
return err
2221
}

0 commit comments

Comments
 (0)