Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1cff1b4
chore: cleanup finished claude worktree sessions (#81)
KooshaPari Jun 5, 2026
86c50f2
fix(CI): pin trufflehog setup action SHA (#85)
KooshaPari Jun 5, 2026
f50a93f
chore(workflows): FocalPoint safe audit normalization (#86)
KooshaPari Jun 5, 2026
5b939a1
chore(workflows): FocalPoint safe audit normalization (r2, parse-vali…
KooshaPari Jun 5, 2026
652a12f
chore(workflows): FocalPoint safe audit normalization (r4, parse-vali…
KooshaPari Jun 5, 2026
1ee8ae8
fix(focalpoint): vendor observability macro crate
KooshaPari Jun 5, 2026
a835eeb
fix(focalpoint): repair all-features MCP build
KooshaPari Jun 5, 2026
53a37a7
fix(connectors): notion/readwise parsers handle single-page + empty +…
Jun 5, 2026
7146921
fix(mcp-server): use public Tools::list_tools API in http_sse + webso…
Jun 5, 2026
bcd4b6f
chore: re-trigger mergeability check
KooshaPari Jun 6, 2026
19eb9b2
chore(workflows): FocalPoint safe audit normalization (r4, parse-vali…
KooshaPari Jun 7, 2026
ee69861
docs(AgilePlus): 2026-06-05 hygiene scorecard (#94)
KooshaPari Jun 7, 2026
34e58a1
fix(focus-mcp-server): Message::text returns Message, not Result (#93)
KooshaPari Jun 7, 2026
4df564b
ci(workspace): clone sibling PhenoObservability for cross-repo deps (…
KooshaPari Jun 7, 2026
8b7dfd9
docs(governance): add canonical background-agent policy file (#97)
KooshaPari Jun 7, 2026
4d2d5e2
ci(workflows): fix trufflehog rot in trufflehog.yml (#100)
KooshaPari Jun 7, 2026
a5cef31
ci(scorecard): use reusable workflow from phenotype-shared
KooshaPari Jun 8, 2026
0e143fb
chore: remove placeholder STATUS.md (#101)
KooshaPari Jun 9, 2026
b0991b2
chore(governance): confirm shared CODEOWNERS template is in use
KooshaPari Jun 9, 2026
9898d3c
chore(FocalPoint): hygiene bundle (#103)
KooshaPari Jun 9, 2026
485fbff
chore(stage-4): add Justfile
Jun 9, 2026
e902c33
chore(stage-5): add docs/SSOT.md (architectural decision register)
Jun 9, 2026
7b78b5d
chore(grade): apply fleet-wide grading framework
KooshaPari Jun 9, 2026
0865782
Merge origin/main into PR #87 branch
KooshaPari Jun 11, 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
1 change: 0 additions & 1 deletion .claude/worktrees/agent-a000e7f64ef518c90
Submodule agent-a000e7f64ef518c90 deleted from c36359
1 change: 0 additions & 1 deletion .claude/worktrees/agent-af4a36eeef58e5fdb
Submodule agent-af4a36eeef58e5fdb deleted from c36359
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
root = true

[*]
indent_style = space
indent_style = tab
indent_size = 2
end_of_line = lf
charset = utf-8
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/cargo-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: cargo-audit
permissions:
contents: read
pull-requests: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push:
branches: [main]
Expand All @@ -15,7 +19,7 @@ jobs:
audit:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.1
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v4@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.1
- uses: rustsec/audit-check@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ github.token }}
6 changes: 5 additions & 1 deletion .github/workflows/cargo-deny.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: cargo-deny
permissions:
contents: read
pull-requests: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true


on:
workflow_dispatch:
Expand All @@ -23,7 +27,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v4

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: CI
permissions:
contents: read
pull-requests: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on: [push, pull_request]
jobs:
test:
Expand All @@ -10,5 +14,9 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Clone sibling PhenoObservability
run: |
git clone --depth 1 https://github.com/KooshaPari/PhenoObservability.git \
"$GITHUB_WORKSPACE/../PhenoObservability"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI clones obsolete sibling repo

Medium Severity

The workflow clones PhenoObservability beside the workspace even though phenotype-observably-macros is vendored and connectors use the workspace dependency. An unnecessary clone can fail CI on network or access errors without helping the build.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 0865782. Configure here.

- run: cargo test --all-features --workspace
- run: cargo clippy --all-features -- -D warnings 2>/dev/null || cargo check
6 changes: 5 additions & 1 deletion .github/workflows/journey-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
permissions:
contents: read
pull-requests: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

# Journey Gate — Reusable Workflow
# =============================================================================
# Canonical source: phenotype-infra/docs/governance/ci-journey-gate.yml
Expand Down Expand Up @@ -58,7 +62,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v4

# ---------------------------------------------------------------------
# 1. Install runtime dependencies
Expand Down
32 changes: 4 additions & 28 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,10 @@
name: Scorecard

name: OpenSSF Scorecard
on:
push:
branches: [main, master]
branches: [main]
schedule:
- cron: "0 0 * * 0"

- cron: '17 3 * * 6'
permissions: read-all

jobs:
scorecard:
name: Scorecard analysis
runs-on: ubuntu-24.04
permissions:
security-events: write
id-token: write
contents: read
actions: read
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
persist-credentials: false
- name: Run Scorecard
uses: ossf/scorecard-action@v2.4.4
with:
results_file: results.sarif
results_format: sarif
publish_results: true
- name: Upload SARIF results
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
uses: KooshaPari/phenotype-shared/.github/workflows/reusable-scorecard.yml@72b9c6cbdb24c49189b0e7c7395d874830d1ed87
22 changes: 15 additions & 7 deletions .github/workflows/trufflehog.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
name: Trufflehog Secrets Scan
name: TruffleHog Secrets Scan
permissions:
contents: read
pull-requests: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push:
branches: [main]
pull_request:

jobs:
trufflehog:
runs-on: ubuntu-24.04
name: TruffleHog scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
with:
fetch-depth: 0
- uses: trufflehog/actions/setup@main
- run: trufflehog github --only-verified --no-update
env:
#
- uses: trufflesecurity/trufflehog@75add79b929b263dae147d2e5bcf0daf292165cf
with:
path: ./
base: ${{ github.event.repository.default_branch }}
head: HEAD
extra_args: --only-verified --fail --no-update
12 changes: 12 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,15 @@ All submissions require review. Please ensure:
- CI checks pass
- Code is documented
- Tests cover new functionality

## Governance

Project-wide rules live under `docs/governance/`. The canonical
background-agent policy that this repository and sibling repos
(such as `thegent` and `thegent-clean`) point at is:

- [`docs/governance/background_agent_policy.md`](./docs/governance/background_agent_policy.md)

When changing fleet composition, dispatch patterns, or
failure-handling expectations, update that file in the same PR and
reference the governance worklog entry.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ members = [
"crates/connector-linear",
"tests/e2e",
"crates/focus-plugin-sdk",
"crates/phenotype-observably-macros",
]

[workspace.package]
Expand Down Expand Up @@ -122,6 +123,13 @@ rand_core = "0.6"
# MCP SDK
mcp-sdk = "0.0.3"

# Phenotype cross-cutting deps (vendored locally; replaces the
# brittle ../../../PhenoObservability sibling path-dep that broke CI
# under sparse-checkout cone-mode, and the git dep that fails because
# PhenoObservability's submodule 'ObservabilityKit/python/pheno-logging'
# has no URL configured).
phenotype-observably-macros = { path = "crates/phenotype-observably-macros", version = "0.1.1" }

# Platform-specific paths
dirs = "5.0"

Expand Down
43 changes: 43 additions & 0 deletions Justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Justfile — task runner for the FocalPoint project
# See https://just.systems/man/en/

set dotenv-load

_default:
@just --list

# Run all CI checks locally
ci: fmt-check lint test build
@echo "✓ CI checks pass"

# Format code
fmt:
cargo fmt --all

# Check formatting
fmt-check:
cargo fmt --all -- --check

# Lint
lint:
cargo clippy --all-targets --all-features -- -D warnings

# Run tests
test:
cargo test --all-features

# Build release
build:
cargo build --release

# Audit dependencies for security advisories
audit:
cargo deny check advisories

# Check licenses
licenses:
cargo deny check licenses

# Clean build artifacts
clean:
cargo clean
7 changes: 0 additions & 7 deletions STATUS.md

This file was deleted.

2 changes: 1 addition & 1 deletion crates/connector-canvas/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ tokio = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
tracing = { workspace = true }
phenotype-observably-macros = { path = "../../../PhenoObservability/crates/phenotype-observably-macros" }
phenotype-observably-macros = { workspace = true }
url = "2.5"

[dev-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion crates/connector-gcal/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ live-gcal = []
focus-connectors = { path = "../focus-connectors" }
focus-events = { path = "../focus-events" }
focus-crypto = { path = "../focus-crypto", optional = true }
phenotype-observably-macros = { path = "../../../PhenoObservability/crates/phenotype-observably-macros" }
phenotype-observably-macros = { workspace = true }
secrecy = { workspace = true, optional = true }
serde = { workspace = true }
serde_json = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion crates/connector-github/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tokio = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
tracing = { workspace = true }
phenotype-observably-macros = { path = "../../../PhenoObservability/crates/phenotype-observably-macros" }
phenotype-observably-macros = { workspace = true }

[dev-dependencies]
wiremock = "0.6"
Expand Down
2 changes: 1 addition & 1 deletion crates/connector-linear/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ async-trait.workspace = true
tracing.workspace = true

# Observability
phenotype-observably-macros = { path = "../../../PhenoObservability/crates/phenotype-observably-macros" }
phenotype-observably-macros = { workspace = true }

[dev-dependencies]
wiremock = "0.6"
Expand Down
2 changes: 1 addition & 1 deletion crates/connector-notion/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ async-trait.workspace = true
tracing.workspace = true

# Observability
phenotype-observably-macros = { path = "../../../PhenoObservability/crates/phenotype-observably-macros" }
phenotype-observably-macros = { workspace = true }

[dev-dependencies]
wiremock = "0.6"
Expand Down
Loading
Loading