mirror of
https://github.com/affaan-m/ECC.git
synced 2026-09-18 15:50:25 +02:00
* feat: bundle standalone taste distillation and application workflows * docs: fix imported taste skill markdown lint * docs: align Turkish agent catalog with taste skills * refactor: make ECC the canonical reusable video engine * fix: preserve video duration when applying image overlays * fix: preserve background colors in image compositing * fix: report best-effort duration targets and shortfalls * feat: ship verified Fusion presets with compatibility provenance * feat(tasteforge): preserve native edits in application bundles * feat(tasteforge): compile local preservation without hosted input * fix: update js-yaml to patched 4.3.2 * test: report bounded Stop wrapper failure diagnostics * fix(tasteforge): fail closed on unsafe output names, missing overlays and cadence - cli: default report and spec paths are derived from pack name and profile genre; require the manifest's name pattern before using either as a filename part so a traversal string cannot write outside cwd/out. - apply_local: a pack without cadence.json, or with no measured shots and no explicit mean_shot, raises instead of silently planning 1.0s shots and reporting a measured cadence. - legacy apply: a missing overlay aborts before any paid upload; forge() would have rejected it after every take was generated. - requirements-live: pin fal-client>=0.13.0, the first release whose subscribe() accepts client_timeout. Addresses the five P1 findings from the independent review of #3033. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015fxHRsydPqEcYngGbqkgt1 --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
45 lines
1.7 KiB
YAML
45 lines
1.7 KiB
YAML
name: Standalone taste workflows
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'skills/taste-application/**'
|
|
- 'skills/taste-distillation/**'
|
|
- 'tests/test_taste_*.py'
|
|
- '.github/workflows/taste-skills.yml'
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'skills/taste-application/**'
|
|
- 'skills/taste-distillation/**'
|
|
- 'tests/test_taste_*.py'
|
|
- '.github/workflows/taste-skills.yml'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
offline:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: '3.12'
|
|
- name: Install local media dependencies
|
|
run: python -m pip install -r skills/taste-application/scripts/requirements.txt
|
|
- name: Build and install the reusable ECC engine
|
|
run: |
|
|
python -m pip wheel --no-deps skills/taste-application/scripts --wheel-dir /tmp/ecc-wheels
|
|
python -m pip install /tmp/ecc-wheels/ecc_tasteforge-*.whl
|
|
- name: Test canonical engine and original creative scripts
|
|
run: |
|
|
python -m unittest discover -s skills/taste-application/tests
|
|
python -m unittest discover -s tests -p 'test_taste_*.py'
|
|
cd /tmp
|
|
python -I -c "from pathlib import Path; import sys, tasteforge; from tasteforge.pack import load; root = Path(tasteforge.__file__).resolve(); assert root.is_relative_to(Path(sys.prefix).resolve()); fixture = root.parent / 'fixtures/flashethereal'; assert load(fixture).inspect()['validation']['status'] == 'valid'"
|
|
python -m tasteforge --help
|