Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
d47d3f7
fix: terminate external strategy process trees
fallblu Aug 21, 2026
4550170
refactor: introduce structured engine diagnostics
fallblu Aug 21, 2026
033e5da
fix: preserve capability schema compatibility
fallblu Aug 21, 2026
165df8a
fix: reserve working-order exposure by side
fallblu Aug 21, 2026
a25c968
fix: distinguish fill clipping reasons
fallblu Aug 21, 2026
bc86d33
ci: test Persistra develop
fallblu Aug 21, 2026
931e539
test: inject boundary failures
fallblu Aug 21, 2026
972afcf
refactor: unify artifact writers
fallblu Aug 21, 2026
6cd876e
fix: publish replay artifacts together
fallblu Aug 21, 2026
9197940
feat: add durable artifact publication
fallblu Aug 21, 2026
fcee24a
feat: publish runtime resource limits
fallblu Aug 21, 2026
e0f5e0e
fix: retain rejected strategy evidence
fallblu Aug 21, 2026
464ef19
perf: optimize reducer and schedule queues
fallblu Aug 21, 2026
27d6cc4
build: make development environment reproducible
fallblu Aug 22, 2026
210e940
fix: align environment checks with supported gate
fallblu Aug 22, 2026
c810491
fix: verify the locked opam action plan
fallblu Aug 22, 2026
4a745ad
test: enforce contract conformance
fallblu Aug 22, 2026
d055a8d
refactor: separate scenario validation layers
fallblu Aug 22, 2026
5f1d6cd
test: fuzz protocol boundaries
fallblu Aug 22, 2026
04f971e
test: add reducer model properties
fallblu Aug 22, 2026
336139e
refactor: split reducer phases
fallblu Aug 22, 2026
dbe8464
test: enforce OCaml coverage reporting
fallblu Aug 22, 2026
5bb440d
build: verify coverage backend archive
fallblu Aug 22, 2026
7f21bea
build: parse repository state without color
fallblu Aug 22, 2026
d345db3
fix: isolate coverage build artifacts
fallblu Aug 22, 2026
ddc6fe1
test: add replay performance benchmarks
fallblu Aug 22, 2026
612fda3
chore: add repository planning metadata
fallblu Aug 22, 2026
795bbd6
ci: verify dependency bands and deterministic journals
fallblu Aug 22, 2026
912ea75
ci: deduplicate branch and pull request runs
fallblu Aug 22, 2026
e15af04
ci: run feature validation on pull requests
fallblu Aug 22, 2026
c1118a7
docs: publish architecture contract and API site
fallblu Aug 22, 2026
414e28a
build: define reproducible release artifacts
fallblu Aug 22, 2026
041c974
ci: establish security baseline
fallblu Aug 22, 2026
5ae5e77
chore: enforce repository governance
fallblu Aug 22, 2026
9abe11a
refactor: publish structured diagnostic contract
fallblu Aug 22, 2026
4a586dc
feat: add explicit venue calendars
fallblu Aug 22, 2026
6c75eaf
feat: version execution model configuration
fallblu Aug 22, 2026
e09e4ef
feat: support explicit initial portfolio state
fallblu Aug 22, 2026
6c548fd
fix: preserve legacy strategy compatibility
fallblu Aug 22, 2026
6460a6d
feat: add instrument and group risk policies
fallblu Aug 22, 2026
65cf039
refactor: consolidate risk policy enforcement
fallblu Aug 22, 2026
8e257da
feat: add order lifetimes and stop orders
fallblu Aug 22, 2026
ba01608
feat: add instrument-aware fee schedules
fallblu Aug 22, 2026
064d002
feat: add borrow availability and financing accrual
fallblu Aug 22, 2026
7a8a70a
feat: model deterministic trade settlement
fallblu Aug 22, 2026
81b6ba2
feat: expand corporate actions and instrument lifecycle
fallblu Aug 22, 2026
a595ab3
feat: add conservative bar execution models
fallblu Aug 22, 2026
7990830
feat: add causal quote and trade replay
fallblu Aug 22, 2026
af4882d
feat: add bounded order book replay
fallblu Aug 22, 2026
b0aa367
feat: add typed strategy metrics
fallblu Aug 22, 2026
c8a877e
fix: preserve resource capability compatibility
fallblu Aug 22, 2026
7972132
feat: add CLI automation pipelines
fallblu Aug 22, 2026
2911534
refactor: reset replay contracts to v1
fallblu Aug 26, 2026
a6b50d1
ci: pin Persistra v1 compatibility
fallblu Aug 26, 2026
e5c3d03
test: cover current instrument validation
fallblu Aug 26, 2026
62d4f54
ci: pin merged Persistra compatibility
fallblu Aug 26, 2026
eebcfe7
chore: prepare v1.1.0 release
fallblu Aug 26, 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
67 changes: 67 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Bug report
description: Report reproducible incorrect engine, CLI, artifact, or contract behavior.
title: "fix: "
labels: ["bug"]
assignees: []
body:
- type: markdown
attributes:
value: Thanks for providing a small, sanitized reproduction.
- type: dropdown
id: component
attributes:
label: Component
options:
- Accounting and valuation
- Artifacts and publication
- CLI and diagnostics
- Contracts and schemas
- Execution and order management
- Reducer and sequencing
- Risk and margin
- Strategy protocol
- CI and development tooling
validations:
required: true
- type: input
id: version
attributes:
label: Engine revision or version
placeholder: v1.1.0 or a full commit SHA
validations:
required: true
- type: input
id: contracts
attributes:
label: Contract versions
description: Include scenario, journal, diagnostic, and strategy versions that apply.
placeholder: scenario v1, journal v1, strategy v1
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction
description: Provide exact commands and the smallest sanitized input or fixture.
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual behavior
description: Include stable diagnostic codes and bounded output when available.
validations:
required: true
- type: checkboxes
id: safety
attributes:
label: Safe report
options:
- label: I removed credentials, customer data, proprietary strategies, and licensed data.
required: true
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Security policy and private reporting
url: https://github.com/fallblu/trading-engine/blob/develop/.github/SECURITY.md
about: Review supported versions and report suspected vulnerabilities privately.
- name: Support and usage guidance
url: https://github.com/fallblu/trading-engine/blob/develop/.github/SUPPORT.md
about: Review supported scope, public boundaries, and safe issue-reporting guidance.
64 changes: 64 additions & 0 deletions .github/ISSUE_TEMPLATE/contract-change.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Contract change
description: Propose a versioned scenario, journal, diagnostic, capability, or strategy change.
title: "feat: evolve contract "
labels: ["enhancement", "component: contracts"]
assignees: []
body:
- type: dropdown
id: family
attributes:
label: Contract family
options:
- Scenario and journal
- Scenario stream
- Capabilities
- Diagnostics
- External strategy protocol and transcript
validations:
required: true
- type: input
id: versions
attributes:
label: Affected versions
placeholder: current v1 and proposed change
validations:
required: true
- type: dropdown
id: compatibility
attributes:
label: Compatibility class
options:
- Additive within the current version
- New version required
- Clarification with no wire-format change
- Not yet known
validations:
required: true
- type: textarea
id: invariant
attributes:
label: Semantic invariant
description: State the runtime rule and what JSON Schema can and cannot enforce.
validations:
required: true
- type: textarea
id: wire-change
attributes:
label: Wire-format change
description: Show the smallest representative before-and-after records.
validations:
required: true
- type: textarea
id: migration
attributes:
label: Compatibility and migration
description: Explain frozen artifacts, parser behavior, and producer/consumer updates.
validations:
required: true
- type: textarea
id: verification
attributes:
label: Conformance evidence
description: List schemas, canonical fixtures, negative fixtures, and differential tests.
validations:
required: true
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/cross-repository.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Cross-repository compatibility
description: Report or propose coordinated behavior between Trading Engine and Persistra.
title: "chore: coordinate compatibility "
labels: ["enhancement", "dependency: persistra"]
assignees: []
body:
- type: input
id: engine-revision
attributes:
label: Trading Engine revision
placeholder: Full commit SHA
validations:
required: true
- type: input
id: persistra-revision
attributes:
label: Persistra revision
placeholder: Full commit SHA
validations:
required: true
- type: input
id: contracts
attributes:
label: Contract versions
placeholder: scenario v1, journal v1, strategy v1
validations:
required: true
- type: dropdown
id: owner
attributes:
label: Owning boundary
options:
- Trading Engine consumer/runtime behavior
- Persistra producer/host behavior
- Versioned contract shared by both repositories
- Not yet known
validations:
required: true
- type: textarea
id: behavior
attributes:
label: Compatibility behavior
description: Describe the expected handoff and the observed failure or proposed change.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction and evidence
description: Include exact commands, sanitized fixtures, diagnostics, and CI links.
validations:
required: true
- type: textarea
id: coordination
attributes:
label: Coordinated update
description: Identify which pin, tests, contracts, and documentation each repository changes.
validations:
required: true
60 changes: 60 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Feature proposal
description: Propose one scoped capability without assigning a release commitment.
title: "feat: "
labels: ["enhancement"]
assignees: []
body:
- type: dropdown
id: component
attributes:
label: Component
options:
- Accounting and valuation
- Artifacts and publication
- CLI and diagnostics
- Contracts and schemas
- Execution and order management
- Reducer and sequencing
- Risk and margin
- Strategy protocol
- CI and development tooling
validations:
required: true
- type: textarea
id: problem
attributes:
label: Problem
description: Describe the concrete unsupported workflow or invariant.
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed behavior
description: Define scope, boundaries, and observable behavior without a delivery date.
validations:
required: true
- type: dropdown
id: contract-impact
attributes:
label: Contract impact
options:
- No public contract change
- Additive current-contract change
- Breaking versioned-contract change
- Not yet known
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives and tradeoffs
validations:
required: true
- type: textarea
id: verification
attributes:
label: Verification expectations
description: List unit, property, conformance, failure-path, or performance evidence.
validations:
required: true
52 changes: 52 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Security policy

## Supported versions

Trading Engine provides security fixes for the latest patch release in the current release line.

| Release line | Supported |
| --- | --- |
| Latest 1.0.x patch | Yes |
| Earlier releases | No |

The `develop` branch contains unreleased work and is not a supported release. A fix is staged there
or on a hotfix branch according to the repository's release workflow. This table is updated when a
new release line becomes supported.

## Report a vulnerability privately

Use [GitHub private vulnerability reporting](https://github.com/fallblu/trading-engine/security/advisories/new)
to report a suspected vulnerability. Do not open a public issue for an undisclosed vulnerability.

A useful report includes the affected version or commit, security impact, trigger conditions, a
minimal sanitized reproduction, operating-system and dependency versions, and any disclosure
constraints. Do not include credentials, customer data, proprietary strategies, account details,
or licensed market data. Use synthetic inputs or describe the behavior when a safe reproduction
cannot be shared.

The maintainer aims to acknowledge a report within three business days and provide an initial
assessment within seven business days. Remediation timing depends on severity, exploitability, and
release risk. These targets are goals, not guarantees. Keep the report private while it is being
assessed and fixed. The maintainer and reporter will coordinate public disclosure after a fix or
mitigation is available. The project does not currently offer a bug bounty.

## Security boundaries

An external strategy is an arbitrary executable, not a sandboxed plugin. The engine starts it
directly without a shell, but the child inherits the engine process's operating-system identity,
environment, filesystem access, network access, and standard error. Run only trusted strategies or
isolate them with an operating-system account, container, or sandbox that supplies the minimum
environment and permissions. Do not put secrets in strategy arguments, scenarios, or engine logs.

Committed fixtures must contain only synthetic or redistributable data. Never add provider
credentials, customer account data, proprietary strategies, or licensed market data. Sanitize any
reproduction before sharing it in an issue, pull request, test, journal, or transcript.

Journals and strategy transcripts can contain market events, orders, positions, diagnostics, and
a bounded prefix of a rejected strategy response. Store them according to the sensitivity of their
inputs and review them before sharing. Artifact hashes and release attestations provide integrity
and provenance; they do not encrypt data, enforce access control, or prove that an artifact is safe
to execute.

Repository dependency and analysis controls are described in the
[security maintenance guide](../docs/security-maintenance.md).
16 changes: 16 additions & 0 deletions .github/SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Support

Start with the [README](../README.md) for setup, supported scope, and command examples. The
[architecture](../docs/architecture.md), [scenario contract](../docs/scenario.md), and
[Persistra integration guide](../docs/persistra.md) describe the public boundaries in detail.

Report a suspected vulnerability through the private channel in the
[security policy](SECURITY.md), not through a public issue.

Use the structured issue forms for reproducible bugs, feature proposals, versioned contract
changes, and cross-repository compatibility failures. Search existing issues first. Include the
engine version, relevant contract versions, exact commands, sanitized inputs, and the smallest
reproduction that demonstrates the behavior.

Do not post credentials, customer data, proprietary strategies, or licensed market data. This
repository cannot provide private trading, deployment, or strategy-development support.
25 changes: 25 additions & 0 deletions .github/branch-protection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"branches": {
"main": {
"required_status_checks": {
"strict": true,
"contexts": ["check", "persistra-compatibility"]
},
"enforce_admins": true,
"required_pull_request_reviews": {
"dismiss_stale_reviews": false,
"require_code_owner_reviews": false,
"required_approving_review_count": 0,
"require_last_push_approval": false
},
"restrictions": null,
"required_conversation_resolution": true,
"required_linear_history": true,
"allow_force_pushes": false,
"allow_deletions": false,
"block_creations": false,
"lock_branch": false,
"allow_fork_syncing": false
}
}
}
35 changes: 35 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "America/New_York"
target-branch: "develop"
open-pull-requests-limit: 5
groups:
github-actions:
patterns:
- "*"
update-types:
- "minor"
- "patch"

- package-ecosystem: "pip"
directory: "/requirements"
schedule:
interval: "weekly"
day: "monday"
time: "10:00"
timezone: "America/New_York"
target-branch: "develop"
open-pull-requests-limit: 5
groups:
python-tooling:
patterns:
- "*"
update-types:
- "minor"
- "patch"
Loading
Loading