Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/BRANCH_PROTECTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ file — it's a Settings-page click-through. Follow the steps below for

## Steps

1. Go to https://github.com/Pursuit-Assets/bedrock/settings/branches
1. Go to https://github.com/Pursuit-Org/bedrock/settings/branches
2. Click **Add branch ruleset** (or **Add rule** in the legacy UI).
3. **Ruleset name**: `protect-main` (or `protect-dev`).
4. **Enforcement status**: Active.
Expand Down
8 changes: 4 additions & 4 deletions financial_forecasting/JOBS_QUICKSTART.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ sent — this is the in-repo copy. Once you're running, read `JOBS_ONBOARDING.md

## Get these from Jac first

1. You're added to the GitHub repo `Pursuit-Assets/bedrock` (confirm you can see it
at github.com/Pursuit-Assets/bedrock).
1. You're added to the GitHub repo `Pursuit-Org/bedrock` (confirm you can see it
at github.com/Pursuit-Org/bedrock).
2. Your laptop's IP is whitelisted on the database — run `curl ifconfig.me` in a
terminal and send Jac the result.
3. The `DATABASE_URL` value for your `.env` — Jac sends it securely.
Expand All @@ -34,10 +34,10 @@ learn, and verify each step works before moving to the next.
1. Check whether I have git, node (v20+), python3, and the GitHub CLI (gh). Install
anything missing using Homebrew (install Homebrew first if I don't have it).
2. Log me into GitHub: run `gh auth login` and walk me through the browser steps
(I already have access to the Pursuit-Assets/bedrock repo).
(I already have access to the Pursuit-Org/bedrock repo).
3. Make a projects folder and clone the repo into it:
mkdir -p ~/dev && cd ~/dev
git clone https://github.com/Pursuit-Assets/bedrock.git
git clone https://github.com/Pursuit-Org/bedrock.git
cd bedrock
4. Switch to the branch we work on (NOT main):
git checkout feat/jobs-pipeline && git pull
Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/absorb_old_outreach.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
load_dotenv(os.path.join(HERE, ".env"))
# public.outreach/contacts writes need the postgres superuser (same as
# contacts_merge_execute.py) — bedrock_user only owns the bedrock schema.
load_dotenv("/Users/jacquelinereverand/dev/build/test-pilot-server/.env", override=False)
load_dotenv("/Users/jacquelinereverand/dev/build/platform/server/.env", override=False)


def _su_url():
Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/apply_jobs_roles_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Reads PG_USER/PG_PASSWORD/PG_HOST/PG_PORT/PG_DATABASE from the environment or a
.env. If they're not in this app's .env, point at the one that has them, e.g.:
python -m scripts.apply_jobs_roles_v2 --env ../test-pilot-server/.env
python -m scripts.apply_jobs_roles_v2 --env ../platform/server/.env
"""
import argparse
import asyncio
Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/apply_sql.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Reads PG_USER/PG_PASSWORD/PG_HOST/PG_PORT/PG_DATABASE from the environment or a
.env. If they live in another service's .env, point at it:

python -m scripts.apply_sql db/migrations/2026-06-18-jobs-parent-account.sql --env ../test-pilot-server/.env
python -m scripts.apply_sql db/migrations/2026-06-18-jobs-parent-account.sql --env ../platform/server/.env
"""
import argparse
import asyncio
Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/contacts_merge_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
sys.path.insert(0, '/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting')
from dotenv import load_dotenv
load_dotenv('/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting/.env')
load_dotenv('/Users/jacquelinereverand/dev/build/test-pilot-server/.env', override=False)
load_dotenv('/Users/jacquelinereverand/dev/build/platform/server/.env', override=False)
import asyncpg

def _su_url():
Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/contacts_merge_execute.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
sys.path.insert(0, '/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting')
from dotenv import load_dotenv
load_dotenv('/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting/.env')
load_dotenv('/Users/jacquelinereverand/dev/build/test-pilot-server/.env', override=False)
load_dotenv('/Users/jacquelinereverand/dev/build/platform/server/.env', override=False)
import asyncpg

def _su_url():
Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/data_audit_jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
sys.path.insert(0, '/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting')
from dotenv import load_dotenv
load_dotenv('/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting/.env')
load_dotenv('/Users/jacquelinereverand/dev/build/test-pilot-server/.env', override=False)
load_dotenv('/Users/jacquelinereverand/dev/build/platform/server/.env', override=False)
import asyncpg

def _su_url():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
sys.path.insert(0, '/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting')
from dotenv import load_dotenv
load_dotenv('/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting/.env')
load_dotenv('/Users/jacquelinereverand/dev/build/test-pilot-server/.env', override=False)
load_dotenv('/Users/jacquelinereverand/dev/build/platform/server/.env', override=False)
import asyncpg

BASE_ID = "appU97D9wOfq6eidF"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
sys.path.insert(0, '/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting')
from dotenv import load_dotenv
load_dotenv('/Users/jacquelinereverand/dev/build/bedrock/financial_forecasting/.env')
load_dotenv('/Users/jacquelinereverand/dev/build/test-pilot-server/.env', override=False)
load_dotenv('/Users/jacquelinereverand/dev/build/platform/server/.env', override=False)
import asyncpg

BASE_ID = "appU97D9wOfq6eidF"
Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/network_dedupe_merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

HERE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
load_dotenv(os.path.join(HERE, ".env"))
load_dotenv("/Users/jacquelinereverand/dev/build/test-pilot-server/.env", override=False)
load_dotenv("/Users/jacquelinereverand/dev/build/platform/server/.env", override=False)

REASON = "network dedupe: same staff + same name, cross-batch linkedin reimport (job change)"

Expand Down
2 changes: 1 addition & 1 deletion financial_forecasting/scripts/repair_outreach_links.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

HERE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
load_dotenv(os.path.join(HERE, ".env"))
load_dotenv("/Users/jacquelinereverand/dev/build/test-pilot-server/.env", override=False)
load_dotenv("/Users/jacquelinereverand/dev/build/platform/server/.env", override=False)

STAGE_MAP = {
"Initial Outreach": "initial_outreach", "Active Lead": "active",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

HERE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
load_dotenv(os.path.join(HERE, ".env"))
load_dotenv("/Users/jacquelinereverand/dev/build/test-pilot-server/.env", override=False)
load_dotenv("/Users/jacquelinereverand/dev/build/platform/server/.env", override=False)


def _su_url():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ Key CORRECTED facts (I got these wrong earlier, now verified in code):
- So axes: (1) person status global, (2) jobs pipeline membership = flag+funnel+owner+reason, (3) warmth derived, (4) staff-edge strength+disposition. Opportunity/account stages separate/calculated.

## VERIFIED cross-product + scraping impact (code sweeps, 2026-07-08)
Repos: platform FRONTEND pilot-client = /Users/jacquelinereverand (src/); platform BACKEND test-pilot-server = "/Users/jacquelinereverand/old platform folder/test-pilot-server" (current despite name). bedrock app = scratchpad/bedrock-live/financial_forecasting.
Repos: platform monorepo (Pursuit-Org/platform) — FRONTEND client/ = /Users/jacquelinereverand (src/); BACKEND server/ = "/Users/jacquelinereverand/old platform folder/test-pilot-server" (local checkout of the pre-merge backend). bedrock app = scratchpad/bedrock-live/financial_forecasting.
- PLATFORM never refs contacts.is_jobs_contact or contacts.contact_stage → dropping/splitting them is PLATFORM-SAFE (bedrock-only). Never refs sf_contact_link/sf_account_company_map → bedrock-only to retire.
- PLATFORM "Employment Engine" (test-pilot-server/controllers/employmentEngineController.js) = builder-facing network+intros on the SHARED tables: reads contacts.current_company (string) AND contacts.company_id (FK→companies) [already mid string→FK migration], contacts.dedup_key, and gates builder intros on staff_contact_relationships.is_visible_to_builders (load-bearing). companies = platform-owned full CRUD (queries/companies.js). PathfinderNetwork.jsx/BuilderInsights.jsx read current_company string.
- PLATFORM "Employment Engine" (server/controllers/employmentEngineController.js) = builder-facing network+intros on the SHARED tables: reads contacts.current_company (string) AND contacts.company_id (FK→companies) [already mid string→FK migration], contacts.dedup_key, and gates builder intros on staff_contact_relationships.is_visible_to_builders (load-bearing). companies = platform-owned full CRUD (queries/companies.js). PathfinderNetwork.jsx/BuilderInsights.jsx read current_company string.
- employment_records.company_name = platform reads as display/sort only (adminDashboard.js), never joins to companies → adding company_id + keeping company_name as cache is SAFE. job_applications/job_postings.company_name = Pathfinder matches by NAME STRING (company_id FK exists but unused) → FK migration is a SEPARATE Pathfinder task, not required for jobs.
- CORRECTION: do NOT physically merge staff_contact_relationships + connection_status (platform Employment Engine depends on staff_contact_relationships.is_visible_to_builders). Keep staff_contact_relationships (shared/platform); connection_status = separate bedrock disposition satellite; "one edge" is read-layer only.
- SCRAPING (bedrock nightly): candidate_pipeline/builder_match/jobs_activity_link tightly coupled to is_jobs_contact+contact_stage with SILENT failure modes (0-row UPDATE WHERE contact_stage='candidate' "succeeds"). Step 3 must migrate the whole pipeline + bedrock.merge_contacts() fn ATOMICALLY. GOTCHA: bedrock.activity.account_id/contact_ids hold SALESFORCE ids (via sf_contact_link/account_email_domain); participant_public_contact_id is the public link. sf_contact_link→contacts.sf_id consolidation must preserve contact→SF-account path (via account.sf_id) or activity.account_id silently changes meaning.
Expand Down
6 changes: 3 additions & 3 deletions tasks/jac-running-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ Original target Wed 2026-04-22 is deferred. JP: *"We have time to do this correc

| Bug / Item | Priority | Status | Ref | Pending Jac action? |
|---|---|---|---|---|
| **Objects production-readiness plan** | P0 | ✅ Merged to dev ([PR #147](https://github.com/Pursuit-Assets/bedrock/pull/147)) | [plan](objects-production-readiness-plan.md) | — |
| **B1** targets not saving to shared DB | P0 | ✅ Merged to dev | [#142](https://github.com/Pursuit-Assets/bedrock/pull/142) | ⏳ Run migration + confirm deployed `DATABASE_URL` (see below) |
| **B2** opp `Type` field missing on view | P0 | ✅ Merged to dev | [#144](https://github.com/Pursuit-Assets/bedrock/pull/144) | — |
| **Objects production-readiness plan** | P0 | ✅ Merged to dev ([PR #147](https://github.com/Pursuit-Org/bedrock/pull/147)) | [plan](objects-production-readiness-plan.md) | — |
| **B1** targets not saving to shared DB | P0 | ✅ Merged to dev | [#142](https://github.com/Pursuit-Org/bedrock/pull/142) | ⏳ Run migration + confirm deployed `DATABASE_URL` (see below) |
| **B2** opp `Type` field missing on view | P0 | ✅ Merged to dev | [#144](https://github.com/Pursuit-Org/bedrock/pull/144) | — |
| **B3** Reports + Contacts 500-row cap | P1 | 📘 Absorbed — PRs #149-#151 | [plan](objects-production-readiness-plan.md) | — |
| **B4** task create/edit/delete bugs | P1 | 📘 Absorbed — PRs #161-#165 | [plan](objects-production-readiness-plan.md) | — |
| **B5** inline-edit lock too strict on Amount + Probability | P1 | 📘 Absorbed — PR #166 | [plan](objects-production-readiness-plan.md) | — |
Expand Down
2 changes: 1 addition & 1 deletion tasks/objects-production-readiness-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ This table is the source of truth for per-PR status. Each PR that ships updates

| # | Slug | Ships what | Size | Status |
|---|---|---|---|---|
| [#147](https://github.com/Pursuit-Assets/bedrock/pull/147) | `pr-planning` | This plan doc + doc updates across existing task files | docs-only | ✅ merged |
| [#147](https://github.com/Pursuit-Org/bedrock/pull/147) | `pr-planning` | This plan doc + doc updates across existing task files | docs-only | ✅ merged |
| #148 | `pr-page-rename-cleanup` | Rename `MyDashboard.tsx` → `Priorities.tsx` and `Overview.tsx` → `Progress.tsx` to align file/component names with sidebar labels | S | 👀 in review |
| #149 (= actual #155) | `pr-contacts-accounts-pagination` | Backend: Contacts + Accounts + opp-tasks → `query_all()`; my-tasks default+cap bumped; defensive test suite; FE comment trim | S-M | 👀 in review |
| #150 | `pr-rowcount-caption-reports-tabs` | `<RowCountCaption>` component + apply to Opportunities (migrate) / Accounts / Contacts / Tasks | M | ⏳ Queued |
Expand Down