Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
e9faab7
docs: add comprehensive package documentation and architecture guides
jryannel Jan 28, 2026
7edd4b4
build: add test:cover task to generate coverage report
jryannel Jan 28, 2026
7736750
feat: add git workflow commands for feature development
jryannel Jan 28, 2026
2614cd6
docs: add test coverage expansion plan
jryannel Jan 28, 2026
44adf35
docs: add comprehensive package documentation and architecture guides
jryannel Jan 28, 2026
44294da
build: add test:cover task to generate coverage report
jryannel Jan 28, 2026
c61d554
feat: add git workflow commands for feature development
jryannel Jan 28, 2026
94e4af1
docs: add test coverage expansion plan
jryannel Jan 28, 2026
a6886f8
refactor: remove pkg/sim JavaScript simulation engine
jryannel Jan 29, 2026
9567654
refactor: remove NATS dependencies and replace with stubs
jryannel Jan 29, 2026
9c85d28
test: implement Phase 1 test coverage expansion
jryannel Jan 29, 2026
4ceef75
test: implement Phase 2 test coverage expansion (partial)
jryannel Jan 29, 2026
8196a73
test: expand pkg/spec test coverage (Phase 2.3)
jryannel Jan 29, 2026
4f43aa3
test: add pkg/git pure function tests (Phase 3.1 partial)
jryannel Jan 29, 2026
cf6c0e2
test: expand pkg/mon test coverage (Phase 3.3)
jryannel Jan 30, 2026
a5e0a59
test: add pkg/net tests (Phase 3.2)
jryannel Jan 30, 2026
c829775
test: expand pkg/cmd/cfg test coverage (Phase 4.1)
jryannel Jan 30, 2026
31918bd
test: add comprehensive tests for pkg/cmd/gen package
jryannel Jan 30, 2026
687b00f
test: add comprehensive tests for pkg/cmd/{spec,mon,x} packages
jryannel Jan 30, 2026
a83260c
docs: add Phase 4 completion summary and final coverage report
jryannel Jan 30, 2026
4ae2cb8
docs: add comprehensive final summary of test coverage expansion
jryannel Jan 30, 2026
49d34f8
added testscript support
jryannel Feb 9, 2026
dff9967
Merge branch 'main' of https://github.com/apigear-io/cli
jryannel Feb 9, 2026
57ad5a5
refactor: consolidate packages into domain-based architecture
jryannel Feb 9, 2026
f3f1af1
fix: restore missing testdata for apimodel package
jryannel Feb 9, 2026
26d5301
refactor: rename apimodel to objmodel
jryannel Feb 9, 2026
59ed807
docs: add REST API and web UI architecture plan
jryannel Feb 10, 2026
222a3b8
docs: remove outdated auto-generated CLI documentation
jryannel Feb 10, 2026
eca0071
docs: update ARCHITECTURE.md to reflect domain-based reorganization
jryannel Feb 10, 2026
caa3daa
fix: update Go to 1.25.7 and patch security vulnerabilities
jryannel Feb 10, 2026
4445b1d
fix: address remaining Dependabot security alerts
jryannel Feb 10, 2026
b914e8d
cleanup unwanted files
jryannel Feb 13, 2026
98052be
feat: add HTTP REST API server with health and status endpoints
jryannel Feb 13, 2026
bbd8c8c
refactor: move monitor handlers to internal/handler for consistency
jryannel Feb 13, 2026
8788878
refactor: remove NetworkManager layer to simplify architecture
jryannel Feb 13, 2026
8f93753
refactor: centralize routing and relocate swagger docs
jryannel Feb 13, 2026
99dcbc5
chore: mark swagger dependencies as direct
jryannel Feb 13, 2026
d875e8d
feat: add React web UI with embedded serving
jryannel Feb 16, 2026
67d89da
feat: add template management feature to web UI
jryannel Feb 16, 2026
5ce8f82
feat: add frontend tasks and unified build operations
jryannel Feb 16, 2026
dacd88c
feat: add comprehensive development environment setup
jryannel Feb 17, 2026
dc74a6b
fix: template list ordering and version comparison issues
jryannel Feb 17, 2026
b76782f
feat: use semantic versioning for template version comparison
jryannel Feb 17, 2026
3ad883e
feat: add GitHub repository links to template cards
jryannel Feb 17, 2026
b7efc14
feat: add version selector for template installation
jryannel Feb 17, 2026
8c803d7
fix: remove duplicate version selector UI
jryannel Feb 17, 2026
e565330
feat: add comprehensive testing setup and migrate to useSuspenseQuery
jryannel Feb 17, 2026
2b4ccce
ci: update GitHub workflows to Go 1.26 and add frontend testing
jryannel Feb 17, 2026
07ccaf9
fix: build frontend before backend tests to satisfy embed directive
jryannel Feb 17, 2026
25e0a89
fix: resolve TypeScript build errors in tests
jryannel Feb 17, 2026
054700e
refactor: simplify CI workflow to use task ci:all command
jryannel Feb 17, 2026
df6dfa2
chore: remove golangci-lint from CI pipeline
jryannel Feb 17, 2026
2ae474e
feat: migrate to ESLint v9 flat config
jryannel Feb 17, 2026
2093b0b
docs: clarify ESLint is for linting only, not formatting
jryannel Feb 17, 2026
d145485
fix: remove -race flag from test:ci (requires CGO)
jryannel Feb 17, 2026
28f23a5
fix: skip network-dependent tests in CI with -short flag
jryannel Feb 17, 2026
9cb2747
fix: resolve golangci-lint errors across codebase
jryannel Feb 18, 2026
a849d72
feat: add WebSocket proxy and ObjectLink client management (Stream mo…
jryannel Feb 19, 2026
2f622f5
test: add comprehensive WebSocket testing suite for stream proxy
jryannel Feb 19, 2026
624aa78
feat: add complete UI for Stream module (scripting, traces, live viewer)
jryannel Feb 19, 2026
0f6195d
feat: add Stream Editor for trace analysis and manipulation
jryannel Feb 20, 2026
9420698
feat(stream): enhance dashboard with wsproxy-inspired design
jryannel Feb 20, 2026
836ccf8
feat(stream): enhance proxies page with wsproxy-inspired card design
jryannel Feb 20, 2026
d5372e7
feat: enhance Clients page with card-based layout
jryannel Feb 20, 2026
fc03b20
feat: enhance Scripting page to match wsproxy design
jryannel Feb 20, 2026
d7c05e5
feat: enhance Stream Files (Traces) page to match wsproxy design
jryannel Feb 20, 2026
8b7bba5
feat: polish Stream Editor to match wsproxy design
jryannel Feb 20, 2026
c97688f
feat: implement Stream Player backend API
jryannel Feb 20, 2026
5bc2baf
feat: implement Stream Player frontend UI
jryannel Feb 20, 2026
8c61a44
feat: implement Application Logs backend API
jryannel Feb 20, 2026
cda945a
feat: implement Application Logs frontend UI
jryannel Feb 20, 2026
2c54b42
feat: implement real-time message streaming with MessageHub
jryannel Feb 20, 2026
7488cfa
feat: implement Trace Generator with faker functions
jryannel Feb 20, 2026
7cd4eaf
feat: implement Settings page with configuration info
jryannel Feb 20, 2026
118de09
refactor: separate CodeGen and Stream into distinct route groups
jryannel Feb 20, 2026
a52675e
chore: update app titles to reflect mode (ApiGear CodeGen / ApiGear S…
jryannel Feb 20, 2026
e4b1633
test: add comprehensive handler tests for stream endpoints
jryannel Feb 24, 2026
0c0e71f
feat: add file-based persistence for stream proxies and clients
jryannel Feb 24, 2026
10b6672
feat: add stream proxy UI improvements and detail page
jryannel Feb 24, 2026
6be2c1f
feat: add help system with syntax highlighting for scripting
jryannel Feb 24, 2026
60e88d4
fix: improve script output access and stop responsiveness
jryannel Feb 24, 2026
61bbef8
fix: remove duplicate Stop button from scripting page
jryannel Feb 24, 2026
585f516
refactor: move Save button to script section for consistent action gr…
jryannel Feb 24, 2026
c41dc35
docs: update scripting examples and help to match actual API implemen…
jryannel Feb 24, 2026
23d06d1
feat: implement backend server with objectlink-core-go integration
jryannel Feb 24, 2026
807846b
feat: restart script if already running instead of launching duplicate
jryannel Feb 24, 2026
65ea6f6
feat: add comprehensive HTTP logging and error logging for stream API
jryannel Feb 24, 2026
e500ef5
feat: upgrade logs UI to Mantine DataTable with compact format
jryannel Feb 24, 2026
d2e0b2b
feat: use JsonInput for better JSON display in log tooltips
jryannel Feb 24, 2026
5f53c08
style: improve tooltip appearance with card-like design
jryannel Feb 24, 2026
0fae818
refactor: use Paper component for cleaner card appearance in tooltips
jryannel Feb 24, 2026
1e974c4
feat: add pagination to logs table for better performance
jryannel Feb 24, 2026
9016fa6
feat: add multi-select and bulk copy to clipboard for log entries
jryannel Feb 24, 2026
49cb44f
feat: add pause/resume control for log auto-refresh
jryannel Feb 24, 2026
9f2b71f
refactor(proxy): replace per-client backend connections with fan-in/f…
jryannel Mar 3, 2026
f602ebe
feat(proxy): add verbose output support to echo server
jryannel Mar 3, 2026
88b1cfb
refactor(stream): restructure CLI with publish/subscribe commands
jryannel Mar 3, 2026
a77b138
feat(projects): add project management API endpoints
jryannel Mar 3, 2026
35228b7
feat(projects): add project management web UI
jryannel Mar 3, 2026
7c10926
chore: update air config with version ldflags and document projects f…
jryannel Mar 3, 2026
f82ec6a
fix(web): resolve eslint errors and warnings
jryannel Mar 3, 2026
929576e
feat(projects): enhance project management UI with open project, grou…
jryannel Mar 3, 2026
d10c28c
feat(web): redesign codegen dashboard and add logs page
jryannel Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
46 changes: 46 additions & 0 deletions .air.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"

[build]
args_bin = ["serve", "--port", "8080"]
bin = "./tmp/main"
cmd = "go build -ldflags=\"-X main.version=v0.50.1-dev -X main.commit=dev -X main.date=dev\" -o ./tmp/main ./cmd/apigear"
delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "testdata", "web", "node_modules", "bin", "docs"]
exclude_file = []
exclude_regex = ["_test.go"]
exclude_unchanged = false
follow_symlink = false
full_bin = ""
include_dir = []
include_ext = ["go", "tpl", "tmpl", "html"]
include_file = []
kill_delay = "0s"
log = "build-errors.log"
poll = false
poll_interval = 0
post_cmd = []
pre_cmd = []
rerun = false
rerun_delay = 500
send_interrupt = false
stop_on_error = false

[color]
app = ""
build = "yellow"
main = "magenta"
runner = "green"
watcher = "cyan"

[log]
main_only = false
time = false

[misc]
clean_on_exit = false

[screen]
clear_on_rebuild = false
keep_scroll = true
76 changes: 76 additions & 0 deletions .claude/commands/git-finish.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Git Finish - Complete Feature Branch

Finalize the feature branch and prepare for merging or creating a pull request.

## Instructions

1. Run `git status` to ensure all changes are committed
2. If there are uncommitted changes, prompt user to commit them first (suggest using `/git-step`)
3. Run `git log main..HEAD` to show all commits on this branch
4. Ask the user what they want to do:
- Create a pull request
- Merge directly to main (if allowed by workflow)
- Push branch without merging
- Cancel
5. Based on user choice:

### Option A: Create Pull Request
1. Ensure branch is pushed to remote: `git push -u origin <branch-name>`
2. Analyze all commits to generate PR title and description
3. Use `gh pr create` to create the pull request with:
- Title: Summarize the feature/fix
- Body: Include conventional commit format with:
- Summary section (bullet points of main changes)
- Detailed description
- Test plan (checklist of testing steps)
- Related issues (if any)
4. Return the PR URL

### Option B: Merge to Main
1. Switch to main branch
2. Pull latest changes: `git pull origin main`
3. Merge feature branch: `git merge --no-ff <branch-name>`
4. Push to remote: `git push origin main`
5. Optionally delete feature branch locally and remotely
6. Confirm merge successful

### Option C: Push Only
1. Push branch to remote: `git push -u origin <branch-name>`
2. Provide instructions for creating PR manually
3. Confirm push successful

## Pull Request Template

```markdown
## Summary
- <bullet point of main change>
- <bullet point of another change>

## Description
<Detailed description of what was done and why>

## Test Plan
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed
- [ ] Documentation updated

## Related Issues
Closes #<issue-number>
```

## Pre-Merge Checklist

Before finishing, verify:
- [ ] All tests pass
- [ ] Code follows project conventions
- [ ] Documentation is updated
- [ ] No merge conflicts with main
- [ ] Commit messages follow conventional commits
- [ ] No sensitive data in commits

## Branch Cleanup

After successful merge, optionally:
- Delete local branch: `git branch -d <branch-name>`
- Delete remote branch: `git push origin --delete <branch-name>`
38 changes: 38 additions & 0 deletions .claude/commands/git-start.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Git Start - Create Feature Branch

Create a new feature branch from the main branch following best practices.

## Instructions

1. Ask the user for a feature name/description if not provided as an argument
2. Generate a branch name using the format: `feature/<descriptive-name>` or `fix/<descriptive-name>`
- Use kebab-case for the branch name
- Keep it concise but descriptive
- Suggest the branch name to the user for approval
3. Check the current git status to ensure working directory is clean
4. If there are uncommitted changes, ask the user what to do (commit, stash, or abort)
5. Switch to main branch and pull latest changes
6. Create and checkout the new feature branch
7. Confirm the new branch has been created and is active

## Example Usage

```
/git-start user-authentication
/git-start fix login bug
/git-start
```

## Branch Naming Convention

- `feature/<name>` - For new features
- `fix/<name>` - For bug fixes
- `refactor/<name>` - For refactoring
- `docs/<name>` - For documentation changes
- `test/<name>` - For test improvements

## Best Practices

- Always start from an updated main branch
- Use descriptive branch names that reflect the work
- Ensure working directory is clean before branching
69 changes: 69 additions & 0 deletions .claude/commands/git-step.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Git Step - Commit Changes with Conventional Commits

Commit current changes using conventional commit format.

## Instructions

1. Run `git status` to check for changes
2. Run `git diff` to see the changes
3. Analyze the changes and determine the appropriate conventional commit type
4. Draft a conventional commit message following the format:
```
<type>(<scope>): <description>

[optional body]

[optional footer]
```
5. Present the commit message to the user for approval
6. Stage the relevant files using `git add`
7. Create the commit with the approved message
8. Confirm the commit was successful with `git log -1`

## Conventional Commit Types

- `feat` - A new feature
- `fix` - A bug fix
- `docs` - Documentation only changes
- `style` - Changes that don't affect code meaning (formatting, etc.)
- `refactor` - Code change that neither fixes a bug nor adds a feature
- `perf` - Performance improvement
- `test` - Adding or correcting tests
- `build` - Changes to build system or dependencies
- `ci` - Changes to CI configuration
- `chore` - Other changes that don't modify src or test files

## Scope Examples

- Package names: `cfg`, `gen`, `mcp`, `idl`, etc.
- Component names: `filters`, `parser`, `commands`
- Feature areas: `auth`, `templates`, `monitoring`

## Message Guidelines

- Use imperative mood in description ("add" not "added" or "adds")
- Don't capitalize first letter of description
- No period at the end of description
- Keep description under 72 characters
- Use body to explain what and why (not how)
- Reference issues in footer: `Fixes #123` or `Closes #456`

## Examples

```
feat(gen): add support for external types in JNI filter
fix(mcp): correct tool annotations for registry operations
docs: add comprehensive package documentation
test(helper): add unit tests for string utilities
refactor(cmd): simplify command flag parsing
```

## Breaking Changes

For breaking changes, add `!` after type/scope and include `BREAKING CHANGE:` in footer:
```
feat(api)!: change configuration file format

BREAKING CHANGE: Configuration files now use YAML instead of JSON.
Migration guide available in docs/migration.md
```
26 changes: 23 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,30 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v4

- uses: actions/setup-go@v5
with:
go-version: "1.26.x"

- uses: pnpm/action-setup@v4
with:
version: 9

- uses: actions/setup-node@v4
with:
go-version: 1.24.x
- run: go test ./...
node-version: '20'
cache: 'pnpm'
cache-dependency-path: 'web/pnpm-lock.yaml'

- name: Install frontend dependencies
run: cd web && pnpm install --frozen-lockfile

- name: Build frontend
run: cd web && pnpm build

- name: Run backend tests
run: go test ./...

- uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
Expand Down
30 changes: 25 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,34 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4
with:
go-version: "1.24.x"
- uses: actions/checkout@v4

- uses: actions/setup-go@v5
with:
go-version: "1.26.x"

- uses: actions/cache@v4
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: ${{ runner.os }}-${{ hashFiles('**/go.sum') }}
- run: go test ./...
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}

- uses: pnpm/action-setup@v4
with:
version: 9

- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'
cache-dependency-path: 'web/pnpm-lock.yaml'

- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Run CI checks
run: task ci:all
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,14 @@ coverage.txt

**/__debug*
apigear

# Web UI
web/node_modules/
web/dist/*
!web/dist/.gitkeep
web/.vite/
web/.pnpm-store

# Development tools
.overmind.sock
build-errors.log
Loading
Loading