build(release): rename jane-ai packaging surfaces\n\n- Rename Makefile outputs, launcher artifact names, and frontend build commands toward jane-ai\n- Update Dockerfiles, GoReleaser config, launcher assets, and backend startup metadata to ship jane-ai branding\n- Refresh gitignore and workflow image naming for the new jane-ai artifact surface\n- Documentation updated in ObsidianVault/My_Vault/03-Projects/jane-ai/01-Working and 07-Sessions/28-03-26\n- Tests passed for pkg/runtimepaths and pkg/auth; targeted rg checks passed for the touched release/build files

This commit is contained in:
Wadah Adlan 2026-03-28 02:36:28 -04:00
parent da25deeae0
commit ef5a339b4c
16 changed files with 99 additions and 98 deletions

View file

@ -1,7 +1,7 @@
.git .git
.gitignore .gitignore
build/ build/
.picoclaw/ .jane-ai/
config/ config/
.env .env
.env.example .env.example

View file

@ -10,7 +10,7 @@ on:
env: env:
GHCR_REGISTRY: ghcr.io GHCR_REGISTRY: ghcr.io
GHCR_IMAGE_NAME: ${{ github.repository_owner }}/picoclaw GHCR_IMAGE_NAME: ${{ github.repository_owner }}/jane-ai
DOCKERHUB_REGISTRY: docker.io DOCKERHUB_REGISTRY: docker.io
DOCKERHUB_IMAGE_NAME: ${{ vars.DOCKERHUB_REPOSITORY }} DOCKERHUB_IMAGE_NAME: ${{ vars.DOCKERHUB_REPOSITORY }}

8
.gitignore vendored
View file

@ -8,14 +8,14 @@ build/
*.dylib *.dylib
*.test *.test
*.out *.out
/picoclaw /jane-ai
/picoclaw-test /jane-ai-test
cmd/**/workspace cmd/**/workspace
# Picoclaw specific # Picoclaw specific
# PicoClaw # Jane AI
.picoclaw/ .jane-ai/
config.json config.json
sessions/ sessions/
build/ build/

View file

@ -6,22 +6,23 @@ before:
hooks: hooks:
- go mod tidy - go mod tidy
- go generate ./... - go generate ./...
- sh -c 'cd web/frontend && pnpm install && pnpm build:backend' - sh -c 'cd web/frontend && bun install && bun run build:backend'
- go install github.com/tc-hib/go-winres@latest - go install github.com/tc-hib/go-winres@latest
- go-winres make --in web/backend/winres/winres.json --out web/backend/rsrc --product-version={{ .Version }} --file-version={{ .Version }} - go-winres make --in web/backend/winres/winres.json --out web/backend/rsrc --product-version={{ .Version }} --file-version={{ .Version }}
builds: builds:
- id: picoclaw - id: jane-ai
binary: jane-ai
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=0
tags: tags:
- stdjson - stdjson
ldflags: ldflags:
- -s -w - -s -w
- -X github.com/sipeed/picoclaw/pkg/config.Version={{ .Version }} - -X jane/pkg/config.Version={{ .Version }}
- -X github.com/sipeed/picoclaw/pkg/config.GitCommit={{ .ShortCommit }} - -X jane/pkg/config.GitCommit={{ .ShortCommit }}
- -X github.com/sipeed/picoclaw/pkg/config.BuildTime={{ .Date }} - -X jane/pkg/config.BuildTime={{ .Date }}
- -X github.com/sipeed/picoclaw/pkg/config.GoVersion={{ .Env.GOVERSION }} - -X jane/pkg/config.GoVersion={{ .Env.GOVERSION }}
goos: goos:
- linux - linux
- windows - windows
@ -45,8 +46,8 @@ builds:
- goos: windows - goos: windows
goarch: arm goarch: arm
- id: picoclaw-launcher - id: jane-ai-launcher
binary: picoclaw-launcher binary: jane-ai-launcher
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=0
tags: tags:
@ -76,8 +77,8 @@ builds:
- goos: windows - goos: windows
goarch: arm goarch: arm
- id: picoclaw-launcher-tui - id: jane-ai-launcher-tui
binary: picoclaw-launcher-tui binary: jane-ai-launcher-tui
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=0
tags: tags:
@ -108,14 +109,14 @@ builds:
goarch: arm goarch: arm
dockers_v2: dockers_v2:
- id: picoclaw - id: jane-ai
dockerfile: docker/Dockerfile.goreleaser dockerfile: docker/Dockerfile.goreleaser
extra_files: extra_files:
- docker/entrypoint.sh - docker/entrypoint.sh
ids: ids:
- picoclaw - jane-ai
images: images:
- "ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/picoclaw" - "ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/jane-ai"
- 'docker.io/{{ .Env.DOCKERHUB_IMAGE_NAME }}' - 'docker.io/{{ .Env.DOCKERHUB_IMAGE_NAME }}'
tags: tags:
- '{{ if isEnvSet "NIGHTLY_BUILD" }}nightly{{ else }}{{ .Tag }}{{ end }}' - '{{ if isEnvSet "NIGHTLY_BUILD" }}nightly{{ else }}{{ .Tag }}{{ end }}'
@ -125,14 +126,14 @@ dockers_v2:
- linux/arm64 - linux/arm64
- linux/riscv64 - linux/riscv64
- id: picoclaw-launcher - id: jane-ai-launcher
dockerfile: docker/Dockerfile.goreleaser.launcher dockerfile: docker/Dockerfile.goreleaser.launcher
ids: ids:
- picoclaw - jane-ai
- picoclaw-launcher - jane-ai-launcher
- picoclaw-launcher-tui - jane-ai-launcher-tui
images: images:
- "ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/picoclaw" - "ghcr.io/{{ .Env.GITHUB_REPOSITORY_OWNER }}/jane-ai"
- 'docker.io/{{ .Env.DOCKERHUB_IMAGE_NAME }}' - 'docker.io/{{ .Env.DOCKERHUB_IMAGE_NAME }}'
tags: tags:
- '{{ if isEnvSet "NIGHTLY_BUILD" }}nightly-launcher{{ else }}{{ .Tag }}-launcher{{ end }}' - '{{ if isEnvSet "NIGHTLY_BUILD" }}nightly-launcher{{ else }}{{ .Tag }}-launcher{{ end }}'
@ -146,9 +147,9 @@ notarize:
macos: macos:
- enabled: '{{ isEnvSet "MACOS_SIGN_P12" }}' - enabled: '{{ isEnvSet "MACOS_SIGN_P12" }}'
ids: ids:
- picoclaw - jane-ai
- picoclaw-launcher - jane-ai-launcher
- picoclaw-launcher-tui - jane-ai-launcher-tui
sign: sign:
certificate: "{{.Env.MACOS_SIGN_P12}}" certificate: "{{.Env.MACOS_SIGN_P12}}"
password: "{{.Env.MACOS_SIGN_PASSWORD}}" password: "{{.Env.MACOS_SIGN_PASSWORD}}"
@ -175,32 +176,32 @@ archives:
formats: [zip] formats: [zip]
nfpms: nfpms:
- id: picoclaw - id: jane-ai
ids: ids:
- picoclaw - jane-ai
- picoclaw-launcher - jane-ai-launcher
- picoclaw-launcher-tui - jane-ai-launcher-tui
package_name: picoclaw package_name: jane-ai
file_name_template: >- file_name_template: >-
{{ .PackageName }}_ {{ .PackageName }}_
{{- if eq .Arch "amd64" }}x86_64 {{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "arm64" }}aarch64 {{- else if eq .Arch "arm64" }}aarch64
{{- else if eq .Arch "arm" }}armv{{ .Arm }} {{- else if eq .Arch "arm" }}armv{{ .Arm }}
{{- else }}{{ .Arch }}{{ end }} {{- else }}{{ .Arch }}{{ end }}
vendor: picoclaw vendor: jane-ai
homepage: https://github.com/{{ .Env.GITHUB_REPOSITORY_OWNER }}/picoclaw homepage: https://github.com/{{ .Env.GITHUB_REPOSITORY_OWNER }}/jane-ai
maintainer: picoclaw contributors maintainer: jane-ai contributors
description: picoclaw - a tool for managing and running tasks description: jane-ai - a tool for managing and running tasks
license: MIT license: MIT
formats: formats:
- rpm - rpm
- deb - deb
bindir: /usr/bin bindir: /usr/bin
contents: contents:
- src: web/picoclaw-launcher.desktop - src: web/jane-ai-launcher.desktop
dst: /usr/share/applications/picoclaw-launcher.desktop dst: /usr/share/applications/jane-ai-launcher.desktop
- src: web/picoclaw-launcher.png - src: web/jane-ai-launcher.png
dst: /usr/share/icons/hicolor/512x512/apps/picoclaw-launcher.png dst: /usr/share/icons/hicolor/512x512/apps/jane-ai-launcher.png
changelog: changelog:
sort: asc sort: asc

View file

@ -1,9 +1,9 @@
.PHONY: all build install uninstall clean help test .PHONY: all build install uninstall clean help test
# Build variables # Build variables
BINARY_NAME=picoclaw BINARY_NAME=jane-ai
BUILD_DIR=build BUILD_DIR=build
CMD_DIR=cmd/$(BINARY_NAME) CMD_DIR=cmd/picoclaw
MAIN_GO=$(CMD_DIR)/main.go MAIN_GO=$(CMD_DIR)/main.go
# Version # Version
@ -11,7 +11,7 @@ VERSION?=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
GIT_COMMIT=$(shell git rev-parse --short=8 HEAD 2>/dev/null || echo "dev") GIT_COMMIT=$(shell git rev-parse --short=8 HEAD 2>/dev/null || echo "dev")
BUILD_TIME=$(shell date +%FT%T%z) BUILD_TIME=$(shell date +%FT%T%z)
GO_VERSION=$(shell $(GO) version | awk '{print $$3}') GO_VERSION=$(shell $(GO) version | awk '{print $$3}')
CONFIG_PKG=github.com/sipeed/picoclaw/pkg/config CONFIG_PKG=jane/pkg/config
LDFLAGS=-ldflags "-X $(CONFIG_PKG).Version=$(VERSION) -X $(CONFIG_PKG).GitCommit=$(GIT_COMMIT) -X $(CONFIG_PKG).BuildTime=$(BUILD_TIME) -X $(CONFIG_PKG).GoVersion=$(GO_VERSION) -s -w" LDFLAGS=-ldflags "-X $(CONFIG_PKG).Version=$(VERSION) -X $(CONFIG_PKG).GitCommit=$(GIT_COMMIT) -X $(CONFIG_PKG).BuildTime=$(BUILD_TIME) -X $(CONFIG_PKG).GoVersion=$(GO_VERSION) -s -w"
# Go variables # Go variables
@ -50,8 +50,8 @@ INSTALL_MAN_DIR=$(INSTALL_PREFIX)/share/man/man1
INSTALL_TMP_SUFFIX=.new INSTALL_TMP_SUFFIX=.new
# Workspace and Skills # Workspace and Skills
PICOCLAW_HOME?=$(HOME)/.picoclaw JANE_AI_HOME?=$(HOME)/.jane-ai
WORKSPACE_DIR?=$(PICOCLAW_HOME)/workspace WORKSPACE_DIR?=$(JANE_AI_HOME)/workspace
WORKSPACE_SKILLS_DIR=$(WORKSPACE_DIR)/skills WORKSPACE_SKILLS_DIR=$(WORKSPACE_DIR)/skills
BUILTIN_SKILLS_DIR=$(CURDIR)/skills BUILTIN_SKILLS_DIR=$(CURDIR)/skills
@ -103,7 +103,7 @@ generate:
@$(GO) generate ./... @$(GO) generate ./...
@echo "Run generate complete" @echo "Run generate complete"
## build: Build the picoclaw binary for current platform ## build: Build the jane-ai binary for current platform
build: generate build: generate
@echo "Building $(BINARY_NAME) for $(PLATFORM)/$(ARCH)..." @echo "Building $(BINARY_NAME) for $(PLATFORM)/$(ARCH)..."
@mkdir -p $(BUILD_DIR) @mkdir -p $(BUILD_DIR)
@ -111,17 +111,17 @@ build: generate
@echo "Build complete: $(BINARY_PATH)" @echo "Build complete: $(BINARY_PATH)"
@ln -sf $(BINARY_NAME)-$(PLATFORM)-$(ARCH) $(BUILD_DIR)/$(BINARY_NAME) @ln -sf $(BINARY_NAME)-$(PLATFORM)-$(ARCH) $(BUILD_DIR)/$(BINARY_NAME)
## build-launcher: Build the picoclaw-launcher (web console) binary ## build-launcher: Build the jane-ai-launcher (web console) binary
build-launcher: build-launcher:
@echo "Building picoclaw-launcher for $(PLATFORM)/$(ARCH)..." @echo "Building jane-ai-launcher for $(PLATFORM)/$(ARCH)..."
@mkdir -p $(BUILD_DIR) @mkdir -p $(BUILD_DIR)
@if [ ! -f web/backend/dist/index.html ]; then \ @if [ ! -f web/backend/dist/index.html ]; then \
echo "Building frontend..."; \ echo "Building frontend..."; \
cd web/frontend && pnpm install && pnpm build:backend; \ cd web/frontend && bun install && bun run build:backend; \
fi fi
@$(GO) build $(GOFLAGS) -o $(BUILD_DIR)/picoclaw-launcher-$(PLATFORM)-$(ARCH) ./web/backend @$(GO) build $(GOFLAGS) -o $(BUILD_DIR)/jane-ai-launcher-$(PLATFORM)-$(ARCH) ./web/backend
@ln -sf picoclaw-launcher-$(PLATFORM)-$(ARCH) $(BUILD_DIR)/picoclaw-launcher @ln -sf jane-ai-launcher-$(PLATFORM)-$(ARCH) $(BUILD_DIR)/jane-ai-launcher
@echo "Build complete: $(BUILD_DIR)/picoclaw-launcher" @echo "Build complete: $(BUILD_DIR)/jane-ai-launcher"
## build-whatsapp-native: Build with WhatsApp native (whatsmeow) support; larger binary ## build-whatsapp-native: Build with WhatsApp native (whatsmeow) support; larger binary
build-whatsapp-native: generate build-whatsapp-native: generate
@ -167,7 +167,7 @@ build-linux-mipsle: generate
build-pi-zero: build-linux-arm build-linux-arm64 build-pi-zero: build-linux-arm build-linux-arm64
@echo "Pi Zero 2 W builds: $(BUILD_DIR)/$(BINARY_NAME)-linux-arm (32-bit), $(BUILD_DIR)/$(BINARY_NAME)-linux-arm64 (64-bit)" @echo "Pi Zero 2 W builds: $(BUILD_DIR)/$(BINARY_NAME)-linux-arm (32-bit), $(BUILD_DIR)/$(BINARY_NAME)-linux-arm64 (64-bit)"
## build-all: Build picoclaw for all platforms ## build-all: Build jane-ai for all platforms
build-all: generate build-all: generate
@echo "Building for multiple platforms..." @echo "Building for multiple platforms..."
@mkdir -p $(BUILD_DIR) @mkdir -p $(BUILD_DIR)
@ -183,7 +183,7 @@ build-all: generate
GOOS=windows GOARCH=amd64 $(GO) build $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe ./$(CMD_DIR) GOOS=windows GOARCH=amd64 $(GO) build $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe ./$(CMD_DIR)
@echo "All builds complete" @echo "All builds complete"
## install: Install picoclaw to system and copy builtin skills ## install: Install jane-ai to system and copy builtin skills
install: build install: build
@echo "Installing $(BINARY_NAME)..." @echo "Installing $(BINARY_NAME)..."
@mkdir -p $(INSTALL_BIN_DIR) @mkdir -p $(INSTALL_BIN_DIR)
@ -194,7 +194,7 @@ install: build
@echo "Installed binary to $(INSTALL_BIN_DIR)/$(BINARY_NAME)" @echo "Installed binary to $(INSTALL_BIN_DIR)/$(BINARY_NAME)"
@echo "Installation complete!" @echo "Installation complete!"
## uninstall: Remove picoclaw from system ## uninstall: Remove jane-ai from system
uninstall: uninstall:
@echo "Uninstalling $(BINARY_NAME)..." @echo "Uninstalling $(BINARY_NAME)..."
@rm -f $(INSTALL_BIN_DIR)/$(BINARY_NAME) @rm -f $(INSTALL_BIN_DIR)/$(BINARY_NAME)
@ -202,11 +202,11 @@ uninstall:
@echo "Note: Only the executable file has been deleted." @echo "Note: Only the executable file has been deleted."
@echo "If you need to delete all configurations (config.json, workspace, etc.), run 'make uninstall-all'" @echo "If you need to delete all configurations (config.json, workspace, etc.), run 'make uninstall-all'"
## uninstall-all: Remove picoclaw and all data ## uninstall-all: Remove jane-ai and all data
uninstall-all: uninstall-all:
@echo "Removing workspace and skills..." @echo "Removing workspace and skills..."
@rm -rf $(PICOCLAW_HOME) @rm -rf $(JANE_AI_HOME)
@echo "Removed workspace: $(PICOCLAW_HOME)" @echo "Removed workspace: $(JANE_AI_HOME)"
@echo "Complete uninstallation done!" @echo "Complete uninstallation done!"
## clean: Remove build artifacts ## clean: Remove build artifacts
@ -248,7 +248,7 @@ update-deps:
## check: Run vet, fmt, and verify dependencies ## check: Run vet, fmt, and verify dependencies
check: deps fmt vet test check: deps fmt vet test
## run: Build and run picoclaw ## run: Build and run jane-ai
run: build run: build
@$(BUILD_DIR)/$(BINARY_NAME) $(ARGS) @$(BUILD_DIR)/$(BINARY_NAME) $(ARGS)
@ -268,19 +268,19 @@ docker-test:
@chmod +x scripts/test-docker-mcp.sh @chmod +x scripts/test-docker-mcp.sh
@./scripts/test-docker-mcp.sh @./scripts/test-docker-mcp.sh
## docker-run: Run picoclaw gateway in Docker (Alpine-based) ## docker-run: Run jane-ai gateway in Docker (Alpine-based)
docker-run: docker-run:
docker compose -f docker/docker-compose.yml --profile gateway up docker compose -f docker/docker-compose.yml --profile gateway up
## docker-run-full: Run picoclaw gateway in Docker (full-featured) ## docker-run-full: Run jane-ai gateway in Docker (full-featured)
docker-run-full: docker-run-full:
docker compose -f docker/docker-compose.full.yml --profile gateway up docker compose -f docker/docker-compose.full.yml --profile gateway up
## docker-run-agent: Run picoclaw agent in Docker (interactive, Alpine-based) ## docker-run-agent: Run jane-ai agent in Docker (interactive, Alpine-based)
docker-run-agent: docker-run-agent:
docker compose -f docker/docker-compose.yml run --rm picoclaw-agent docker compose -f docker/docker-compose.yml run --rm picoclaw-agent
## docker-run-agent-full: Run picoclaw agent in Docker (interactive, full-featured) ## docker-run-agent-full: Run jane-ai agent in Docker (interactive, full-featured)
docker-run-agent-full: docker-run-agent-full:
docker compose -f docker/docker-compose.full.yml run --rm picoclaw-agent docker compose -f docker/docker-compose.full.yml run --rm picoclaw-agent
@ -288,11 +288,11 @@ docker-run-agent-full:
docker-clean: docker-clean:
docker compose -f docker/docker-compose.yml down -v docker compose -f docker/docker-compose.yml down -v
docker compose -f docker/docker-compose.full.yml down -v docker compose -f docker/docker-compose.full.yml down -v
docker rmi picoclaw:latest picoclaw:full 2>/dev/null || true docker rmi jane-ai:latest jane-ai:full 2>/dev/null || true
## help: Show this help message ## help: Show this help message
help: help:
@echo "picoclaw Makefile" @echo "jane-ai Makefile"
@echo "" @echo ""
@echo "Usage:" @echo "Usage:"
@echo " make [target]" @echo " make [target]"
@ -310,7 +310,7 @@ help:
@echo "" @echo ""
@echo "Environment Variables:" @echo "Environment Variables:"
@echo " INSTALL_PREFIX # Installation prefix (default: ~/.local)" @echo " INSTALL_PREFIX # Installation prefix (default: ~/.local)"
@echo " WORKSPACE_DIR # Workspace directory (default: ~/.picoclaw/workspace)" @echo " WORKSPACE_DIR # Workspace directory (default: ~/.jane-ai/workspace)"
@echo " VERSION # Version string (default: git describe)" @echo " VERSION # Version string (default: git describe)"
@echo "" @echo ""
@echo "Current Configuration:" @echo "Current Configuration:"

View file

@ -1,5 +1,5 @@
# ============================================================ # ============================================================
# Stage 1: Build the picoclaw binary # Stage 1: Build the jane-ai binary
# ============================================================ # ============================================================
FROM golang:1.25-alpine AS builder FROM golang:1.25-alpine AS builder
@ -27,17 +27,17 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget -q --spider http://localhost:18790/health || exit 1 CMD wget -q --spider http://localhost:18790/health || exit 1
# Copy binary # Copy binary
COPY --from=builder /src/build/picoclaw /usr/local/bin/picoclaw COPY --from=builder /src/build/jane-ai /usr/local/bin/jane-ai
# Create non-root user and group # Create non-root user and group
RUN addgroup -g 1000 picoclaw && \ RUN addgroup -g 1000 jane-ai && \
adduser -D -u 1000 -G picoclaw picoclaw adduser -D -u 1000 -G jane-ai jane-ai
# Switch to non-root user # Switch to non-root user
USER picoclaw USER jane-ai
# Run onboard to create initial directories and config # Run onboard to create initial directories and config
RUN /usr/local/bin/picoclaw onboard RUN /usr/local/bin/jane-ai onboard
ENTRYPOINT ["picoclaw"] ENTRYPOINT ["jane-ai"]
CMD ["gateway"] CMD ["gateway"]

View file

@ -1,5 +1,5 @@
# ============================================================ # ============================================================
# Stage 1: Build the picoclaw binary # Stage 1: Build the jane-ai binary
# ============================================================ # ============================================================
FROM golang:1.26.0-alpine AS builder FROM golang:1.26.0-alpine AS builder
@ -35,10 +35,10 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
uv --version uv --version
# Copy binary # Copy binary
COPY --from=builder /src/build/picoclaw /usr/local/bin/picoclaw COPY --from=builder /src/build/jane-ai /usr/local/bin/jane-ai
# Create picoclaw home directory # Create jane-ai home directory
RUN /usr/local/bin/picoclaw onboard RUN /usr/local/bin/jane-ai onboard
ENTRYPOINT ["picoclaw"] ENTRYPOINT ["jane-ai"]
CMD ["gateway"] CMD ["gateway"]

View file

@ -4,7 +4,7 @@ ARG TARGETPLATFORM
RUN apk add --no-cache ca-certificates tzdata RUN apk add --no-cache ca-certificates tzdata
COPY $TARGETPLATFORM/picoclaw /usr/local/bin/picoclaw COPY $TARGETPLATFORM/jane-ai /usr/local/bin/jane-ai
COPY docker/entrypoint.sh /entrypoint.sh COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh

View file

@ -4,9 +4,9 @@ ARG TARGETPLATFORM
RUN apk add --no-cache ca-certificates tzdata RUN apk add --no-cache ca-certificates tzdata
COPY $TARGETPLATFORM/picoclaw /usr/local/bin/picoclaw COPY $TARGETPLATFORM/jane-ai /usr/local/bin/jane-ai
COPY $TARGETPLATFORM/picoclaw-launcher /usr/local/bin/picoclaw-launcher COPY $TARGETPLATFORM/jane-ai-launcher /usr/local/bin/jane-ai-launcher
COPY $TARGETPLATFORM/picoclaw-launcher-tui /usr/local/bin/picoclaw-launcher-tui COPY $TARGETPLATFORM/jane-ai-launcher-tui /usr/local/bin/jane-ai-launcher-tui
ENTRYPOINT ["picoclaw-launcher"] ENTRYPOINT ["jane-ai-launcher"]
CMD ["-public", "-no-browser"] CMD ["-public", "-no-browser"]

View file

@ -16,7 +16,7 @@ RUN go mod tidy && make build && make build-launcher
FROM alpine:3.23 FROM alpine:3.23
RUN apk add --no-cache ca-certificates tzdata RUN apk add --no-cache ca-certificates tzdata
COPY --from=builder /src/build/picoclaw /usr/local/bin/picoclaw COPY --from=builder /src/build/jane-ai /usr/local/bin/jane-ai
COPY --from=builder /src/build/picoclaw-launcher /usr/local/bin/picoclaw-launcher COPY --from=builder /src/build/jane-ai-launcher /usr/local/bin/jane-ai-launcher
ENTRYPOINT ["picoclaw-launcher"] ENTRYPOINT ["jane-ai-launcher"]
CMD ["-public", "-no-browser"] CMD ["-public", "-no-browser"]

View file

@ -5,7 +5,7 @@
*.dylib *.dylib
*.test *.test
*.out *.out
picoclaw-web jane-ai-web
# Frontend build artifacts (embedded by Go) # Frontend build artifacts (embedded by Go)
dist/* dist/*

View file

@ -133,7 +133,7 @@ func isCmdProcessAliveLocked(cmd *exec.Cmd) bool {
} }
func (h *Handler) startGatewayLocked() (int, error) { func (h *Handler) startGatewayLocked() (int, error) {
// Locate the picoclaw executable // Locate the Jane AI executable
execPath := utils.FindPicoclawBinary() execPath := utils.FindPicoclawBinary()
cmd := exec.Command(execPath, "gateway") cmd := exec.Command(execPath, "gateway")
@ -173,7 +173,7 @@ func (h *Handler) startGatewayLocked() (int, error) {
gateway.cmd = cmd gateway.cmd = cmd
pid := cmd.Process.Pid pid := cmd.Process.Pid
logger.InfoCF("gateway", "Started picoclaw gateway", map[string]any{"pid": pid, "execPath": execPath}) logger.InfoCF("gateway", "Started Jane AI gateway", map[string]any{"pid": pid, "execPath": execPath})
// Broadcast starting event // Broadcast starting event
gateway.events.Broadcast(GatewayEvent{Status: "starting", PID: pid}) gateway.events.Broadcast(GatewayEvent{Status: "starting", PID: pid})
@ -235,7 +235,7 @@ func (h *Handler) startGatewayLocked() (int, error) {
return pid, nil return pid, nil
} }
// handleGatewayStart starts the picoclaw gateway subprocess. // handleGatewayStart starts the Jane AI gateway subprocess.
// //
// POST /api/gateway/start // POST /api/gateway/start
func (h *Handler) handleGatewayStart(w http.ResponseWriter, r *http.Request) { func (h *Handler) handleGatewayStart(w http.ResponseWriter, r *http.Request) {

View file

@ -492,7 +492,7 @@ func (h *Handler) handleOAuthLogout(w http.ResponseWriter, r *http.Request) {
func renderOAuthCallbackPage(w http.ResponseWriter, flowID, status, title, errMsg string) { func renderOAuthCallbackPage(w http.ResponseWriter, flowID, status, title, errMsg string) {
payload := map[string]string{ payload := map[string]string{
"type": "picoclaw-oauth-result", "type": "jane-ai-oauth-result",
"flowId": flowID, "flowId": flowID,
"status": status, "status": status,
} }
@ -515,7 +515,7 @@ func renderOAuthCallbackPage(w http.ResponseWriter, flowID, status, title, errMs
_, _ = fmt.Fprintf( _, _ = fmt.Fprintf(
w, w,
"<!doctype html><html><head><meta charset=\"utf-8\"><title>PicoClaw OAuth</title></head><body><script>(function(){var payload=%s;var hasOpener=false;try{if(window.opener&&!window.opener.closed){window.opener.postMessage(payload,window.location.origin);hasOpener=true}}catch(e){}var target='/credentials?oauth_flow_id='+encodeURIComponent(payload.flowId||'')+'&oauth_status='+encodeURIComponent(payload.status||'');setTimeout(function(){if(hasOpener){window.close();return}window.location.replace(target)},800)})();</script><div style=\"font-family:Inter,system-ui,sans-serif;padding:24px\"><h2>%s</h2><p>%s</p><p>You can close this window.</p></div></body></html>", "<!doctype html><html><head><meta charset=\"utf-8\"><title>Jane AI OAuth</title></head><body><script>(function(){var payload=%s;var hasOpener=false;try{if(window.opener&&!window.opener.closed){window.opener.postMessage(payload,window.location.origin);hasOpener=true}}catch(e){}var target='/credentials?oauth_flow_id='+encodeURIComponent(payload.flowId||'')+'&oauth_status='+encodeURIComponent(payload.status||'');setTimeout(function(){if(hasOpener){window.close();return}window.location.replace(target)},800)})();</script><div style=\"font-family:Inter,system-ui,sans-serif;padding:24px\"><h2>%s</h2><p>%s</p><p>You can close this window.</p></div></body></html>",
string(payloadJSON), string(payloadJSON),
html.EscapeString(title), html.EscapeString(title),
html.EscapeString(message), html.EscapeString(message),

View file

@ -14,8 +14,8 @@ import (
) )
const ( const (
autoStartEntryName = "PicoClawLauncher" autoStartEntryName = "JaneAILauncher"
launchAgentLabel = "io.picoclaw.launcher" launchAgentLabel = "io.jane-ai.launcher"
) )
type autoStartRequest struct { type autoStartRequest struct {
@ -215,7 +215,7 @@ func buildDarwinPlist(exePath string, args []string) string {
func linuxAutoStartPath() string { func linuxAutoStartPath() string {
home, _ := os.UserHomeDir() home, _ := os.UserHomeDir()
return filepath.Join(home, ".config", "autostart", "picoclaw-web.desktop") return filepath.Join(home, ".config", "autostart", "jane-ai-web.desktop")
} }
func shellQuote(s string) string { func shellQuote(s string) string {
@ -247,8 +247,8 @@ func setLinuxAutoStart(enabled bool, exePath string, args []string) error {
"[Desktop Entry]", "[Desktop Entry]",
"Type=Application", "Type=Application",
"Version=1.0", "Version=1.0",
"Name=PicoClaw Web", "Name=Jane AI Web",
"Comment=Start PicoClaw Web on login", "Comment=Start Jane AI Web on login",
"Exec=" + buildLinuxExecLine(exePath, args), "Exec=" + buildLinuxExecLine(exePath, args),
"Terminal=false", "Terminal=false",
"X-GNOME-Autostart-enabled=true", "X-GNOME-Autostart-enabled=true",

View file

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB