Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
629968a
feat: US-001 - Migrate CLI to Cobra Framework
MiniCodeMonkey Feb 15, 2026
c6fc23e
feat: US-002 - Implement Credential Storage
MiniCodeMonkey Feb 15, 2026
51b8ff2
feat: US-003 - Implement chief login
MiniCodeMonkey Feb 15, 2026
2b0f712
feat: US-004 - Implement chief logout and Automatic Token Refresh
MiniCodeMonkey Feb 15, 2026
c45524f
feat: US-005 - Extract Shared Engine from TUI
MiniCodeMonkey Feb 15, 2026
268fe32
feat: US-006 - Implement WebSocket Client with Reconnection
MiniCodeMonkey Feb 15, 2026
c37d074
feat: US-007 - Implement Protocol Handshake
MiniCodeMonkey Feb 15, 2026
45f0591
feat: US-008 - Implement Message Types and Serialization
MiniCodeMonkey Feb 15, 2026
01006a8
feat: US-009 - Implement Basic chief serve Command
MiniCodeMonkey Feb 15, 2026
424db4c
feat: US-009 - Implement Basic chief serve Command
MiniCodeMonkey Feb 15, 2026
5835b69
feat: US-010 - Implement Workspace Scanner
MiniCodeMonkey Feb 15, 2026
4a4a82d
feat: US-011 - Implement Selective File Watching
MiniCodeMonkey Feb 15, 2026
2d9255f
feat: US-012 - Implement State Snapshot and Project Handlers
MiniCodeMonkey Feb 15, 2026
fe13e4b
feat: US-012 - Implement State Snapshot and Project Handlers
MiniCodeMonkey Feb 15, 2026
55055b2
feat: US-013 - Implement Interactive Claude PRD Sessions over WebSocket
MiniCodeMonkey Feb 15, 2026
14ac03a
feat: US-014 - Implement Session Timeout with Warnings
MiniCodeMonkey Feb 15, 2026
eedddc7
feat: US-015 - Implement Run Control via WebSocket
MiniCodeMonkey Feb 15, 2026
540c120
feat: US-016 - Implement Quota Detection and Auto-Pause
MiniCodeMonkey Feb 15, 2026
417825e
feat: US-017 - Implement Run Progress Streaming
MiniCodeMonkey Feb 15, 2026
5619507
feat: US-018 - Implement Project Settings via WebSocket
MiniCodeMonkey Feb 15, 2026
fdfae76
feat: US-019 - Implement Per-Story Logging
MiniCodeMonkey Feb 15, 2026
6da6867
feat: US-020 - Implement Per-Story Diff Generation and Retrieval
MiniCodeMonkey Feb 15, 2026
a6a6ed6
feat: US-021 - Implement Git Clone and Project Creation via WebSocket
MiniCodeMonkey Feb 15, 2026
df28929
feat: US-022 - Implement Version Check and `chief update` Command
MiniCodeMonkey Feb 15, 2026
572587f
feat: US-023 - Implement Remote Update via WebSocket
MiniCodeMonkey Feb 15, 2026
c168eba
feat: US-024 - Create Systemd Service and Cloud-Init Script
MiniCodeMonkey Feb 15, 2026
050576d
feat: US-025 - Implement One-Time Setup Token for Automated Chief Auth
MiniCodeMonkey Feb 15, 2026
14432b0
feat: US-026 - Implement WebSocket Rate Limiting
MiniCodeMonkey Feb 16, 2026
76f510c
feat: US-027 - Implement Graceful Shutdown for `chief serve`
MiniCodeMonkey Feb 16, 2026
d06835b
feat: US-028 - Implement WebSocket URL Configuration for Local Develo…
MiniCodeMonkey Feb 16, 2026
072b5bd
fix(update): don't flag dev builds as outdated when based on latest r…
MiniCodeMonkey Feb 16, 2026
9c17e79
build: output binary to bin/ directory instead of project root
MiniCodeMonkey Feb 16, 2026
9f1de29
fix(auth): add /api prefix to OAuth endpoint paths
MiniCodeMonkey Feb 16, 2026
eb8af16
fix(auth): correct device authorization URL path
MiniCodeMonkey Feb 16, 2026
62e799d
fix(serve): default --workspace to current directory
MiniCodeMonkey Feb 16, 2026
fcfcfc5
feat(ws): discover WebSocket URL from server during login and token r…
MiniCodeMonkey Feb 16, 2026
ff40884
fix(ws): round retry delay to nearest millisecond in log output
MiniCodeMonkey Feb 16, 2026
9cfb2ee
fix(prd): add --verbose flag required by stream-json output format
MiniCodeMonkey Feb 16, 2026
dc972fe
docs: Websocket refactor spec
MiniCodeMonkey Feb 16, 2026
ed190c9
feat: US-014 - HTTP uplink client — connect and disconnect
MiniCodeMonkey Feb 16, 2026
bcffa3c
feat: US-015 - HTTP uplink client — message sending
MiniCodeMonkey Feb 16, 2026
4ab3986
feat: US-016 - Message batcher
MiniCodeMonkey Feb 16, 2026
ef16f05
feat: US-017 - Pusher client for receiving commands
MiniCodeMonkey Feb 16, 2026
dc45cdb
feat: US-018 - Uplink unified interface
MiniCodeMonkey Feb 16, 2026
1bb1fe0
feat: US-019 - Heartbeat goroutine
MiniCodeMonkey Feb 16, 2026
936774e
feat: US-020 - Reconnection logic
MiniCodeMonkey Feb 16, 2026
ddb3c07
feat: US-021 - Refactor serve.go to use uplink
MiniCodeMonkey Feb 16, 2026
6fc386d
feat: US-022 - Graceful shutdown updates
MiniCodeMonkey Feb 16, 2026
d2d19b8
feat: US-023 - End-to-end integration testing
MiniCodeMonkey Feb 16, 2026
1d1ebf3
feat: US-027 - Remove old WebSocket client code
MiniCodeMonkey Feb 16, 2026
b69c621
fix(uplink): correct Pusher protocol handling for origin and data enc…
MiniCodeMonkey Feb 17, 2026
42cdf39
fix(update): handle -dirty suffix in git-describe version strings
MiniCodeMonkey Feb 17, 2026
c6e5d15
fix(auth): send grant_type and Accept header in token refresh request
MiniCodeMonkey Feb 17, 2026
e5e7417
fix(uplink): unwrap payload envelope from CommandRelayController mess…
MiniCodeMonkey Feb 17, 2026
de10961
feat: add contract testing between chief CLI and chief-uplink
MiniCodeMonkey Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
496 changes: 496 additions & 0 deletions .chief/prds/uplink/prd.json

Large diffs are not rendered by default.

536 changes: 536 additions & 0 deletions .chief/prds/uplink/progress.md

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Binaries
/chief
/bin/
*.exe

# Log files
Expand All @@ -11,3 +11,6 @@ node_modules/
# VitePress
docs/.vitepress/cache/
docs/.vitepress/dist/

# Contract fixtures (synced from chief-uplink)
contract/fixtures/
28 changes: 26 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
# Chief - Autonomous PRD Agent
# https://github.com/minicodemonkey/chief

BINARY_NAME := chief
BINARY_NAME := bin/chief
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
BUILD_DIR := ./build
MAIN_PKG := ./cmd/chief

# Go build flags
LDFLAGS := -ldflags "-X main.Version=$(VERSION)"

.PHONY: all build install test lint clean release snapshot help
.PHONY: all build install test lint clean release snapshot help sync-fixtures test-contract

all: build

## build: Build the binary
build:
@mkdir -p bin
go build $(LDFLAGS) -o $(BINARY_NAME) $(MAIN_PKG)

## install: Install to $GOPATH/bin
Expand Down Expand Up @@ -64,6 +65,29 @@ release:
run: build
./$(BINARY_NAME)

## Contract fixtures — chief-uplink is the source of truth.
## Override FIXTURES_REPO for local dev: make sync-fixtures FIXTURES_REPO=../chief-uplink/contract/fixtures
FIXTURES_REPO ?= https://raw.githubusercontent.com/MiniCodeMonkey/chief-uplink/main/contract/fixtures
FIXTURES_DIR := contract/fixtures

## sync-fixtures: Download contract fixtures from chief-uplink
sync-fixtures:
@mkdir -p $(FIXTURES_DIR)/cli-to-server $(FIXTURES_DIR)/server-to-cli
@for f in cli-to-server/connect_request.json cli-to-server/state_snapshot.json \
cli-to-server/messages_batch.json \
server-to-cli/welcome_response.json server-to-cli/command_create_project.json \
server-to-cli/command_list_projects.json server-to-cli/command_start_run.json; do \
if echo "$(FIXTURES_REPO)" | grep -q "^http"; then \
curl -sf "$(FIXTURES_REPO)/$$f" -o "$(FIXTURES_DIR)/$$f" || echo "WARN: failed to fetch $$f"; \
else \
cp "$(FIXTURES_REPO)/$$f" "$(FIXTURES_DIR)/$$f" || echo "WARN: failed to copy $$f"; \
fi; \
done

## test-contract: Run contract tests (syncs fixtures first)
test-contract: sync-fixtures
go test ./internal/contract/ -v

## help: Show this help
help:
@echo "Usage: make [target]"
Expand Down
Loading