Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
261 commits
Select commit Hold shift + click to select a range
03f9dcc
feature: cache packet output schema hash, use logging
eywalker Dec 2, 2025
8d4fbbb
refactor: Lazily compute packet function output schema hash and expli…
eywalker Dec 2, 2025
b921bb8
refactor: standardize schema type usage from `PythonSchema` to `Schem…
eywalker Jan 19, 2026
89f1426
refactor: rename OrcapodBase and OrcapodObject to Traceable
eywalker Feb 18, 2026
c8fd50c
refactor: rename PythonSchema to Schema and refactor types
eywalker Feb 25, 2026
5f0e4fa
refactor: import ColumnConfig from types
eywalker Feb 26, 2026
5c314de
Refactor API: rename config arg and Operator base
eywalker Feb 26, 2026
2cced44
feat: introduce SemanticHasher and TypeHandlerRegistry
eywalker Feb 26, 2026
bdd1729
refactor: rename hasher_id to semantic_v0.1
eywalker Feb 26, 2026
454b5fc
fix: use digest attribute in content hash test
eywalker Feb 26, 2026
7aa8ae8
refactor: semantic hashing into semantic_hashing package
eywalker Feb 26, 2026
d34867e
feat: add tests for packet function
eywalker Feb 26, 2026
f2cec59
feat: add FunctionPod protocol and optional fields
eywalker Feb 27, 2026
940db32
feat: reject variadic functions in PythonPacketFunction
eywalker Feb 27, 2026
a780ae3
docs(rules): Add Conventional Commits guidelines
eywalker Feb 27, 2026
8a7861e
refactor(databases): add DeltaTableDatabase
eywalker Feb 27, 2026
0181e92
Feat(databases): Add InMemoryArrowDatabase backend
eywalker Feb 27, 2026
ac4218f
fix(core): Wire packet_function into WrappedFunctionPod
eywalker Feb 27, 2026
092d9dd
refactor(packet_function): map outputs with keys
eywalker Feb 27, 2026
4031d7b
docs(design): add design issues workflow guidance
eywalker Feb 27, 2026
2f95f68
refactor(core): switch output_keys to Sequence
eywalker Feb 27, 2026
b428895
Refactor(core): drop source_pod_invocation
eywalker Feb 27, 2026
58284fb
Fix(function_pod): guard context drop
eywalker Feb 27, 2026
5258ba7
feat(function_pod): implement DB-backed get_all_records
eywalker Feb 27, 2026
df6787d
feat(core): add clear_cache and fix modified_time
eywalker Feb 27, 2026
60ad1b4
Feat(databases): Add NoOpArrowDatabase
eywalker Feb 27, 2026
10d4c9b
refactor(sources): introduce RootSource and align sources
eywalker Feb 27, 2026
bd746a1
refactor(protocols): Add Protocol suffix to types
eywalker Feb 27, 2026
3e7afc7
refactor(core): add PipelineElementProtocol
eywalker Feb 28, 2026
9aa5634
refactor: add explicitly named content/pipeline hash resolvers
eywalker Feb 28, 2026
c504d85
Refactor(datagrams): unify with lazy conversion
eywalker Mar 1, 2026
248e6e1
Refactor(typing): use TypeConverterProtocol hints
eywalker Mar 1, 2026
0631226
Refactor: adopt ArrowTableStream and producer
eywalker Mar 1, 2026
cbbd825
feat(core): add MergeJoin and operator refactor as well as full system
eywalker Mar 1, 2026
b631168
docs(design): update design document according to the latest
eywalker Mar 1, 2026
60c5ac7
Docs(rules): Update project layout and rules
eywalker Mar 1, 2026
9315518
Fix(arrow_table_source): raise on missing tag cols
eywalker Mar 1, 2026
d12d9b0
refactor(core): drop legacy datagram suite
eywalker Mar 1, 2026
ed757cd
feat(core): add persistent function/operator nodes
eywalker Mar 2, 2026
f8783e9
refactor(tracker): rewrite GraphTracker with content-hash edge tracki…
eywalker Mar 3, 2026
1c430eb
refactor(sources): adopt source_id provenance key
eywalker Mar 3, 2026
831a4b9
fix(core): wrap tag schema in Schema
eywalker Mar 3, 2026
5cb9670
docs(design): adopt flat system tags and caching
eywalker Mar 3, 2026
1f2c529
Feat(core): add PersistentSource caching
eywalker Mar 3, 2026
0943ecf
feat(pipeline): add PersistentSourceNode caching
eywalker Mar 4, 2026
8510864
feat(core): add source_id to DerivedSource
eywalker Mar 4, 2026
1186d87
refactor(core): improve typing in streams
eywalker Mar 4, 2026
e95519e
feat(core): add packet function executor system
claude Mar 4, 2026
db46a73
feat(core): add executor param to function_pod decorator, fix constru…
claude Mar 4, 2026
e04651a
feat(core): add concurrent execution path in iter_packets
claude Mar 4, 2026
63396b2
docs(design): add unified async channel execution system design and plan
claude Mar 4, 2026
ce9179c
docs(design): add thread safety section to channel design
claude Mar 4, 2026
151063b
feat(core): implement async channel execution system
claude Mar 4, 2026
b64009d
test(channels): add concrete pipeline example with sync/async equival…
claude Mar 4, 2026
650c48d
docs(design-issues): add O1 — streaming/incremental async_execute ove…
claude Mar 4, 2026
fb73e11
docs(design-issues): add G1 — PodGroup abstraction for composite pod …
claude Mar 4, 2026
e448ea3
docs(design-issues): promote AddResult to first-class pod type (G1), …
claude Mar 4, 2026
a6fc68d
docs(design-issues): clarify AddResult as fused implementation, not a…
claude Mar 4, 2026
96459a7
docs(design): add sync/async execution, channels, executors, pipeline…
claude Mar 4, 2026
f10d78c
ci(tests): trigger test workflow on dev branch
claude Mar 4, 2026
f1a160d
ci(tests): install graphviz system dependencies for pygraphviz
claude Mar 4, 2026
775eb96
fix(ci): remove stale tkinter import and drop unsupported Python 3.10…
claude Mar 4, 2026
80ebf2e
docs: add Google style docstring convention to LLM guides
claude Mar 4, 2026
8c243a5
docs: convert all docstrings to Google style
claude Mar 4, 2026
7287959
fix(core): address multiple async execution and delegation bugs
claude Mar 4, 2026
cba1a8e
fix(core): preserve source_info in _materialize_to_stream and fix Ray…
claude Mar 4, 2026
f008e00
fix(protocols): use PacketFunctionProtocol instead of Any in executor…
claude Mar 4, 2026
a0a5ec8
test(core): add regression tests for all executor/async fixes
claude Mar 4, 2026
4321f87
docs: add comprehensive TODO analysis with priorities and action plan
claude Mar 4, 2026
5a2b281
docs(design-issues): integrate TODO audit into DESIGN_ISSUES.md
claude Mar 4, 2026
a06c718
feat(pipeline): implement AsyncPipelineOrchestrator for push-based DA…
claude Mar 4, 2026
8ec4740
feat(operators): implement native streaming async_execute for all ope…
claude Mar 4, 2026
1c3134f
docs(design): add async operator strategy discussion with Kafka/Flink…
claude Mar 4, 2026
0a6814e
fix(operators): add strict validation to streaming async_execute paths
claude Mar 4, 2026
ffe1e32
docs: add async_execute plan for Node classes
claude Mar 4, 2026
5872c7c
docs(plan): comprehensive plan for process_packet/async_process_packe…
claude Mar 4, 2026
65e272b
docs(plan): address concurrent paths — route through async_process_pa…
claude Mar 4, 2026
ef4585c
feat: add async_execute to Node classes, unify process_packet interface
claude Mar 4, 2026
00e6cbf
test(channels): add async pipeline → sync DB retrieval examples
claude Mar 4, 2026
4325faa
test(pipeline): add Pipeline + @function_pod + async orchestrator int…
claude Mar 4, 2026
1f025eb
fix(function_pod): route FunctionNode.async_execute through async_pro…
claude Mar 5, 2026
2d950fa
test(pipeline): rewrite async integration test as single cohesive exa…
claude Mar 5, 2026
8faaebb
refactor(orchestrator): run persistent nodes, return None
claude Mar 5, 2026
418c013
fix(operators): address Copilot review comments on async execution
claude Mar 5, 2026
e094dd7
feat(join): restore streaming symmetric hash join with correct system…
claude Mar 5, 2026
f87ce5a
test(system-tags): add sync vs async system-tag equivalence tests
claude Mar 5, 2026
9ee9383
refactor(join): pass pipeline hashes to async_execute instead of stor…
claude Mar 5, 2026
ce1fff9
feat(core): introduce node-based graph
eywalker Mar 5, 2026
64c35d5
feat(packet_function): support async functions in PythonPacketFunction
claude Mar 5, 2026
98f396c
fix(function_node): add concurrent execution to PersistentFunctionNod…
claude Mar 5, 2026
f3c3b09
docs(examples): rewrite async example as 2x2 comparison matrix
claude Mar 5, 2026
5f995ec
docs(examples): use GIL-holding busy-wait to show async vs thread-poo…
claude Mar 5, 2026
f52cb3e
fix: address Copilot PR review comments on async packet support
claude Mar 5, 2026
e07c668
test: add comprehensive specification-derived test suite
claude Mar 5, 2026
f0eaf94
ci: add GitHub Actions workflow for objective tests
claude Mar 5, 2026
f290932
fix(test-objective): address CI failures and Copilot review feedback
claude Mar 5, 2026
aab12e0
refactor(hashing): consolidate file hashing via PathStructConverter
claude Mar 5, 2026
c363cc1
fix(hashing): handle BasicFileHasher returning raw bytes in hash_stru…
claude Mar 5, 2026
5cd7ee7
fix(hashing): make hash_file return ContentHash instead of raw bytes
claude Mar 5, 2026
2ca7593
fix(hashing): store full ContentHash string in CachedFileHasher cache
claude Mar 5, 2026
740d7b6
test(hashing): add file hasher return type and CachedFileHasher tests
claude Mar 5, 2026
2b5e526
feat(hashing): add mtime+size cache busting to CachedFileHasher
claude Mar 5, 2026
8dd38fd
Add tzdata to pyproject.toml
Mar 5, 2026
4f0d95e
Added filtering to the drop-columns logic
Mar 5, 2026
d3893ef
Fix 3-way Join DuplicateError by using index-based suffixes for colli…
Mar 6, 2026
cb64df3
Add back in changes from commit 60b5a
Mar 6, 2026
109b733
Replace all_info=True with explicit column config in Join.static_proc…
Mar 6, 2026
ce79c1d
Added GenericAliasHandler class
Mar 5, 2026
1b84eb2
- Added SpecialFormHandler class to builtin_handlers.py — handles t…
Mar 9, 2026
5d787b7
Restore pipeline-level execution engine API and fix Ray Client serial…
Mar 7, 2026
8c7d235
Simplify function_pod wrapper and RayExecutor serialisation
Mar 10, 2026
ad76a5b
fix: explicit pipeline config overrides async default when execution …
Mar 10, 2026
0b9b371
Add tests for function_pod wrapper pattern and pipeline execution eng…
Mar 10, 2026
7e05dd8
Address PR review comments on Ray execution engine integration
Mar 10, 2026
8454681
fix(executor): have executor protocol return Self
Mar 10, 2026
8bacce6
feat(pipeline): add SourceCacheMode with OFF mode for source nodes
claude Mar 11, 2026
99f00b9
refactor(sources): decouple source caching from pipeline
claude Mar 11, 2026
88af12c
test(source-node): add tests for SourceNode delegation and CachedSour…
claude Mar 12, 2026
06d4d21
refactor(cached-source): remove run() method, use flow() for eager ca…
claude Mar 12, 2026
0859d1a
feat(cached-source): add staleness detection against wrapped source
claude Mar 12, 2026
9933141
refactor(cached-source): override is_stale property instead of privat…
claude Mar 12, 2026
7e544b4
refactor(nodes): delegate data_context to wrapped entity, address Cop…
claude Mar 12, 2026
df5fcf3
docs(pipeline): add pipeline serialization design spec
eywalker Mar 12, 2026
db3cebe
docs(pipeline): add to_config/from_config to database and source prot…
eywalker Mar 12, 2026
8e3e78b
docs(pipeline): fix packet_function_type_id to use actual value
eywalker Mar 12, 2026
88549b5
docs(pipeline): add pipeline serialization implementation plan
eywalker Mar 12, 2026
4e2d89b
feat(databases): add to_config/from_config to ArrowDatabaseProtocol a…
eywalker Mar 12, 2026
950cfd2
feat(operators): add to_config/from_config to OperatorPodProtocol and…
eywalker Mar 12, 2026
8cbf008
feat(packet-function): add to_config/from_config to PacketFunctionPro…
eywalker Mar 12, 2026
7c400f1
feat(pipeline): add serialization module with registries, LoadStatus,…
eywalker Mar 12, 2026
afd8ace
feat(function-pod): add to_config/from_config to FunctionPodProtocol …
eywalker Mar 12, 2026
debaa31
feat(sources): add to_config/from_config to SourceProtocol and all so…
eywalker Mar 12, 2026
580b5cb
feat(source-node): add from_descriptor classmethod for read-only loading
eywalker Mar 12, 2026
bf264c2
feat(function-node): add from_descriptor classmethod for read-only lo…
eywalker Mar 12, 2026
ed69ac7
feat(operator-node): add from_descriptor classmethod for read-only lo…
eywalker Mar 12, 2026
9f48cc2
feat(pipeline): add Pipeline.save() for JSON serialization
eywalker Mar 12, 2026
e7e78ac
feat(pipeline): add Pipeline.load() for JSON deserialization
eywalker Mar 12, 2026
8595775
test(pipeline): add end-to-end save/load integration tests
eywalker Mar 12, 2026
98985f0
chore(pipeline): export LoadStatus and PIPELINE_FORMAT_VERSION from p…
eywalker Mar 12, 2026
9422525
test(pipeline): add thorough tests for full and read-only load modes
eywalker Mar 12, 2026
d7b00e5
fix(test): use dict[str, int] return type for multi-source pipeline f…
eywalker Mar 12, 2026
9b12173
fix(schema-utils): reject bare container types in PythonPacketFunctio…
eywalker Mar 12, 2026
a4339be
fix: address Copilot review — type-specific error examples, update de…
eywalker Mar 12, 2026
9602d47
fix(pipeline): address three load/save issues
eywalker Mar 12, 2026
5890dca
fix(pipeline): include source nodes in loaded pipeline's compiled_nodes
eywalker Mar 12, 2026
861079b
test(function-pod): add tests for FunctionPod label defaulting to fun…
eywalker Mar 12, 2026
cd86ecc
refactor(core): improve typing and API surfaces
eywalker Mar 12, 2026
77afda1
docs(pipeline): add pipeline & node simplification design spec
eywalker Mar 12, 2026
eeda246
docs(plan): add pipeline simplification implementation plan
eywalker Mar 13, 2026
b654943
docs(spec): replace source inheritance with compositional builder pat…
eywalker Mar 13, 2026
1f9b677
docs(plan): rewrite Chunk 1 with compositional builder pattern
eywalker Mar 13, 2026
0bc3e8d
feat(sources): add SourceStreamBuilder for compositional source enric…
eywalker Mar 13, 2026
b4c73c5
refactor(sources): ArrowTableSource uses SourceStreamBuilder, RootSou…
eywalker Mar 13, 2026
df87009
refactor(sources): DictSource and DataFrameSource use SourceStreamBui…
eywalker Mar 13, 2026
e76047e
refactor(sources): CSVSource and DeltaTableSource use SourceStreamBui…
eywalker Mar 13, 2026
b400f74
refactor(sources): ListSource uses SourceStreamBuilder
eywalker Mar 13, 2026
1267867
refactor(sources): remove computed_label() from RootSource, remove Ca…
eywalker Mar 13, 2026
ead6740
refactor(nodes): merge PersistentFunctionNode into FunctionNode
eywalker Mar 13, 2026
9ce7ce4
refactor(nodes): remove PersistentFunctionNode alias, update all impo…
eywalker Mar 13, 2026
f54c440
refactor(nodes): merge PersistentOperatorNode into OperatorNode
eywalker Mar 13, 2026
520fee1
refactor(nodes): remove PersistentOperatorNode alias, update all impo…
eywalker Mar 13, 2026
9b74e6d
refactor(pipeline): merge GraphTracker into Pipeline
eywalker Mar 13, 2026
b0a4319
refactor(pipeline): compile() mutates nodes via attach_databases()
eywalker Mar 13, 2026
9a510f1
feat(pipeline): source nodes are first-class pipeline members
eywalker Mar 13, 2026
7148a5a
chore: update design spec status and clean up stale class references
eywalker Mar 13, 2026
19eebf1
style: apply ruff format and lint fixes
eywalker Mar 13, 2026
855596d
test(sources): mark resolve_field tests as xfail pending re-implement…
eywalker Mar 13, 2026
93a2e76
refactor(cached-source): accept SourceProtocol instead of RootSource
eywalker Mar 13, 2026
56be54a
feat(sources): add SourceProxy, identity-preserving schema serializat…
eywalker Mar 13, 2026
8520eab
refactor: slim orcapod root namespace and expose subpackage namespaces
eywalker Mar 13, 2026
7ff9b59
refactor: update imports to use new subpackage namespace
eywalker Mar 13, 2026
2ee2b74
chore(deps): add mkdocs-material and mkdocstrings, remove sphinx
eywalker Mar 13, 2026
217651d
docs: add mkdocs.yml configuration and clean up gitignore
eywalker Mar 13, 2026
840292b
docs: scaffold documentation site structure with placeholders
eywalker Mar 13, 2026
a4cda8a
refactor: replace sys.modules hack with proper re-export packages
eywalker Mar 13, 2026
e23db21
docs: write home page with overview, install, and quick example
eywalker Mar 13, 2026
f131943
docs: write getting started guide with end-to-end walkthrough
eywalker Mar 13, 2026
6ce356e
docs: write sources concept page
eywalker Mar 13, 2026
08b2266
docs: write streams concept page
eywalker Mar 13, 2026
a8de665
docs: write operators concept page
eywalker Mar 13, 2026
5206cfd
docs: write function pods concept page
eywalker Mar 13, 2026
b014cfe
docs: write identity and hashing concept page
eywalker Mar 13, 2026
d1ae48c
docs: add API reference pages with mkdocstrings autodoc
eywalker Mar 13, 2026
b660286
docs: add Linear issue template and sys.modules prohibition to projec…
eywalker Mar 13, 2026
e858317
chore: add superpowers/ and root JSON files to .gitignore
eywalker Mar 13, 2026
2914044
chore: remove stale pipeline/nodes.py stub
eywalker Mar 13, 2026
8b67545
docs: update install instructions with PyPI and GitHub methods
eywalker Mar 14, 2026
5f86ee7
docs(operators): clarify commutativity of MergeJoin and SemiJoin
eywalker Mar 14, 2026
a53162a
docs: use __call__ shorthand for pod/operator invocation
eywalker Mar 14, 2026
83657a1
docs(identity): clarify content_hash as recursive source identity, no…
eywalker Mar 14, 2026
4fcb63e
docs(sources): fix inaccurate ArrowTableSource delegation claim
eywalker Mar 14, 2026
5bf6e82
docs: add function execution chain improvements design plan
claude Mar 14, 2026
725e86d
refactor(executors): improve function execution chain
eywalker Mar 14, 2026
743aa8c
test(executors): add thorough coverage for new executor features
eywalker Mar 14, 2026
e40eb59
refactor(function-node): use CachedFunctionPod for result caching
eywalker Mar 14, 2026
4b7a533
fix(cached-function-pod): cache by packet hash only, not tag
eywalker Mar 14, 2026
e69f0e1
test(function-node): add comprehensive pipeline + result cache tests
eywalker Mar 14, 2026
9d5bf21
refactor(caching): extract shared ResultCache from CachedPacketFuncti…
eywalker Mar 14, 2026
5e44c81
test(result-cache): add direct unit tests for ResultCache
eywalker Mar 14, 2026
adf3f82
fix: address Copilot review feedback
eywalker Mar 14, 2026
db024aa
docs(orchestrator): add sync pipeline orchestrator design spec
eywalker Mar 14, 2026
1a477fe
chore: move superpowers artifacts to root superpowers/ directory
eywalker Mar 14, 2026
da57aea
docs(orchestrator): update spec with symmetric compute/store pattern
eywalker Mar 14, 2026
fb36671
docs(orchestrator): refine compute/store boundary for FunctionNode
eywalker Mar 14, 2026
9ffd4bb
feat(protocols): add node protocols and TypeGuard dispatch for orches…
eywalker Mar 14, 2026
a09cf5f
feat(pipeline): add ExecutionObserver protocol, NoOpObserver, and Orc…
eywalker Mar 14, 2026
8392daa
feat(source-node): add store_result and populate_cache for orchestrat…
eywalker Mar 14, 2026
8747c16
feat(operator-node): add get_cached_output, store_result, populate_ca…
eywalker Mar 14, 2026
0745044
refactor(function-node): separate process_packet from store_result, a…
eywalker Mar 14, 2026
4b5b67a
feat(pipeline): implement SyncPipelineOrchestrator
eywalker Mar 14, 2026
5476902
feat(pipeline): integrate SyncPipelineOrchestrator into Pipeline.run()
eywalker Mar 14, 2026
6cdc269
test(pipeline): add sync vs async orchestrator parity tests
eywalker Mar 14, 2026
84dd7ff
docs(orchestrator): add spec and plan for removing populate_cache
eywalker Mar 14, 2026
a705ede
refactor(nodes): remove populate_cache, make nodes self-caching via s…
eywalker Mar 14, 2026
9c155dc
docs(orchestrator): add node authority spec and plan
eywalker Mar 14, 2026
94b70c0
refactor(function-node): self-validating process_packet, add process(…
eywalker Mar 14, 2026
ea4b6fe
refactor(operator-node): add self-validating process(), remove store_…
eywalker Mar 14, 2026
9414358
refactor(source-node): remove store_result, self-cache on first iter_…
eywalker Mar 14, 2026
ac68bf3
fix(protocols): remove store_result from FunctionNodeProtocol, add pr…
eywalker Mar 14, 2026
5b039d7
fix(orchestrator): handle empty upstream buffers in _materialize_as_s…
eywalker Mar 14, 2026
eeac78a
fix: address PR review — schema validation, process persistence, lazy…
eywalker Mar 14, 2026
12485c4
fix(nodes): use consistent Schema comparison for all validation paths
eywalker Mar 14, 2026
8b3936d
fix(orchestrator): preserve stream identity in materialization, xfail…
eywalker Mar 14, 2026
9ebe989
refactor(nodes): rename process/process_packet to execute/execute_pac…
eywalker Mar 14, 2026
6ae8394
refactor(nodes): remove schema validation from execute methods, trust…
eywalker Mar 14, 2026
291c451
fix(function-node): invalidate derived caches on new entries, clear o…
eywalker Mar 14, 2026
8935aa3
docs(specs): add async orchestrator refactor design spec (PLT-922)
eywalker Mar 15, 2026
7fb767d
docs(specs): address spec review feedback for PLT-922
eywalker Mar 15, 2026
a51ce38
docs(plans): add async orchestrator refactor implementation plan (PLT…
eywalker Mar 15, 2026
4702adb
refactor(protocols): slim node protocols to execute + async_execute w…
eywalker Mar 15, 2026
e760c30
refactor(protocols): remove AsyncExecutableProtocol (PLT-922)
eywalker Mar 15, 2026
7ccdb4b
feat(source-node): add execute() with observer injection (PLT-922)
eywalker Mar 15, 2026
128736b
refactor(source-node): tighten async_execute signature + observer (PL…
eywalker Mar 15, 2026
764f244
feat(function-node): add observer injection to execute() (PLT-922)
eywalker Mar 15, 2026
f8b16a2
refactor(function-node): tighten async_execute signature + observer (…
eywalker Mar 15, 2026
7bb0d75
feat(operator-node): add observer + cache check to execute() (PLT-922)
eywalker Mar 15, 2026
e079873
feat(operator-node): add observer to async_execute() (PLT-922)
eywalker Mar 15, 2026
c4637f2
fix(tests): update callers for tightened FunctionNode.async_execute s…
eywalker Mar 15, 2026
96ac45e
refactor(sync-orchestrator): delegate to node.execute(), remove per-p…
eywalker Mar 15, 2026
50482c5
refactor(async-orchestrator): use node protocols, graph interface, Or…
eywalker Mar 15, 2026
3ad7f4f
refactor(pipeline): update run() to pass graph to orchestrators, remo…
eywalker Mar 15, 2026
019d3c4
test(orchestrator): add materialize_results tests (PLT-922)
eywalker Mar 15, 2026
e004bb9
test(async-orchestrator): add fan-out, terminal, and error propagatio…
eywalker Mar 15, 2026
771a839
fix(review): type-safe observer, robust writer, terminal drain, opera…
eywalker Mar 15, 2026
c67c83f
test(observer): add observer injection tests for both orchestrators (…
eywalker Mar 15, 2026
897fe13
fix(review): address Copilot PR review feedback (PLT-922)
eywalker Mar 15, 2026
bf56662
docs: add PR review response workflow to CLAUDE.md and .zed/rules
eywalker Mar 15, 2026
240661b
docs: require Linear issue linking for all work
eywalker Mar 15, 2026
847d748
docs: add branch naming and multi-issue PR tracking guidelines
eywalker Mar 15, 2026
fc734c1
feat(logging): add logging infrastructure
Mar 17, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"enabledPlugins": {
"superpowers@claude-plugins-official": true
}
}
40 changes: 40 additions & 0 deletions .github/workflows/run-objective-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Run Objective Tests

on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
workflow_dispatch: # Allows manual triggering

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12"]

steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5

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

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y graphviz libgraphviz-dev

- name: Install dependencies
run: uv sync --locked --all-extras --dev

- name: Run objective tests
run: uv run pytest test-objective/ -v --cov=src --cov-report=term-missing --cov-report=xml

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
9 changes: 6 additions & 3 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ name: Run Tests

on:
push:
branches: [main]
branches: [main, dev]
pull_request:
branches: [main]
branches: [main, dev]
workflow_dispatch: # Allows manual triggering

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.11", "3.12"]

steps:
- uses: actions/checkout@v4
Expand All @@ -25,6 +25,9 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y graphviz libgraphviz-dev

- name: Install dependencies
run: uv sync --locked --all-extras --dev

Expand Down
13 changes: 9 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# NFS cache files
.nfs*
# Ignore data files in notebooks folder
notebooks/**/*.json
notebooks/**/*.yaml
Expand All @@ -13,7 +15,7 @@ notebooks/**/*.db
# skip any computation results
**/results

# Ignore common data types by default
# Ignore common data types by default
*.csv
*.parquet
*.xls
Expand Down Expand Up @@ -106,9 +108,6 @@ instance/
# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/
Expand Down Expand Up @@ -219,3 +218,9 @@ dj_*_conf.json
# pixi environments
.pixi/*
!.pixi/config.toml

# Superpowers (Claude Code skill artifacts)
superpowers/

# General JSON files at project root
/*.json
21 changes: 21 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
repos:
- repo: https://github.com/tsvikas/sync-with-uv
rev: v0.4.0 # replace with the latest version
hooks:
- id: sync-with-uv
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.4
hooks:
- id: ruff-format
types_or: [ python, pyi ]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: trailing-whitespace
types_or: [ python, pyi ]
- id: end-of-file-fixer
types_or: [ python, pyi ]
- id: check-yaml
- id: check-added-large-files
- id: check-merge-conflict
Loading
Loading