Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
e645eab
fix import
zslchase Jan 8, 2026
53cf706
feat: Add PyPI packaging support for sage-examples and sage-apps
zslchase Jan 8, 2026
1f742a9
refactor: reorganize structure and complete tutorials migration to SAGE
ShuhaoZhangTony Jan 8, 2026
9731b45
chore: clean up temporary files
ShuhaoZhangTony Jan 8, 2026
ebda5f9
chore: clean up outdated references and files
ShuhaoZhangTony Jan 8, 2026
fda6abe
fix: configure unified ruff setup following SAGE repository
ShuhaoZhangTony Jan 8, 2026
8ef13d2
chore: add quickstart and hooks
ShuhaoZhangTony Jan 25, 2026
f332036
clean up
ShuhaoZhangTony Feb 6, 2026
fc4b8de
docs: Update copilot-instructions to reflect repository independence
ShuhaoZhangTony Feb 6, 2026
52de748
chore: add unified pre-push hook with post-push PyPI publish
ShuhaoZhangTony Feb 11, 2026
98d2146
fix: improve pre-push hooks PyPI check error handling
ShuhaoZhangTony Feb 12, 2026
c188af8
chore: bump version to 0.1.0.1
ShuhaoZhangTony Feb 12, 2026
5c61da1
fix: remove external ruff config dependency in pyproject.toml
ShuhaoZhangTony Feb 12, 2026
a8cd3a6
fix: remove inline comments from package-data array
ShuhaoZhangTony Feb 12, 2026
fbea647
docs: update copilot instructions for module organization
ShuhaoZhangTony Feb 13, 2026
479a7e5
chore: bump version to 0.1.0.2
ShuhaoZhangTony Feb 13, 2026
4924bb2
refactor: 简化依赖配置,遵循 SAGE 核心原则
ShuhaoZhangTony Feb 14, 2026
afa4c48
chore: bump version to 0.1.0.3 (examples) and 0.2.5 (apps)
ShuhaoZhangTony Feb 14, 2026
9d801bd
refactor: 重命名 sage-apps 目录为 apps
ShuhaoZhangTony Feb 14, 2026
3ea4784
fix: 更新 pyproject.toml 中的测试路径配置
ShuhaoZhangTony Feb 14, 2026
6e25604
update ignore
ShuhaoZhangTony Feb 14, 2026
1cea24f
chore: bump version to 0.1.1.0
ShuhaoZhangTony Feb 14, 2026
45370ea
docs: remove deprecated copilot docs and add changelog
ShuhaoZhangTony Feb 14, 2026
e4215b5
docs: remove remaining copilot instruction files and docs policy cleanup
ShuhaoZhangTony Feb 14, 2026
35f3e63
revert: restore copilot instruction files
ShuhaoZhangTony Feb 14, 2026
cd23ecf
chore: bump version to 0.1.1.1
ShuhaoZhangTony Feb 14, 2026
4ea64f0
ci(quality): add legacy Ray term guard
ShuhaoZhangTony Feb 19, 2026
ce12011
chore: commit current workspace changes
ShuhaoZhangTony Feb 19, 2026
88dee63
chore(agent): enable full-feature tools
ShuhaoZhangTony Feb 19, 2026
2343757
docs(copilot): sync cross-repo install consistency policy
ShuhaoZhangTony Feb 19, 2026
593a113
docs(copilot): add pre-push hook auto-publish warning
ShuhaoZhangTony Feb 19, 2026
fcf2424
chore: bump version to 0.1.1.2
ShuhaoZhangTony Feb 19, 2026
f6112e9
feat(examples): add facade vs environment runtime layering demo
ShuhaoZhangTony Feb 20, 2026
a873676
refactor: simplify hooks - post-commit auto-bumps, pre-push only publ…
ShuhaoZhangTony Feb 24, 2026
3a839d8
chore: add/update quickstart.sh with post-commit hook support
ShuhaoZhangTony Feb 24, 2026
a6337a7
chore(agents): standardize copilot-instructions and agent tools to ca…
ShuhaoZhangTony Feb 24, 2026
c15adee
chore: enforce no-new-venv policy in copilot/agent instructions
ShuhaoZhangTony Feb 24, 2026
2092b83
chore: remove AI-generated temporary summary/report docs
ShuhaoZhangTony Feb 28, 2026
5eeff8f
docs(copilot,agents): add polyrepo coordination rules
ShuhaoZhangTony Feb 28, 2026
eee1a73
chore: update dependencies to latest PyPI versions
ShuhaoZhangTony Feb 28, 2026
129de89
chore: unify hooks (canonical pre-commit, post-commit, pre-push)
ShuhaoZhangTony Feb 28, 2026
07219b5
chore: bump version to 0.1.1.3
ShuhaoZhangTony Feb 28, 2026
1d4d6d3
chore: enforce never-create-.venv policy in copilot instructions
ShuhaoZhangTony Mar 1, 2026
a8f1932
build: simplify install modes to standard/full/dev; dev includes full…
ShuhaoZhangTony Mar 1, 2026
55c1b97
chore: update pre-push hook from boundary cleanup session
ShuhaoZhangTony Mar 1, 2026
a7d7138
chore: update quickstart, version, and dependency alignment
ShuhaoZhangTony Mar 1, 2026
cea9bb8
chore: sync dependency and hook metadata
ShuhaoZhangTony Mar 1, 2026
28fb238
fix(hooks): robust publisher command fallback
ShuhaoZhangTony Mar 1, 2026
3c4aa6c
update
ShuhaoZhangTony Mar 3, 2026
f48f09b
fix: capture exit code before echo in hook failure branch
ShuhaoZhangTony Mar 3, 2026
f7565dd
fix(examples): resolve D3 executability regression for apps tests
ShuhaoZhangTony Mar 3, 2026
0d31bf3
chore: bump version to 0.1.1.4
ShuhaoZhangTony Mar 3, 2026
e988c20
chore(examples): remove outdated runtime API demo entry
ShuhaoZhangTony Mar 3, 2026
0b5f09f
chore: bump version to 0.1.1.5
ShuhaoZhangTony Mar 3, 2026
e7860b6
test(examples): enforce runnable-entry boundary guard
ShuhaoZhangTony Mar 3, 2026
05c70d8
chore: bump version to 0.1.1.6
ShuhaoZhangTony Mar 3, 2026
3c99410
fix(ci): remove unavailable isage-llm-core dependency
ShuhaoZhangTony Mar 3, 2026
27fd380
chore: bump version to 0.1.1.7
ShuhaoZhangTony Mar 3, 2026
5a2c028
fix(ci): stabilize quality workflow and pre-commit checks
ShuhaoZhangTony Mar 3, 2026
4670ef6
chore: bump version to 0.1.1.8
ShuhaoZhangTony Mar 3, 2026
bb7459b
style(examples): align demo imports with ruff hook
ShuhaoZhangTony Mar 3, 2026
b37bb53
chore: bump version to 0.1.1.9
ShuhaoZhangTony Mar 3, 2026
5405680
style(examples): fix import grouping for pre-commit ruff
ShuhaoZhangTony Mar 3, 2026
fcf5d80
chore: bump version to 0.1.1.10
ShuhaoZhangTony Mar 3, 2026
61a3c68
style(examples): apply ruff import separation in demo
ShuhaoZhangTony Mar 3, 2026
07ecf0f
chore: bump version to 0.1.1.11
ShuhaoZhangTony Mar 3, 2026
534e28d
fix(ci): stabilize ruff import grouping across environments
ShuhaoZhangTony Mar 3, 2026
f5e195a
feat(medical): add heuristic L1-L5 vertebra segmentation
ShuhaoZhangTony Mar 3, 2026
0bda555
chore: bump version to 0.1.1.12
ShuhaoZhangTony Mar 3, 2026
cdd09a9
feat(medical): fuse image embedding when adding cases
ShuhaoZhangTony Mar 3, 2026
011680d
chore: bump version to 0.1.1.13
ShuhaoZhangTony Mar 3, 2026
474034d
feat(literature): add reading report assistant MVP
ShuhaoZhangTony Mar 3, 2026
d5c2faa
chore: bump version to 0.1.1.14
ShuhaoZhangTony Mar 3, 2026
a532bd3
feat(examples): add personalized literature recommendation MVP
ShuhaoZhangTony Mar 3, 2026
7d6a5db
chore: bump version to 0.1.1.15
ShuhaoZhangTony Mar 3, 2026
db58a48
fix(deps): remove stale transformers<4.54.0 upper bounds
ShuhaoZhangTony Mar 4, 2026
8660b75
chore: bump version to 0.1.1.16
ShuhaoZhangTony Mar 4, 2026
353c612
chore: bump version to 0.1.1.17
ShuhaoZhangTony Mar 4, 2026
25f4b32
chore: bump version to 0.1.1.18
ShuhaoZhangTony Mar 4, 2026
ff13390
refactor(examples): migrate apps to consolidated isage apis
ShuhaoZhangTony Mar 12, 2026
b408a89
chore: bump version to 0.1.1.19
ShuhaoZhangTony Mar 12, 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
31 changes: 31 additions & 0 deletions .github/agents/sage-apps.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
______________________________________________________________________

## name: sage-examples description: Agent for SAGE examples/tutorials/apps with runnable minimal changes. argument-hint: Include target folder (`examples`, `tutorials`, or `sage-apps`), goal, and run command. tools: ['vscode', 'execute', 'read', 'agent', 'edit', 'search', 'web', 'todo', 'vscode.mermaid-chat-features/renderMermaidDiagram', 'github.vscode-pull-request-github/issue_fetch', 'github.vscode-pull-request-github/suggest-fix', 'github.vscode-pull-request-github/searchSyntax', 'github.vscode-pull-request-github/doSearch', 'github.vscode-pull-request-github/renderIssues', 'github.vscode-pull-request-github/activePullRequest', 'github.vscode-pull-request-github/openPullRequest', 'ms-azuretools.vscode-containers/containerToolsConfig', 'ms-python.python/getPythonEnvironmentInfo', 'ms-python.python/getPythonExecutableCommand', 'ms-python.python/installPythonPackage', 'ms-python.python/configurePythonEnvironment', 'ms-toolsai.jupyter/configureNotebook', 'ms-toolsai.jupyter/listNotebookPackages', 'ms-toolsai.jupyter/installNotebookPackages', 'ms-vscode.cpp-devtools/Build_CMakeTools', 'ms-vscode.cpp-devtools/RunCtest_CMakeTools', 'ms-vscode.cpp-devtools/ListBuildTargets_CMakeTools', 'ms-vscode.cpp-devtools/ListTests_CMakeTools']

# SAGE Examples Agent

## Scope

- `examples/`, `tutorials/`, `sage-apps/` in `sage-examples` repo.

## Rules

- Flownet-first: no new `ray` imports/dependencies.
- Keep examples concise and runnable; avoid core-framework refactors here.
- Do not create new local virtual environments (`venv`/`.venv`); use the existing configured Python
environment.
- In conda environments, use `python -m pip`.
- Dependency changes must go to repo config files, not one-off install notes.

## Workflow

1. Read nearest README/QUICK_START first.
1. Implement minimal local change.
1. Run relevant example/test and update nearby docs if behavior changed.

## Polyrepo coordination rules

- Treat this repository as the only local source tree; do not assume sibling repositories exist.
- If a task spans multiple repositories, implement only this repo and explicitly list follow-up
repo/version-bump actions.
- Do not create `venv`/`.venv`; always use the existing configured Python environment.
45 changes: 45 additions & 0 deletions .github/agents/sage-examples.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
```chatagent
______________________________________________________________________

## name: sage-examples description: Agent for SAGE examples, tutorials, and app entrypoints built on consolidated isage. argument-hint: Include target area (`examples`, `tutorials`, or `sage-apps`), goal, and any run/test command. tools: ['vscode', 'execute', 'read', 'agent', 'edit', 'search', 'web', 'todo', 'vscode.mermaid-chat-features/renderMermaidDiagram', 'github.vscode-pull-request-github/issue_fetch', 'github.vscode-pull-request-github/suggest-fix', 'github.vscode-pull-request-github/searchSyntax', 'github.vscode-pull-request-github/doSearch', 'github.vscode-pull-request-github/renderIssues', 'github.vscode-pull-request-github/activePullRequest', 'github.vscode-pull-request-github/openPullRequest', 'ms-azuretools.vscode-containers/containerToolsConfig', 'ms-python.python/getPythonEnvironmentInfo', 'ms-python.python/getPythonExecutableCommand', 'ms-python.python/installPythonPackage', 'ms-python.python/configurePythonEnvironment', 'ms-toolsai.jupyter/configureNotebook', 'ms-toolsai.jupyter/listNotebookPackages', 'ms-toolsai.jupyter/installNotebookPackages', 'ms-vscode.cpp-devtools/Build_CMakeTools', 'ms-vscode.cpp-devtools/RunCtest_CMakeTools', 'ms-vscode.cpp-devtools/ListBuildTargets_CMakeTools', 'ms-vscode.cpp-devtools/ListTests_CMakeTools']

# SAGE Examples Agent

## Scope

- `examples/`, `tutorials/`, and `sage-apps/` in the `sage-examples` repository.
- Teach and modify examples that depend on the consolidated `isage` core package.

## Core Guidance

- Prefer current `sage.*` surfaces such as `sage.foundation`, `sage.stream`, `sage.runtime`, `sage.serving`, and `sage.cli`.
- Keep examples stream-first.
- Treat distributed runtime as optional.
- Treat `isagellm` and other adapters such as `isage-rag` or `isage-neuromem` as external optional integrations.
- Do not reintroduce retired split-core package guidance.

## Rules

- Flownet-first: do not add new `ray` imports or dependencies.
- Keep examples concise, runnable, and local to this repository.
- Do not create new local virtual environments (`venv`/`.venv`); use the existing configured Python environment.
- In conda environments, use `python -m pip`.
- Dependency changes must be declared in repo config files, not as one-off install notes.
- Fail fast; do not add silent fallback logic that hides missing configuration or imports.

## Workflow

1. Read the nearest `README.md` or `QUICK_START.md` first.
2. Reuse existing example and tutorial patterns before inventing new structure.
3. Implement the smallest repo-local change that solves the task.
4. Run the relevant example, test, or check when practical.
5. Update nearby docs when behavior or usage changes.

## Polyrepo Coordination Rules

- Treat this repository as an independent examples repository.
- Do not assume sibling source repositories are available locally.
- If cross-repo rollout is needed, keep changes here minimal and note any follow-up version bump separately.
- Do not create `venv`/`.venv`; always reuse the existing configured Python environment.

```
50 changes: 50 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# SAGE Examples Copilot Instructions

## Scope

- Repository: `intellistream/sage-examples` (examples + app entry scripts, not SAGE core).
- Read docs first: `README.md`, `tutorials/README.md`, `tutorials/QUICK_START.md`,
`examples/README.md`.

## Critical rules

- Runtime direction: Flownet-first; do not add new `ray` imports/dependencies.
- Do not create new local virtual environments (`venv`/`.venv`); use the existing configured Python
environment.
- In conda environments, use `python -m pip` (never plain `pip`).
- Do not rely on manual install commands for permanent deps; declare in
`pyproject.toml`/`requirements.txt`.
- No silent fallback logic; fail fast with actionable errors.
- Do not re-add SAGE core internals here; depend on published `isage-*` packages.

## Dependency and setup

- If work depends on SAGE core behavior, ensure SAGE dev env is prepared via
`./quickstart.sh --dev --yes` in `SAGE/`.
- Keep dependency changes explicit and versioned in this repo files.

## Workflow

1. Confirm target area (`examples/`, `tutorials/`, or `sage-apps/`).
1. Implement minimal repo-local change.
1. Run relevant tests/linters and update nearby README when behavior changes.

## High-signal paths

- `examples/`, `tutorials/`, `sage-apps/`, `requirements.txt`, `README.md`.

## Polyrepo coordination (mandatory)

- This repository is an independent SAGE sub-repository and is developed/released independently.
- Do not assume sibling source directories exist locally in `intellistream/SAGE`.
- For cross-repo rollout, publish this repo/package first, then bump the version pin in
`SAGE/packages/sage/pyproject.toml` when applicable.
- Do not add local editable installs of other SAGE sub-packages in setup scripts or docs.

## 🚫 NEVER_CREATE_DOT_VENV_MANDATORY

- 永远不要创建 `.venv` 或 `venv`(无任何例外)。
- NEVER create `.venv`/`venv` in this repository under any circumstance.
- 必须复用当前已配置的非-venv Python 环境(如现有 conda 环境)。
- If any script/task suggests creating a virtualenv, skip that step and continue with the existing
environment.
115 changes: 115 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Code Quality Checks

on:
push:
branches: [main, main-dev]
pull_request:
branches: [main, main-dev]
workflow_dispatch:

jobs:
pre-commit:
name: Pre-commit Hooks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install pre-commit
run: |
pip install pre-commit

- name: Run pre-commit
run: |
pre-commit run --all-files --show-diff-on-failure

ruff:
name: Ruff Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install ruff
run: |
pip install ruff==0.14.6

- name: Run ruff check
run: |
ruff check .

- name: Run ruff format check
run: |
ruff format --check .

mypy:
name: Type Checking (mypy)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install dependencies
run: |
pip install -e ".[dev]"

- name: Run mypy
run: |
mypy . --config-file=pyproject.toml --no-error-summary
continue-on-error: true # Type checking errors shouldn't block CI

legacy-ray-guard:
name: Legacy Ray Term Guard
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Check for legacy Ray terms in source
# Fail fast if any new direct Ray imports or identifiers sneak in.
# All distributed-execution work must go via sageFlownet / SAGE facade APIs.
run: |
python - << 'EOF'
import re, sys
from pathlib import Path
FORBIDDEN = {
"import ray": re.compile(r"\bimport\s+ray\b"),
"from ray": re.compile(r"\bfrom\s+ray\b"),
"ray.init()": re.compile(r"\bray\.init\s*\("),
"ray.remote": re.compile(r"\bray\.remote\b"),
"RayQueueDescriptor": re.compile(r"\bRayQueueDescriptor\b"),
"RayServiceTask": re.compile(r"\bRayServiceTask\b"),
"use_ray=True": re.compile(r"\buse_ray\s*=\s*True\b"),
}
violations = []
for path in Path(".").rglob("*.py"):
rel = path.relative_to(".")
if any(p.startswith(".") for p in rel.parts) or "__pycache__" in rel.parts:
continue
text = path.read_text(encoding="utf-8")
for term, pat in FORBIDDEN.items():
for m in pat.finditer(text):
ln = text.count("\n", 0, m.start()) + 1
violations.append(f"{rel}:{ln}: {term}")
if violations:
print("ERROR: Legacy Ray terms found (use sageFlownet / SAGE facade APIs instead):")
print("\n".join(sorted(violations)))
sys.exit(1)
print("OK: no legacy Ray terms found")
EOF
89 changes: 89 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Tests

on:
push:
branches: [main, main-dev]
pull_request:
branches: [main, main-dev]
workflow_dispatch:

jobs:
test-examples:
name: Test Examples
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11']
env:
# Skip tests requiring network/external services in CI
SAGE_EXAMPLES_MODE: test
steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
pip install --upgrade pip
pip install -e ".[dev]"

- name: Install examples dependencies
run: |
pip install -e .

- name: Run example tests
run: |
pytest examples/test_apps.py -v --tb=short
continue-on-error: true

test-sage-apps-package:
name: Test sage-apps Package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install sage-apps package
run: |
pip install -e "./apps[dev]"

- name: Run sage-apps tests
run: |
pytest apps/tests/ -v --tb=short --cov=apps/src/sage/apps --cov-report=term-missing
continue-on-error: true

test-coverage:
name: Coverage Report
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install dependencies
run: |
pip install --upgrade pip
pip install -e ".[dev]"

- name: Run tests with coverage
run: |
pytest tutorials/ apps/test_apps.py --cov=. --cov-report=xml --cov-report=term-missing
continue-on-error: true

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
continue-on-error: true
Loading
Loading