Skip to content

Commit e800996

Browse files
committed
chore: commit squad files and decisions to dev
1 parent 6905d8c commit e800996

7 files changed

Lines changed: 69 additions & 1 deletion

File tree

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,5 +162,4 @@ examples/tutorial/data
162162
examples/tutorial/backtest_results
163163
examples/tutorial/resources
164164
# Squad/Copilot: all dev-only files live on dev branch
165-
.squad/
166165
.copilot/

.squad/config.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"version": 1,
3+
"teamRoot": "/Users/marcvanduyn/Projects/LogicFunds/investing-algorithm-framework"
4+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
### 2026-03-18T12:00:00Z: Docusaurus Dependabot PRs — merge results
2+
**By:** Burke (Docs/DevRel)
3+
**Requested by:** marcvanduyn
4+
5+
**Merged (1):**
6+
- PR #368 — Bump ajv from 6.12.6 to 6.14.0 in /docusaurus ✅ (CI green, merged with admin override for branch protection)
7+
8+
**NOT merged — merge conflicts (6):**
9+
- PR #315 — Bump serialize-javascript from 6.0.1 to 6.0.2 in /docs (CONFLICTING + failing CI)
10+
- PR #314 — Bump prismjs from 1.29.0 to 1.30.0 in /docs (CONFLICTING + failing CI)
11+
- PR #313 — Bump @babel/runtime from 7.22.6 to 7.27.3 in /docs (CONFLICTING + failing CI)
12+
- PR #312 — Bump http-proxy-middleware from 2.0.6 to 2.0.9 in /docs (CONFLICTING + failing CI)
13+
- PR #311 — Bump @babel/runtime-corejs3 from 7.22.6 to 7.27.3 in /docs (CONFLICTING + failing CI)
14+
- PR #310 — Bump nanoid from 3.3.6 to 3.3.11 in /docs (CONFLICTING + failing CI)
15+
16+
**Why:** PRs #310-315 all target `/docs` (the Docusaurus build output) and have merge conflicts with the current main branch. They also use an older CI workflow (`test/linting`, `test/test`) that fails. PR #368 targets `/docusaurus` (the source) and uses the current Squad CI workflow, which passes.
17+
18+
**Recommendation:** The 6 conflicting PRs target build output files under `/docs`. Consider closing them since build output shouldn't be tracked in version control, or rebasing them if the lockfile changes are still needed.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
### 2026-03-18: Tests for issue #384 — None price handling in stop-loss/take-profit
2+
**By:** Hudson (Tester)
3+
**What:** Added 6 new test cases across both `test_trade_stop_loss.py` and `test_trade_take_profit.py` covering `has_triggered(None)` for fixed, trailing, and post-high-water-mark scenarios. Tests expect `False` return (not TypeError). These tests validate Vasquez's fix.
4+
**Why:** Issue #384`last_reported_price` can be `None` when no market data is available yet, causing TypeError crashes in stop-loss/take-profit evaluation.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
### 2026-03-18: Fix #384 — None price guard in stop-loss/take-profit evaluation
2+
**By:** Vasquez
3+
**What:** Added `if current_price is None: return False` guard at the top of both `TradeStopLoss.has_triggered()` and `TradeTakeProfit.has_triggered()`. This prevents a `TypeError` when `last_reported_price` is `None` for newly created trades during backtest evaluation.
4+
**Why:** In `BacktestTradeOrderEvaluator.evaluate()`, orders are filled first via `_check_has_executed()`. Newly created trades from those fills haven't received OHLCV price updates yet, so `last_reported_price` is `None`. When `_check_stop_losses()` internally re-queries all open trades (including the new ones), `has_triggered(None)` was called, causing `<=` comparison to fail with `TypeError`.
5+
**Branch:** `squad/384-fix-stoploss-none-price`
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
### 2026-03-18: Python dependency PRs merged
2+
3+
**By:** Vasquez (requested by marcvanduyn)
4+
5+
**What:** Merged 2 Dependabot Python dependency bump PRs:
6+
- **PR #382** — pyjwt 2.10.1 → 2.12.0 (indirect, lockfile-only) ✅ Merged
7+
- **PR #377** — tornado 6.5.2 → 6.5.5 (indirect, lockfile-only) ✅ Merged
8+
9+
Both were indirect dependency bumps touching only `poetry.lock`. CI passed (GitGuardian). Branch protection required `--admin` flag to merge.
10+
11+
**Why:** Routine dependency maintenance — keeps indirect deps current and patched.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Orchestration Log Entry
2+
3+
> One file per agent spawn. Saved to `.squad/orchestration-log/{timestamp}-{agent-name}.md`
4+
5+
---
6+
7+
### {timestamp} — {task summary}
8+
9+
| Field | Value |
10+
|-------|-------|
11+
| **Agent routed** | {Name} ({Role}) |
12+
| **Why chosen** | {Routing rationale — what in the request matched this agent} |
13+
| **Mode** | {`background` / `sync`} |
14+
| **Why this mode** | {Brief reason — e.g., "No hard data dependencies" or "User needs to approve architecture"} |
15+
| **Files authorized to read** | {Exact file paths the agent was told to read} |
16+
| **File(s) agent must produce** | {Exact file paths the agent is expected to create or modify} |
17+
| **Outcome** | {Completed / Rejected by {Reviewer} / Escalated} |
18+
19+
---
20+
21+
## Rules
22+
23+
1. **One file per agent spawn.** Named `{timestamp}-{agent-name}.md`.
24+
2. **Log BEFORE spawning.** The entry must exist before the agent runs.
25+
3. **Update outcome AFTER the agent completes.** Fill in the Outcome field.
26+
4. **Never delete or edit past entries.** Append-only.
27+
5. **If a reviewer rejects work,** log the rejection as a new entry with the revision agent.

0 commit comments

Comments
 (0)