Commit Graph

1050 Commits

Author SHA1 Message Date
harshitsinghbhandari 542a3b6a89 fix: address PR review feedback (#131) 2026-04-17 22:01:52 +05:30
harshitsinghbhandari e7ad928812 feat: report non-terminal PR workflow events (#131) 2026-04-17 21:46:57 +05:30
Harshit Singh Bhandari 961c064864
Merge pull request #130 from harshitsinghbhandari/feat/129
fix: avoid stuck probe failures when activity is unavailable
2026-04-17 21:33:11 +05:30
harshitsinghbhandari 795ccfb21c fix: require fresh runtime evidence for unavailable-activity downgrade (#129) 2026-04-17 21:29:54 +05:30
harshitsinghbhandari a862327dc5 fix: avoid stuck probe failures for unavailable activity (#129) 2026-04-17 21:22:44 +05:30
Harshit Singh Bhandari dddb7e200e
Merge pull request #128 from harshitsinghbhandari/feat/session-ui-audit-oscillation
Split orchestrator detail, add report audit trail, and stop respond/working oscillation
2026-04-17 21:09:02 +05:30
harshitsinghbhandari 1cbf6579c2 fix: address PR review feedback for session audit trail 2026-04-17 21:06:08 +05:30
harshitsinghbhandari 28ce462ef0 feat: unify session detail auditability and lifecycle stability (#123 #124 #126) 2026-04-17 20:48:02 +05:30
Harshit Singh Bhandari 5fe243b39e
Merge pull request #127 from harshitsinghbhandari/feat/122
fix: model missing activity evidence explicitly
2026-04-17 19:54:50 +05:30
harshitsinghbhandari f1769ec910 fix: address final lifecycle review findings (#122) 2026-04-17 19:52:15 +05:30
harshitsinghbhandari ca8c4cc7ab fix: address lifecycle review feedback (#122)
Keep reconstructed activity and activitySignal coherent, preserve stronger lifecycle states when repeated polls only surface weak evidence, and switch release notes from manual changelog edits to a Changesets entry. This also stabilizes the respond/working path investigated in issue #126.
2026-04-17 19:38:32 +05:30
harshitsinghbhandari dd83a11503 fix: model missing activity evidence explicitly (#122)
Represent missing activity probes as first-class signal states so lifecycle inference only treats valid idle evidence as proof. This prevents false stuck transitions, keeps API/UI lifecycle truth aligned, and makes root monorepo verification deterministic by serializing recursive build and typecheck.
2026-04-17 19:28:56 +05:30
Harshit Singh Bhandari 49369f4706
Merge branch 'ComposioHQ:main' into sessions-redone 2026-04-17 17:09:01 +05:30
Harshit Singh Bhandari c03b66622a
Merge pull request #125 from harshitsinghbhandari/feat/121
fix: isolate lifecycle logs from user terminal output
2026-04-17 17:02:15 +05:30
harshitsinghbhandari e584843978 fix: remove unused observability helper arg (#121) 2026-04-17 16:58:57 +05:30
Ashish Huddar 1e415ab6cc
fix: prevent sidebar flash on session detail pages (#1232)
* fix: prevent sidebar empty-state flash on session pages (#1230)

* fix: reuse sidebar data across session navigation (#1230)

* fix: revalidate cached sidebar data on session pages (#1230)

* fix: harden session sidebar live updates (#1230)

* fix: remove sidebarSessions from mux effect deps

Read from the module-level cachedSidebarSessions cache instead so the
mux effect only re-fires when new mux data arrives, not on every
sidebar state change. Addresses review feedback on #1230.

* fix: address PR #1232 review comments on sidebar session handling

- Guard against out-of-order sidebar fetches with a per-invocation token
  so concurrent pollers/retries don't overwrite fresh responses with stale ones.
- Gate mux overlay on `mux.status === "connected"`; clear pending patches on
  disconnect so a stale WS snapshot doesn't shadow fresher REST data.
- Surface a stale-data banner in the sidebar when a refresh fails but cached
  sessions are still rendered, so users see the failure instead of silently
  viewing outdated state.

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

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 16:49:13 +05:30
harshitsinghbhandari 1acefddc89 fix: address review feedback for observability logging (#121) 2026-04-17 16:44:56 +05:30
harshitsinghbhandari bd36c7b447 chore: replace changelog entry with changeset (#121) 2026-04-17 16:36:37 +05:30
harshitsinghbhandari 77f9ccf637 fix: keep lifecycle observability out of session terminals (#121) 2026-04-17 16:33:36 +05:30
Harshit Singh Bhandari da037c7ed1
Merge pull request #120 from harshitsinghbhandari/fix/sessions-redone-readiness
fix: keep closed-unmerged sessions actionable in dashboard
2026-04-17 14:48:59 +05:30
harshitsinghbhandari 08667c8cb5 fix(web): keep closed-unmerged sessions actionable 2026-04-17 14:42:25 +05:30
Harshit Singh Bhandari cc587a56da
Merge pull request #119 from harshitsinghbhandari/feat/stage5-ui-api-rollout
feat: expose split lifecycle truth in dashboard
2026-04-17 13:46:09 +05:30
harshitsinghbhandari da1e2ceae2 fix: restore Next-resolvable serialize types import (#119) 2026-04-17 13:43:26 +05:30
harshitsinghbhandari d3cf4ae3de fix: address PR review comments on stage 5 rollout (#119) 2026-04-17 13:36:09 +05:30
harshitsinghbhandari 690242e379 fix: keep active PR sessions in working lane
Prevent open PR sessions with only  PR truth from being misclassified as pending during the Stage 5 rollout, and add coverage for the regression.
2026-04-17 13:15:11 +05:30
harshitsinghbhandari 88cd9e7ed1 merge: resolve sessions-redone conflicts for stage5
Preserve the split lifecycle observability and UI truth model while retaining the latest sessions-redone PR transition handling and dependency updates.
2026-04-17 13:09:13 +05:30
harshitsinghbhandari 7072143138 feat: expose split lifecycle truth in dashboard
Implement the Stage 5 rollout so API and UI consumers stop depending on one overloaded status and operators can see structured transition evidence without breaking older session metadata.
2026-04-17 13:00:26 +05:30
Harshit Singh Bhandari ffdfd869ff
Merge pull request #118 from harshitsinghbhandari/stage4-pr-policy
fix: decouple PR truth from worker session policy
2026-04-17 11:51:01 +05:30
harshitsinghbhandari b5c969c6b4 fix: address PR review policy regressions (#118) 2026-04-17 11:39:13 +05:30
harshitsinghbhandari 7ccbe5b260 fix: preserve session truth over PR aliases (#118) 2026-04-17 11:02:06 +05:30
Harshit Singh Bhandari 7361e5b5ee
Merge branch 'ComposioHQ:main' into sessions-redone 2026-04-17 10:48:42 +05:30
harshitsinghbhandari a45eb322bb fix: decouple PR truth from worker session policy 2026-04-17 10:44:35 +05:30
Pritom Mazumdar 685fd42c3d
fix: resolve three Next.js build warnings in web package (#1087)
* fix Next.js build warnings, pin flatted override, regenerate lockfile

* fix ignoreDuringBuilds, add ao-core to serverExternalPackages, clean dist-server in prebuild

* fix ESLint plugin detection, remove ao-core from transpilePackages, suppress plugin-registry webpack warning

* fix(web): restore ao-core to transpilePackages, document overrides, fix dev:optimized cleanup

Move @aoagents/ao-core back to transpilePackages only. dist/ is gitignored so fresh
checkout has no dist/index.js; serverExternalPackages causes a hard crash at runtime.
Client components (SessionDetail, ProjectSidebar, sessions/[id]/page) also import
@aoagents/ao-core/types which serverExternalPackages does not cover.

Keep @composio/core in serverExternalPackages only with comment explaining it is an
optional transitive dep via tracker-linear dynamic import.

Add _overrides_rationale to document axios (SSRF CVE-2023-45857) and flatted
(prototype-pollution) security pins in root package.json.

Fix dev:optimized to clean both .next and dist-server, matching what prebuild does.

* fix: webpackIgnore dynamic imports in plugin-registry fixes #1056

* fix: move Next.js ESLint config to packages/web for build-time detection fixes #1058

* fix: remove scope creep and phantom agent-soma from lockfile

- remove agent-soma importer block from pnpm-lock.yaml
- remove @composio/core from serverExternalPackages
- remove redundant exprContextCritical webpack override
- remove flatted override and _overrides_rationale
- align @next/eslint-plugin-next to ^15.5.15

* fix: replace rm -rf with rimraf for cross-platform compatibility

* fix: use rimraf in clean script and sort devDependencies

* fix: add postcss.config.mjs to web ESLint ignores

* fix: restore no-console exemption for web package in root ESLint config
2026-04-17 10:43:01 +05:30
Harshit Singh Bhandari f2b74a8fc8
Merge pull request #117 from harshitsinghbhandari/feat/stage3-explicit-agent-reporting
feat(core): Stage 3 — explicit agent reporting and workflow coordination
2026-04-17 10:18:07 +05:30
harshitsinghbhandari 0093e2b4e4 fix(core): use kind for orchestrator skip; honest report-surfacing copy
Address Copilot review feedback on PR #117:

- lifecycle-manager: replace string-matching guards (`metadata["role"]`,
  `session.id.endsWith("-orchestrator")`) with the authoritative
  `lifecycle.session.kind !== "orchestrator"` check. The previous guard
  missed numbered orchestrator IDs like `${prefix}-orchestrator-1`, which
  could let a fresh agent report incorrectly override an orchestrator
  session's status.
- orchestrator-prompt: reword the "Explicit Agent Reports" section to stop
  promising automatic surfacing in status/dashboard. CLI/UI display work
  is not part of this PR; the prompt now describes reports as a hint to
  lifecycle inference and explicitly notes SCM/runtime truth still wins.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-17 10:13:00 +05:30
harshitsinghbhandari 593eec441a fix(core): tighten agent-report contract per PR review
Address Copilot review feedback on PR #117:

- Drop the `done` alias from `INPUT_ALIASES`. Agents cannot self-report the
  terminal `done` state (AO owns that transition via SCM ground truth), so
  silently aliasing `done` → `completed` contradicted the prompts and
  weakened the reserved-transition boundary.
- Tighten `validateAgentReportTransition` to reject ALL reports when
  `session.state === "done"`. Previously `completed` slipped through, but
  `completed` maps to `idle` and would have re-opened a terminal session,
  contradicting the function's own doc comment.
- Reject future timestamps in `isAgentReportFresh`. A skewed/future
  `agentReportedAt` would otherwise yield a negative delta that satisfies
  `<= windowMs`, making the report appear "fresh" indefinitely and
  overriding stronger inference signals.

Tests updated:
- Replace done→completed alias assertion with explicit null expectation.
- Expand `done`-state rejection test to cover `completed` and `needs_input`.
- Add freshness test for future-dated timestamps.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-04-17 10:11:03 +05:30
harshitsinghbhandari cab0a2656d feat(core): add explicit agent reporting for workflow coordination (Stage 3)
Introduce an explicit reporting channel so worker agents can self-declare
their workflow phase (started/working/waiting/needs-input/fixing-ci/
addressing-reviews/completed). Fresh reports are trusted over weak inference
but runtime death, activity-based waiting_input, and SCM ground truth still
take precedence.

- Add `applyAgentReport`, validator, canonical mapping, and freshness helper
  in `packages/core/src/agent-report.ts`.
- Wire the fallback into `determineStatus` just before the idle-beyond-
  threshold promotion, skipping orchestrator and terminal sessions.
- Add `ao acknowledge` and `ao report <state>` CLI commands. Both resolve
  the session from `AO_SESSION_ID` when no argument is passed.
- Teach the base agent prompt and orchestrator prompt about the new
  reporting commands.
- Ship unit tests covering normalization, mapping, transition validation,
  metadata persistence, freshness, and first-start behavior.

Stage 3 of the state-machine redesign (see aa-2/state-machine-redesign-
rollout-plan.md).
2026-04-17 10:11:03 +05:30
Harshit Singh Bhandari 47c4b877f7
Merge branch 'ComposioHQ:main' into sessions-redone 2026-04-17 10:06:26 +05:30
yyovil 8b7a54ba5a
Merge pull request #1206 from yyovil/yyovil/fix-issue-1175
refactor(core): templated orchestrator prompt
2026-04-16 23:54:44 +05:30
Dhruv Sharma 06cdcd70eb
Merge pull request #1168 from gautamtayal1/session/ao-1
fix(web): remove orchestrator button from orchestrator webpage
2026-04-16 23:24:17 +05:30
Harshit Singh Bhandari afc3bc3e0d
Merge pull request #116 from harshitsinghbhandari/feat/stage2-evidence-recovery
feat: implement Stage 2 evidence-driven lifecycle detection
2026-04-16 23:10:29 +05:30
harshitsinghbhandari f4fdaa7f3f fix: honor live startup evidence in recovery (#95) 2026-04-16 23:06:49 +05:30
harshitsinghbhandari f2f1a4ddb6 fix: address follow-up stage 2 review feedback (#95) 2026-04-16 23:00:20 +05:30
harshitsinghbhandari c447c7c41f fix: address stage 2 PR review feedback (#95) 2026-04-16 22:46:12 +05:30
harshitsinghbhandari 008ca45618 Merge remote-tracking branch 'origin/sessions-redone' into feat/stage2-evidence-recovery
# Conflicts:
#	packages/core/src/lifecycle-manager.ts
2026-04-16 22:43:57 +05:30
harshitsinghbhandari 0a55b12f19 feat: implement stage 2 evidence-based recovery rules (#95) 2026-04-16 22:33:27 +05:30
Harshit Singh Bhandari 2ea4385a61
Merge pull request #115 from harshitsinghbhandari/docs/stage2-evidence-recovery-plan
docs: add Stage 2 evidence and recovery plan
2026-04-16 22:23:32 +05:30
harshitsinghbhandari 4c2dcbf506 docs: add stage 2 evidence and recovery plan (#95) 2026-04-16 22:22:23 +05:30
Harshit Singh Bhandari 42e9be13a5
Merge pull request #114 from harshitsinghbhandari/plan/stage1-lifecycle-foundation
Plan/stage1 lifecycle foundation
2026-04-16 22:09:41 +05:30
Harshit Singh Bhandari 9a2fc9cd4d
Merge branch 'ComposioHQ:main' into sessions-redone 2026-04-16 22:03:05 +05:30