Repository navigation
Port the backend to Go and refresh README demo previews - #115
Merged
Merged
Conversation
…erson writes Python's person graph Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…g or mismatched workspace refused, failure hook without one does nothing) (failing) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…onciliation, Postgres ledger/store/source_stats adapters and live web, browser, settings and enrichment ports; tenant only from the claimed row Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
… unfinished probe is nil) (failing) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…t and probes without the Python worker Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
… GO_EXECUTOR_BULK_ENRICH, hand-back otherwise) and the in-process source probe (GO_NATIVE_SOURCE_PROBE) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…CUTOR_COLLECT cohort (failing) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…ead-less rows are refused (review wave2a M4) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…r + validate_lead_light) with leadpeople account fit; gate decisions match the recorded Python ones Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…on queries Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…tion Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…dd ValidateOutputColumns Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
… refuse non-literal output webhook URLs with a 422 Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…K cohort; preview served behind GO_SOURCE_PREVIEW_ENABLED (RED) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…rces/{col_id}/preview in Go behind GO_SOURCE_PREVIEW_ENABLED
Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…rage counts it as ported behind its flag Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…utor when the cohort covers the workspace (RED) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…GO_EXECUTOR_SOURCE_WORKBOOK (default python) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…d GO_ALL_NATIVE (RED) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…ugh config.Getenv and InCohort (wildcard cohort, GO_ALL_NATIVE) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…, events), cancel during enrichment, intent block, failure-hook reconciliation, ledger guards, upsert, source_stats and bulk_enrich Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…or, never without a workspace Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
… the GO_EXECUTOR_COLLECT / GO_EXECUTOR_BULK_ENRICH cohort Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…flags, native probe only with the source health executor Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…ect_phone, personal_email) key per person; manifest providers use the cache (failing) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…_email are keyed per person; manifest providers use the enrichment cache again Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…ct the member to fail at the search (deviation map, README line) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
… are rate limited, 429 with Retry-After; no separate invite/accept routes exist in this API Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…d and settled against the workspace daily LLM cap; pre-route, descriptions, memory and briefs make no LLM call in Go Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…s and log texts now describes the in-process runtime Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
… production adapters; recorded fixtures replay (failing) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…outreach store and send queue (enqueue only, in the write transaction, caller keys namespaced per workspace) and autosvc rule validation; stored rules keep the client's key order Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…ne send in each (failing) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…ng-send check to the workspace (no cross-tenant existence oracle or blocking); QueueSend takes a pgx.Tx Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…mplementation, runs in the pipeline tx) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…_email and create_automation in Go Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
… sandbox starts on Ubuntu 24.04 runners Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…runner outlasted the one-minute window: 401 instead of 429) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…package or sequence insert can take Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…reeRecordIDs free recorded literal ids below it Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
…low testpg.SeqFloor; no test moves a shared sequence backwards (fixes workbook_rows pkey collisions across packages under -p 4) Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
Signed-off-by: debpalash <4178343+debpalash@users.noreply.github.com>
Signed-off-by: debpalash <4178343+debpalash@users.noreply.github.com>
This was referenced Oct 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace the Python application runtime with native Go API, worker, scheduler, MCP and migration binaries. Python remains in the internal browser service for Playwright and browser-dependent scraping.
The port covers authentication and workspace isolation, settings and encrypted secrets, workbooks and enrichment, leads and signals, audiences and destinations, automations, outreach, governance and agent access. PostgreSQL with forced workspace RLS owns data and the durable queue; Redis carries progress. The Go migration runner adopts the exact Alembic baseline
e7b2c4d6f8a0and applies migrations through version 4.Final backend fixes
README and deployment notes
The README now includes light/dark dashboard screenshots and two compressed GIFs showing connected records and an import review. These are explicitly labeled as previews from the separate dashboard redesign; this PR does not bundle that local redesign or canonical-record migration 5.
The server example uses a reviewed Go revision instead of assuming an older release tag contains this runtime. Existing Python installations have a separate upgrade section linked to the cutover runbook.
Release images use explicit
opengtm-{api,worker,mcp,migrate,scheduler,browser}names. The plain legacyghcr.io/debpalash/opengtmalias stays unchanged.Validation
Merge checks
Production cutover preflight
Existing Python production cutovers must retain a verified pre-cutover backup and pass the rollback rehearsal before deployment. See migration ownership and preconditions and Python-free cutover. No release tag, image publication or production deployment is part of this PR merge.