-
Notifications
You must be signed in to change notification settings - Fork 187
feat(headless): headless server runtime, manifest-driven command adapters, security hardening, and dev-tools Docker images #379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
48 commits
Select commit
Hold shift + click to select a range
56e7833
refactor: decouple event emission from tauri AppHandle (P1.1 PR-A)
thirsty5034 08020b2
refactor: decouple tauri State/command macro from business layer (P1.…
thirsty5034 a3c3260
refactor: extract AppContext assembly, gate desktop-only modules (P1.…
thirsty5034 fcd9937
build: feature-gate Tauri deps, headless build strips Tauri (P1.2 PR-D)
thirsty5034 c7185d9
feat: add headless binary with axum server and command dispatch (P1.2…
thirsty5034 df72027
feat: add same-interface tauriBridge so WebUI can run headless (P1.2 …
thirsty5034 69d3676
ci: add headless-rust job guarding the no-default-features build (P1.…
thirsty5034 90a5d10
feat: serve WebUI statics with SPA fallback and same-origin base URL …
thirsty5034 a114e3b
fix(runtime): probe /proc for process-group liveness and pass -- to kill
thirsty5034 347994c
fix(headless): workspace picker, loopback rate-limit exemption, route…
thirsty5034 997232f
feat(gui): add HeadlessFolderPicker for workspace directory selection
thirsty5034 299ba9a
feat(gui): add common development directories to HeadlessFolderPicker…
thirsty5034 79e5264
fix(gui): simplify HeadlessFolderPicker to only include /workspace
thirsty5034 7933edc
chore(ci): add headless Docker build workflow and Dockerfile
thirsty5034 74bc685
fix(ci): upgrade Rust to 1.85 in Dockerfile for base16ct compat
thirsty5034 caaaaf0
fix(ci): upgrade Rust to 1.88 for lopdf/zip/time compat
thirsty5034 e72cd0b
fix(ci): upgrade Rust to 1.90 for libsqlite3-sys cfg_select compat
thirsty5034 eec37ee
fix(ci): upgrade Rust to 1.97 for libsqlite3-sys cfg_select (needs >=…
thirsty5034 3969203
fix(ci): install libclang-dev for rquickjs-sys bindgen in Docker build
thirsty5034 e222c1d
fix(ci): install protobuf-compiler for gateway proto compilation
thirsty5034 1f87aaf
fix(ci): point liveagent home at data volume so history db is writable
thirsty5034 55bba86
fix(ci): isolate cargo cache per arch to stop parallel buildx races
thirsty5034 04c02b1
fix(ci): embed WebUI dist in headless image and bind 0.0.0.0
thirsty5034 196c841
fix(ci): include src-tauri/icons in frontend build stage
thirsty5034 20705e2
fix(ci): add common debug/ops tools to headless runtime image
thirsty5034 7e0e8da
feat(headless): BFF proxy on main HTTP routes
thirsty5034 0064579
feat(headless): BFF proxy baseUrl from page origin in browser mode
thirsty5034 ea85083
fix(headless): match /proxy/{provider}/ trailing-slash route
thirsty5034 9f317af
feat(headless): layered dev-tools images (core/full) with mise-manage…
thirsty5034 a8a51a1
feat(headless): generator-driven adapters, same-origin security, CI g…
thirsty5034 4d992d1
fix(headless): correct stale auto-gen comments on hand-maintained dis…
thirsty5034 07bfc20
fix(docker): make toolchain reachable in non-interactive shells, add …
thirsty5034 8cbb9ae
docs: add headless WebUI screenshot placeholder for PR governance com…
thirsty5034 ea8cd6d
docs: add LiveAgent desktop UI screenshot for PR governance compliance
thirsty5034 f08bd23
Merge feat/headless-pr-g: headless server, WebUI, layered dev-tools i…
thirsty5034 00f7907
chore(docker): add standalone compose files for gateway/headless-core…
thirsty5034 bd94948
fix(ci): fix GUI biome lint errors and WebUI mirror drift
thirsty5034 7737724
fix(ci): fix remaining GUI test failures after headless merge
thirsty5034 aaa7a8e
fix(headless): raise /api/invoke body limit and add browser file-pick…
thirsty5034 b74ff46
chore(docker): persist mise toolchain via named volume, document comp…
thirsty5034 e5e7054
feat(headless): multipart file import endpoint, matching agent-gatewa…
thirsty5034 cae654e
fix(headless): keep multipart field match out of dispatch-coverage scan
thirsty5034 d7d1314
feat(docker): add minimal image profile, fix chown copy-up waste
thirsty5034 29657c9
fix(docker): reliable file perms in build, apt mirror + IPv4 for CN b…
thirsty5034 71b5ed1
merge upstream/main into feat/headless-pr-g: resolve userMessageConte…
thirsty5034 0c7f982
Merge upstream/main into feat/headless-pr-g
thirsty5034 1fb05ce
fix(headless): adapt Dockerfile.headless-tools frontend stage to pnpm…
thirsty5034 afaec2b
fix(headless): reorder imports to satisfy biome organizeImports
thirsty5034 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| name: LiveAgent Headless Tools Image (minimal/core/full) | ||
|
|
||
| # 构建并发布三个镜像到 GHCR(main 分支 push / v* tag 触发,可手动 dispatch): | ||
| # ghcr.io/<owner>/liveagent-minimal (~0.7 GB, 仅基础工具 + liveagent,生产部署推荐) | ||
| # ghcr.io/<owner>/liveagent-core (~1.8 GB, 默认开发沙箱) | ||
| # ghcr.io/<owner>/liveagent-full (~2.2 GB, 含 Java 17 + Maven, Java 8 懒加载) | ||
| # 同一 Dockerfile(Dockerfile.headless-tools),用 TARGET_PROFILE 区分; | ||
| # minimal/core/full 共享 base 层,pull 时不重复下载。 | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| tags: | ||
| - "v*" | ||
| workflow_dispatch: | ||
| inputs: | ||
| tag: | ||
| description: Existing release tag to publish, for example v0.1.0 | ||
| required: false | ||
|
|
||
| permissions: | ||
| contents: read | ||
| packages: write | ||
|
|
||
| jobs: | ||
| build-and-push: | ||
| name: Build and Push (${{ matrix.profile }}) | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - profile: minimal | ||
| image: ghcr.io/${{ github.repository_owner }}/liveagent-minimal | ||
| - profile: core | ||
| image: ghcr.io/${{ github.repository_owner }}/liveagent-core | ||
| - profile: full | ||
| image: ghcr.io/${{ github.repository_owner }}/liveagent-full | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| with: | ||
| ref: ${{ github.event.inputs.tag || github.ref }} | ||
|
|
||
| - uses: docker/setup-qemu-action@v3 | ||
|
|
||
| - uses: docker/setup-buildx-action@v3 | ||
|
|
||
| - name: Log in to GHCR | ||
| uses: docker/login-action@v3 | ||
| with: | ||
| registry: ghcr.io | ||
| username: ${{ github.actor }} | ||
| password: ${{ secrets.GITHUB_TOKEN }} | ||
|
|
||
| - name: Docker metadata | ||
| id: meta | ||
| uses: docker/metadata-action@v5 | ||
| with: | ||
| images: ${{ matrix.image }} | ||
| flavor: | | ||
| latest=false | ||
| tags: | | ||
| type=raw,value=${{ github.event.inputs.tag || github.ref_name }} | ||
| type=raw,value=latest,enable=${{ github.event.inputs.tag == '' && startsWith(github.ref, 'refs/tags/') }} | ||
|
|
||
| - name: Build and push | ||
| uses: docker/build-push-action@v6 | ||
| with: | ||
| context: . | ||
| file: Dockerfile.headless-tools | ||
| build-args: | | ||
| TARGET_PROFILE=${{ matrix.profile }} | ||
| platforms: linux/amd64,linux/arm64 | ||
| push: true | ||
| tags: ${{ steps.meta.outputs.tags }} | ||
| labels: ${{ steps.meta.outputs.labels }} | ||
| cache-from: type=gha | ||
| cache-to: type=gha,mode=max | ||
| provenance: false |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -41,3 +41,5 @@ chatroom | |
| *.sw? | ||
| .pnpm-store | ||
| workspace.zip | ||
| .vision_out.txt | ||
| .vision_final.txt | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
类似这种无用的文件就不需要提交上来了