Skip to content
Open
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
d213f54
feat(nodes,ai): RocketRide cloud DB nodes phase 1 — rocketride_sql + …
dylan-savage Jul 22, 2026
398068c
docs: fix stale db_neo4j references after graph_neo4j rename (#1611)
dylan-savage Jul 22, 2026
9b62fcd
feat(nodes,ai): RocketRide cloud DB nodes phase 2 — Cypher→AGE layer …
dylan-savage Jul 22, 2026
3b1a0fb
feat(ai): cloud DSN delivery for RocketRide DB nodes — broker resolve…
dylan-savage Jul 23, 2026
8cf951b
feat(nodes,ai): OSS cloud sign-in via per-node RocketRide API key
dylan-savage Jul 23, 2026
688744e
test(nodes): derive expected db name from RR_TEST_PG_DSN, not hardcoded
dylan-savage Jul 27, 2026
5855625
docs(ai): align broker/door contract notes and test fakes with shippe…
dylan-savage Jul 28, 2026
7b6977c
feat(ai): promote all four TBD AGE capability cells to REJECT (verifi…
dylan-savage Jul 28, 2026
5e732d2
revert(nodes,ai): defer the OSS API-key sign-in path (revert 8cf951ba)
dylan-savage Jul 28, 2026
ac68fcb
chore: mark age layer generated/vendored paths for collapsed diffs
dylan-savage Jul 28, 2026
06ab8c5
fix(nodes,ai): apply review fixes across DB nodes and AGE layer
dylan-savage Jul 28, 2026
61ae447
Merge remote-tracking branch 'origin/develop' into feat/rocketride-db…
dylan-savage Jul 28, 2026
6d0737c
fix(nodes,ai,ci): address human review — firewall ordering, env hygie…
dylan-savage Jul 30, 2026
d9b108d
Merge remote-tracking branch 'origin/develop' into feat/rocketride-db…
dylan-savage Jul 30, 2026
935bf3e
fix(nodes,ci): pin pgvector CI image to 0.8.0; shared autocommit guard
dylan-savage Jul 30, 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
7 changes: 6 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,9 @@
*.whl binary


.github/workflows/*.lock.yml linguist-generated=true merge=ours
.github/workflows/*.lock.yml linguist-generated=true merge=ours
# ANTLR-generated openCypher/agtype parsers (committed so devs don't need Java);
# vendored apache/age agtype decoder. Collapsed in diffs — see the age layer README.
packages/ai/src/ai/common/graph/age/_cypher/gen/** linguist-generated=true
packages/ai/src/ai/common/graph/age/_agtype/gen/** linguist-generated=true
packages/ai/src/ai/common/graph/age/_agtype/** linguist-vendored=true
40 changes: 40 additions & 0 deletions .github/workflows/_build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,46 @@ jobs:
echo "ROCKETRIDE_TEST_AZURE_CONTAINER=rocketride-test"
} >> "$GITHUB_ENV"

# Postgres for the RocketRide cloud DB node integration suites (Linux
# only): pgvector for rocketride_sql/vector, Apache AGE for
# rocketride_graph. Same pattern as MinIO/Azurite above — env vars are
# exported to $GITHUB_ENV only after both databases are healthy, and
# RR_REQUIRE_DB_TESTS additionally turns the suites' unreachable-DB
# skip into a hard failure, so a container that fails to start can
# never let the safety-control tests go silently green.
# NB: close to, not exactly, the cloud pin (PG 16.14 + AGE 1.5.0 +
# pgvector 0.8.0 in ONE database); publishing that exact image to GHCR
# is a noted follow-up. AGE version here IS the pinned 1.5.0.
- name: Start Postgres (pgvector + AGE) for tests / Linux
if: matrix.platform == 'ubuntu' && inputs.codeql == false
run: |
set -euo pipefail
docker run -d --name rr-pgvector -p 55432:5432 \
-e POSTGRES_USER=rruser -e POSTGRES_PASSWORD=rrpass -e POSTGRES_DB=rrtenant \
pgvector/pgvector:pg16
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
docker run -d --name rr-age -p 55433:5432 \
-e POSTGRES_USER=rruser -e POSTGRES_PASSWORD=rrpass -e POSTGRES_DB=rrtenant \
apache/age:release_PG16_1.5.0 -c shared_preload_libraries=age
for name in rr-pgvector rr-age; do
ready=
for i in $(seq 1 30); do
if docker exec "$name" pg_isready -U rruser -d rrtenant >/dev/null 2>&1; then ready=1; break; fi
sleep 2
done
[ "${ready:-}" = "1" ] || { echo "$name did not become ready"; docker logs "$name" || true; exit 1; }
done
docker exec rr-pgvector psql -U rruser -d rrtenant -c 'CREATE EXTENSION IF NOT EXISTS vector;'
docker exec rr-age psql -U rruser -d rrtenant -c 'CREATE EXTENSION IF NOT EXISTS age;'
# Smoke both: a vector literal and an AGE graph round-trip.
docker exec rr-pgvector psql -U rruser -d rrtenant -c "SELECT '[1,2,3]'::vector;"
docker exec rr-age psql -U rruser -d rrtenant -c "SET search_path=ag_catalog,\"\$user\",public; SELECT create_graph('ci_smoke'); SELECT drop_graph('ci_smoke', true);"
# Export test vars only once both databases are live.
{
echo "RR_TEST_PG_DSN=postgresql://rruser:rrpass@localhost:55432/rrtenant"
echo "RR_TEST_AGE_DSN=postgresql://rruser:rrpass@localhost:55433/rrtenant"
echo "RR_REQUIRE_DB_TESTS=1"
} >> "$GITHUB_ENV"

- name: Test
if: inputs.codeql == false
# Integration tests boot a local server on :5565 and connect a test
Expand Down
Loading
Loading