Skip to content

Sync iaser-ai/ansari develop (c3f32fc1) into MachineWisdomAI develop - #16

Merged
timeleft-- merged 261 commits into
developfrom
sync/develop-c3f32fc1
Nov 5, 2026
Merged

timeleft-- merged 261 commits into
developfrom
sync/develop-c3f32fc1

Conversation

@timeleft--

Copy link
Copy Markdown
Member

Brings upstream iaser-ai/ansari develop (c3f32fc, 260 commits) into this fork's develop. After the merge, a PR from here to upstream contains only the Ansari MCP work.

Conflict

pnpm-lock.yaml was the only conflict. It starts from upstream's lockfile and is regenerated with pnpm install --lockfile-only. Compared with upstream, it changes only apps/mcp's dependency tree:

  • @saga-a2ui/* 1.0.x;
  • @modelcontextprotocol/* 2.4.0;
  • hono 4.13.16, @hono/node-server 2.1.5 and dompurify 3.4.17.

Verification

  • pnpm install --frozen-lockfile --strict-peer-dependencies --filter ansari-mcp... succeeds.
  • pnpm mcp verify passes: lint, typecheck, 146 tests and 78 browser checks.
  • bash apps/mcp/scripts/verify-container.sh passes.
  • pnpm check:release --target production passes.
  • The api, auth and frontend apps are upstream's, unchanged; CI runs them here.

🤖 Generated with Claude Code

OdyAsh and others added 30 commits October 25, 2026 11:16
…through apps/auth and call apps/api with their JWT
…ream, add WA_MAINTENANCE_MODE, remove the per-user lock
…uest_id only, Sentry for thread/auth failures, PORT, Dockerfile uv pin
…ns against a real apps/api; record real-service run
…erify token; keep tests independent of local MOCK_AUTH_TOKEN
Defines the requirements, native module constraints (expo-apple-authentication and @react-native-google-signin/google-signin), Better Auth ID token verification contract, and two-token protocol parity for issue iaser-ai#324.
…n-in

Updates spec 324 to adopt react-native-nitro-google-signin powered by Nitro Modules (Android Credential Manager & native iOS SDK) in place of @react-native-google-signin/google-signin.
amrmelsayed and others added 27 commits October 30, 2026 10:35
…ment 2); 0001 regenerated as 0001_api_key; better-auth model test; phone_number accepted and ignored
… coverage, U2 scan positive control and pinned sign-up behaviour, doc nits, optional shapes)
…s the Dockerfile

Railway refuses --mount=type=cache without an id tied to its own service id
('flag --mount=type=cache,target=/root/.cache/uv is missing an id argument').
Copy pyproject.toml and uv.lock before the dependency sync instead of
bind-mounting them; Docker's layer cache still skips the sync when only src/
changes.
…-railway

fix(whatsapp): Dockerfile builds on Railway (no BuildKit cache mounts)
…hatsApp token exchange (spec 329)

Service API keys through @better-auth/api-key, issued only by apps/auth/scripts/service-keys.ts, and POST /api/whatsapp/session, which exchanges a whatsapp:mint key and a BSUID for the standard 15-minute JWT, only ever for a WhatsApp user. No phone number is stored (owner amendment 2). Migration 0001_api_key was applied to staging before this merge; production gets the whole auth journal at its cutover.
wa_ becomes ansari_wa_ and amcp_ becomes ansari_mcp_, so every Ansari key
names its issuer as well as its service (as sk-ant-, ghp_ do), and the
secret-scanning patterns are less likely to collide with other issuers'
tokens. A test now requires every prefix to be ansari_<service>_, unique, and
not the start of another.
…the old scanning pattern until they are revoked
feat(auth): namespace service key prefixes as ansari_<service>_
Regenerated with `uv lock --upgrade` under uv 0.9.13, the line that wrote
the lock and that the Dockerfile and CI pin; `revision = 3` is unchanged.
Every range in pyproject.toml is open, so no manifest change is needed.

The one alert that mattered for the deployed image is certifi: the locked
2025.1.31 bundle still trusted the emSign root whose intermediate keys were
compromised, and certifi is the trust store for every httpx call the
service makes to Meta, apps/auth and apps/api. It is now 2026.10.23.

Also moved: anyio 4.9.0 -> 4.15.1, urllib3 2.5.0 -> 2.8.0, starlette
0.46.2 -> 1.7.0 (fastapi 0.115.12 -> 0.162.0), python-multipart 0.0.20 ->
0.0.32, requests, idna, python-dotenv, pytest, pygments, sentry-sdk,
pydantic, uvicorn.

Not moved: dnspython 2.8.0. Its patched 2.9.x requires Python >= 3.11 and
the project declares >= 3.10, so a universal lock cannot take it. It is
dev-only (email-validator via fastapi[standard]) and not in the image.
certifi is not a direct dependency (it arrives through httpx and requests),
so after the lock refresh nothing in the manifest forbade a future resolve
from going back below the emSign fix. `[tool.uv] constraint-dependencies`
floors it without making it a direct dependency; uv.lock records the
constraint in its [manifest] block and the resolved set is unchanged.

Negative test: with the floor raised above the pinned version,
`uv lock --check` exits 1; restored, it exits 0.
chore(whatsapp): refresh uv.lock to clear the open Dependabot alerts
Brings upstream's 260 commits in. pnpm-lock.yaml was the only conflict:
it starts from upstream's lockfile and is regenerated with pnpm install --lockfile-only,
so the only changes against upstream are apps/mcp's dependency tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@yia-mw-agent yia-mw-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed the full merge-base-to-head diff (base develop 853aee9, head 510c9a9). No material defects.

Helmet-Review-Request: #16 (comment)

What I checked:

  • The merge result matches iaser-ai/ansari develop c3f32fc everywhere except apps/mcp, pnpm-lock.yaml and pnpm-workspace.yaml. Outside those paths, no file differs from upstream.
  • apps/mcp is byte-identical to the fork's base develop, so the merge does not alter the MCP work.
  • pnpm-workspace.yaml: the only addition against upstream is the dompurify and @hono/node-server overrides. Only apps/mcp declares hono, @hono/node-server or dompurify, so the overrides cannot reach the api, auth or frontend apps.
  • pnpm-lock.yaml against upstream changes only the MCP dependency tree (@saga-a2ui/* 1.0.x, @modelcontextprotocol/* 2.4.0, hono 4.13.16, @hono/node-server 2.1.5, dompurify 3.4.17). The PR description's account of this is accurate.
  • Run locally at the exact head: pnpm install --frozen-lockfile --strict-peer-dependencies --filter ansari-mcp... passes; apps/mcp lint, typecheck and tests pass (146 of 146); pnpm check:release --target production passes (registry verification of the five @saga-a2ui packages).
  • CI on this head passes: MCP application, api, auth, frontend, gitleaks, whatsapp. I did not rerun the 78 browser checks or the api, auth and frontend suites locally; CI covers them.

Non-blocking: none.

@timeleft--
timeleft-- merged commit 54b79f8 into develop Nov 5, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants