Skip to content

Follow-ups, tables, monitors in full, triggers, proposals, sub-accoun… - #17

Merged
Siddharth-DWT merged 2 commits into
mainfrom
feat/web-search-agent
Oct 15, 2026
Merged

Siddharth-DWT merged 2 commits into
mainfrom
feat/web-search-agent

Conversation

@Siddharth-DWT

@Siddharth-DWT Siddharth-DWT commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Title: The agent's saved logins need no picking: logins on agent runs, follow-ups and tables

Branch: feat/web-search-agent → main. The change is one commit, 15391d1 (logins on agent runs, follow-ups and tables). Against main (03a8488, #17's squash merge) the diff is 3 files, +38 −16.

The branch still carries #17's commits from before its squash merge (466280c, 149f7c1), so it conflicts with main in all three files. It is to be recreated from main with only this commit before the PR is opened.

Not to be released yet. logins needs the API from Seam-be's feat/search-agent-groundwork, which is not yet on mesharc.dev. It goes out in 0.7.0 with #17's additions once that is deployed.

Why

The API no longer needs to be told which saved login to use. Left alone, each page is read with the workspace's login for its site, so one run can read several sites signed in. The client should be able to keep that default, or change it.

What

  • logins= on agent(), AgentRun.follow_up(), agent_batches.preview() and agent_batches.start():
    • "none" reads every site signed out;
    • a list (any iterable) of login ids limits the run to those logins;
    • left out, nothing is sent, and the API uses "auto".
  • login_id= stays as the older form of a list of one.
  • Docs: the agent() docstring describes the new default, and agent_batches.start()'s docstring names logins. CHANGELOG, under Unreleased.

Testing

  • Checks: ruff clean, mypy clean, pytest 278 passed. The new test checks that logins is left out by default, and is sent as "none" and as a list, from a generator too, on a run and on a table preview.
  • Live, against the local API from the feature branch:
    • agent(logins="none") was stored as none;
    • left out, it was stored as auto;
    • ["not-a-login"] returned a 400: "logins: no such login in this workspace".

Notes

mesharc-mcp pins the published 0.6.0 and is unchanged. It follows the release.

Siddharth-DWT and others added 2 commits October 14, 2026 16:53
…ts, and four monitor MCP tools

Client
- agent(): login_id, data_connections, proposals (sent only when given);
  AgentRun.follow_up(); conversations() and conversation(); estimate().
- monitors: budget, alerts, add_to_project, rows, destination and
  sentiment on create/update; overview(), rows(), rows_page(), row(),
  row_events(), export_rows().
- arc.agent_batches (preview, start, get, rows, wait, list, cancel,
  export), arc.triggers, arc.proposals, arc.sub_accounts, arc.connections
  and arc.logins.
- MeshArc(tenant=...) and as_sub_account(id): X-MeshArc-Tenant on every
  request; TENANT_HEADER.

MCP
- create_monitor, list_monitors, pause_monitor and get_monitor_rows
  (21 tools; list_monitors and get_monitor_rows read-only).
- create_project takes max_credits_per_run and max_credits_per_month.

ruff clean, mypy clean, pytest 277 passed. Live against the local API
with every new call (agent follow-up, a two-row table, an agent monitor's
records, sub-accounts, the MCP tools). Unreleased: the API routes are on
Seam-be's feature branch, not yet on mesharc.dev.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in the security policy update (#16); no conflicts. ruff and mypy
clean, pytest 277 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Siddharth-DWT
Siddharth-DWT merged commit 03a8488 into main Oct 15, 2026
6 checks passed
@Siddharth-DWT
Siddharth-DWT deleted the feat/web-search-agent branch October 15, 2026 05:19
Siddharth-DWT pushed a commit that referenced this pull request Oct 15, 2026
main has #17 squash-merged; each conflict kept this branch's side, which is main's line with logins added.
Siddharth-DWT added a commit that referenced this pull request Oct 15, 2026
…w-ups and tables (#18)

**Title:** The agent's saved logins need no picking: `logins` on agent
runs, follow-ups and tables

**Branch:** `feat/web-search-agent` → `main`. The change is `15391d1`
(logins on agent runs, follow-ups and tables).

`7a3cc4f` merges `main` in. `main` has #17 squash-merged, and the branch
still carried #17's own commits (`466280c`, `149f7c1`). Every conflict
kept this branch's side, which is `main`'s line with `logins` added.

Against `main` (`03a8488`) the diff is 3 files, +38 −16, and it merges
cleanly (checked with `git merge-tree` on 15 Oct).

**Not to be released yet.** `logins` needs the API from Seam-be's
`feat/search-agent-groundwork`, which is not yet on mesharc.dev. It goes
out in 0.7.0 with #17's additions once that is deployed.

## Why

The API no longer needs to be told which saved login to use. Left alone,
each page is read with the workspace's login for its site, so one run
can read several sites signed in. The client should be able to keep that
default, or change it.

## What

- **`logins=`** on `agent()`, `AgentRun.follow_up()`,
`agent_batches.preview()` and `agent_batches.start()`:
  - `"none"` reads every site signed out;
  - a list (any iterable) of login ids limits the run to those logins;
  - left out, nothing is sent, and the API uses `"auto"`.
- **`login_id=`** stays as the older form of a list of one.
- **Docs:** the `agent()` docstring describes the new default, and
`agent_batches.start()`'s docstring names `logins`. CHANGELOG, under
Unreleased.

## Testing

- **Checks:** `ruff` clean, `mypy` clean, `pytest` 278 passed. The new
test checks that `logins` is left out by default, and is sent as
`"none"` and as a list, from a generator too, on a run and on a table
preview.
- **Live, against the local API from the feature branch:**
  - `agent(logins="none")` was stored as `none`;
  - left out, it was stored as `auto`;
- `["not-a-login"]` returned a 400: "logins: no such login in this
workspace".

## Notes

`mesharc-mcp` pins the published 0.6.0 and is unchanged. It follows the
release.

---------

Co-authored-by: Siddharth-DWT <smishara9120@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Siddharth-DWT pushed a commit that referenced this pull request Oct 15, 2026
main has #17 and #18 squash-merged; each conflict kept this branch's docs wording (the agent signs in page by page) over main's earlier wording.
Siddharth-DWT added a commit that referenced this pull request Oct 15, 2026
**Title:** Docs: the agent signs in page by page with the logins it may
use

**Branch:** `feat/web-search-agent` → `main`. The change is `a4eb248`,
docs only.

`a660b27` merges `main` in. `main` has #17 and #18 squash-merged, and
the branch still carried their own commits. Both conflicts, in
`CHANGELOG.md` and `mesharc/__init__.py`, kept this branch's wording
over `main`'s earlier one.

Against `main` (`74da2ea`) the diff is 3 files, +10 −8, and it merges
cleanly (checked with `git merge-tree` on 15 Oct).

**Not to be released yet.** It describes the API on Seam-be's
`feat/search-agent-groundwork`, which is not yet on mesharc.dev. It goes
out in 0.7.0 with #17 and #18 once that is deployed.

## Why

The API's agent no longer reads every page on a site with a saved login
signed in. It reads pages signed out and signs in page by page, where a
page needs the account. `logins` (#18) now says which logins it *may*
use. The client's docs said otherwise.

## What

- **`agent()` docstring:** the agent reads pages signed out, as the
public sees them, and signs in page by page with the login for that
page's site. `logins` says which it may use (every one by default,
`"none"`, or a list), and `login_id` is the older form of a list of one.
- **README:** the same, in the agent's logins section. The example
passes `logins="auto"` in place of `login_id=None`.
- **CHANGELOG:** the Unreleased logins entry says the same.

No code changes.

## Testing

On the merged code: `ruff` clean, `mypy` clean, `pytest` 278 passed.

---------

Co-authored-by: Siddharth-DWT <smishara9120@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Siddharth-DWT added a commit that referenced this pull request Oct 15, 2026
**Title:** Fixes: wait() through a cancelling table, follow-up links,
the sentiment type, records search

**Branch:** `feat/web-search-agent` → `main`. The change is `e307b44`: 3
files, +27 −4.

`main` (`d9cd73f`) has #19 squash-merged, and the branch still carries
that PR's own commits, so the PR's file list also shows #19's README and
CHANGELOG lines. They are already on `main`, unchanged. The branch
merges cleanly (checked with `git merge-tree` on 15 Oct), and what it
changes on `main` is `e307b44` alone.

**Not to be released yet.** It goes out in 0.7.0 with #17–#19 once
Seam-be's `feat/search-agent-groundwork` is on mesharc.dev.

## Why

A review of the client against the API found these. Each was reproduced
against a mocked API first.

## What

- **`agent_batches.wait()` returned while a table was still
`cancelling`,** with its rows not yet stopped. It now waits until the
table has ended. The shared running check counts `cancelling` as still
running; no other kind of job uses that status.
- **`AgentRun.follows_run_id` and `followed_by`** name the message a
follow-up follows and the one asked after it, as `continues_run_id` and
`continued_by` do for a continuation.
- **`monitors.create` and `update` type `sentiment` as `False` or
`{"connectionId", "only"}`.** `True` was allowed by the type, but the
API always refuses it.
- **`rows(q=...)` and the MCP tool `get_monitor_rows`** now find a
record however far down the list it is, and `total` counts the matches.
The fix is in the API, which now searches every record before cutting a
page. The client needs no change, but this needs the API's fix, on its
feature branch.
- **CHANGELOG:** a Fixed section under Unreleased.

## Testing

`ruff` clean, `mypy` clean, `pytest` 278 passed. The table-wait test now
goes through `cancelling` to `cancelled` with two polls, and the
follow-up test reads the new links.

---------

Co-authored-by: Siddharth-DWT <smishara9120@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant