Skip to content

Commit 10b9e04

Browse files
authored
refactor: reorganize packages into layered directory structure (#6)
1 parent 623040d commit 10b9e04

91 files changed

Lines changed: 139 additions & 115 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Makefile‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ endif
1212
.PHONY: build_macos_app
1313
build_macos_app:
1414
@echo "Building macOS..."
15-
gogio -ldflags="-X version.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=amd64 -o ./dist/amd64/${APP_NAME}.app .
16-
gogio -ldflags="-X version.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=arm64 -o ./dist/arm64/${APP_NAME}.app .
15+
gogio -ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=amd64 -o ./dist/amd64/${APP_NAME}.app .
16+
gogio -ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=arm64 -o ./dist/arm64/${APP_NAME}.app .
1717
codesign --force --deep --sign - ./dist/amd64/${APP_NAME}.app
1818
codesign --force --deep --sign - ./dist/arm64/${APP_NAME}.app
1919

@@ -61,8 +61,8 @@ build_macos_signed:
6161
fi
6262

6363
# Build apps
64-
gogio -ldflags="-X version.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=amd64 -o ./dist/amd64/${APP_NAME}.app .
65-
gogio -ldflags="-X version.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=arm64 -o ./dist/arm64/${APP_NAME}.app .
64+
gogio -ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=amd64 -o ./dist/amd64/${APP_NAME}.app .
65+
gogio -ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=$(TAG_NAME)" -appid=rest.${APP_NAME_LOWERCASE}.app -icon=./assets/appicon.png -target=macos -arch=arm64 -o ./dist/arm64/${APP_NAME}.app .
6666

6767
# Sign apps with Developer ID
6868
codesign --force --options runtime --deep -vvv --sign "$(IDENTITY)" ./dist/amd64/${APP_NAME}.app
@@ -134,14 +134,14 @@ build_windows:
134134
@echo "Building Windows..."
135135
rm -f *.syso
136136
cp assets/appicon.png .
137-
gogio -ldflags="-X version.AppVersion=${TAG_NAME}" -target=windows -arch=amd64 -o "dist/amd64/${APP_NAME}.exe" .
138-
gogio -ldflags="-X version.AppVersion=${TAG_NAME}" -target=windows -arch=arm64 -o "dist/arm64/${APP_NAME}.exe" .
137+
gogio -ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=${TAG_NAME}" -target=windows -arch=amd64 -o "dist/amd64/${APP_NAME}.exe" .
138+
gogio -ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=${TAG_NAME}" -target=windows -arch=arm64 -o "dist/arm64/${APP_NAME}.exe" .
139139
rm -f *.syso
140140

141141
.PHONY: build_linux_binary
142142
build_linux_binary:
143143
@echo "Building Linux $(LINUX_ARCH) binary..."
144-
CGO_ENABLED=1 CC=$(LINUX_CC) GOOS=linux GOARCH=$(LINUX_ARCH) go build -ldflags="-X version.AppVersion=$(TAG_NAME)" -o ./dist/linux/${APP_NAME_LOWERCASE} .
144+
CGO_ENABLED=1 CC=$(LINUX_CC) GOOS=linux GOARCH=$(LINUX_ARCH) go build -ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=$(TAG_NAME)" -o ./dist/linux/${APP_NAME_LOWERCASE} .
145145

146146
.PHONY: build_linux
147147
build_linux: build_linux_binary

‎README.md‎

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,49 @@ Project follows [Conventional Commits](https://www.conventionalcommits.org/en/v1
88

99
Prerequisites:
1010

11-
- [Go](https://go.dev/) 1.25+
11+
- [Go](https://go.dev/) 1.25.0
1212
- [golangci-lint](https://golangci-lint.run/)
1313

14-
Build & Run:
1514

1615
```sh
16+
# Build & Run:
1717
go run .
18-
```
19-
20-
Testing & Linting:
2118

22-
```sh
2319
# Run tests
2420
go test ./...
2521

26-
# Run linter (with auto-fix)
22+
# Run linter
2723
golangci-lint run --fix
2824
```
2925

26+
## Architecture
27+
28+
Dependencies point downward: Application → Infrastructure → Domain. Exception is `data/shell` → `infra/platform` for OS detection.
29+
30+
```
31+
Application Layer:
32+
main.go -> lifecycle
33+
app/ -> application state
34+
ui/ -> immediate-mode GUI rendering
35+
36+
Infrastructure Layer:
37+
infra/
38+
config/ -> configuration, persistence
39+
platform/ -> OS-specific path expansion, file ops, platform-detection
40+
hotkey/ -> global hotkey registration
41+
window/ -> window show/hide controller
42+
tray/ -> system tray icon and menu
43+
44+
Domain Layer:
45+
data/
46+
model/ -> entities & value objects
47+
cmdstore/ -> aggregate: index, search, store
48+
syntax/ -> domain service: shell command parsing
49+
shell/ -> domain service: history file ingestion
50+
tree/ -> domain service: prefix tree build & flatten
51+
search/ -> domain service: fuzzy search, trigram index, scoring
52+
```
53+
3054
## License
3155

3256
Copyright © 2026 bosiakov

‎app/state.go‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import (
77

88
"gioui.org/app"
99
"gioui.org/widget"
10-
"github.com/debrief-dev/debrief/cmdstore"
11-
"github.com/debrief-dev/debrief/config"
12-
"github.com/debrief-dev/debrief/hotkey"
13-
"github.com/debrief-dev/debrief/model"
14-
"github.com/debrief-dev/debrief/shell"
10+
"github.com/debrief-dev/debrief/data/cmdstore"
11+
"github.com/debrief-dev/debrief/data/model"
12+
"github.com/debrief-dev/debrief/data/shell"
13+
"github.com/debrief-dev/debrief/infra/config"
14+
"github.com/debrief-dev/debrief/infra/hotkey"
1515
)
1616

1717
// CommandsState holds UI and data state for the Commands tab.

‎assets/build_appstore.sh‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ EOF
146146
echo ""
147147
echo "[1/6] Building for Intel (amd64)..."
148148
gogio \
149-
-ldflags="-X version.AppVersion=$VERSION" \
149+
-ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=$VERSION" \
150150
-appid="$BUNDLE_ID" \
151151
-icon="$ICON_PNG" \
152152
-target=macos \
@@ -155,7 +155,7 @@ gogio \
155155

156156
echo "[2/6] Building for Apple Silicon (arm64)..."
157157
gogio \
158-
-ldflags="-X version.AppVersion=$VERSION" \
158+
-ldflags="-X github.com/debrief-dev/debrief/infra/config.AppVersion=$VERSION" \
159159
-appid="$BUNDLE_ID" \
160160
-icon="$ICON_PNG" \
161161
-target=macos \
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import (
44
"sort"
55
"sync"
66

7-
"github.com/debrief-dev/debrief/model"
8-
"github.com/debrief-dev/debrief/search"
9-
"github.com/debrief-dev/debrief/tree"
7+
"github.com/debrief-dev/debrief/data/model"
8+
"github.com/debrief-dev/debrief/data/search"
9+
"github.com/debrief-dev/debrief/data/tree"
1010
)
1111

1212
// CmdStore is the main container for indexed shell history.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package cmdstore
33
import (
44
"testing"
55

6-
"github.com/debrief-dev/debrief/model"
6+
"github.com/debrief-dev/debrief/data/model"
77
)
88

99
const testCmdGitStatus = "git status"
File renamed without changes.

0 commit comments

Comments
 (0)