Skip to content

sync-preview: real merge main into preview#1018

Merged
aidandaly24 merged 7 commits intopreviewfrom
sync-preview/real-merge-main-20260429
Apr 29, 2026
Merged

sync-preview: real merge main into preview#1018
aidandaly24 merged 7 commits intopreviewfrom
sync-preview/real-merge-main-20260429

Conversation

@aidandaly24
Copy link
Copy Markdown
Contributor

Summary

  • Real merge commit (two parents) to restore ancestry link between main and preview
  • Resolves merge conflicts in CHANGELOG.md, package.json, package-lock.json, and browser-mode.ts (preview values kept)
  • Previous sync PR sync-preview: merge main into preview #1017 was squash-merged, which broke the merge-base check in the release workflow

Context

The "Release Both" workflow preflight checks git merge-base HEAD origin/preview == MAIN_SHA. A squash merge destroys the two-parent ancestry, so the check fails even though the code is present. This PR restores the link with a real merge commit.

github-actions Bot and others added 7 commits April 28, 2026 16:50
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* test: remove 44 render-only and framework-testing tests

Delete TUI component test files that only verify prop passthrough or
framework behavior (Ink rendering, setInterval lifecycle) without
testing any application logic:

- Cursor.test.tsx (5 tests): setInterval/clearInterval assertions
- Header.test.tsx (4 tests): title/subtitle string presence
- HelpText.test.tsx (2 tests): static string rendering
- AwsTargetConfigUI.test.tsx (7 tests): help text string lookups
- ConfirmReview.test.tsx (6 tests): field label rendering
- LogLink.test.tsx (4 tests): prop passthrough
- ScreenHeader.test.tsx (3 tests): prop passthrough
- FatalError.test.tsx (5 tests): prop passthrough

Trim Panel.test.tsx (6→3) and Screen.test.tsx (8→3), keeping only
tests that verify real logic: border structure, responsive width
adaptation, keyboard exit handling, and exitEnabled guard.

Remove tautological expect(true).toBe(true) tests from
assets.snapshot.test.ts; use describe.skipIf for empty asset dirs.

Kept all tests in StepIndicator, ScreenLayout, TwoColumn, NextSteps,
LogPanel, PathInput, and useFetchAccessFlow — audit flagged some as
framework tests but they verify real conditional/interaction logic.

* fix: restore AwsTargetConfigUI tests — pure function, not render test

getAwsConfigHelpText is a switch over AwsConfigPhase that maps states
to help strings. The undefined return for loading/terminal phases is a
contract consumed by DeployScreen.tsx via ?? HELP_TEXT.EXIT. These tests
guard that fallback, not framework rendering behavior.
…#1011)

The import gateway command used NAME_REGEX which only allowed
underscores and max 48 chars, rejecting valid gateway names with
hyphens like "agentcore-gateway". Switch to GatewayNameSchema which
matches the actual AWS API: alphanumeric with hyphens, up to 100 chars.

Constraint: AWS CreateGateway API allows [0-9a-zA-Z] with hyphens
Rejected: Updating NAME_REGEX | it is shared with other import commands that have different naming rules
Confidence: high
Scope-risk: narrow
…y agentcore/ packages (#1015)

PR #844 correctly removed the flat name-based agentcore exclusion and
threaded rootDir through copySourceTree, but the same CONFIG_DIR check
remained in collectFiles/collectFilesSync (the zip stage). Since the zip
stage operates on the staging directory — not the project root — the
check incorrectly stripped any top-level agentcore/ Python package
installed by uv (e.g., langgraph_checkpoint_aws/agentcore/) from the
deployment artifact, causing ModuleNotFoundError at runtime.

The CONFIG_DIR exclusion is only needed in copySourceTree (which copies
from the project root into staging). By the time we zip, the project
config dir was already filtered out — the only agentcore/ in staging is
a legitimate dependency package.

Closes #843
* ci: add coordinated main + preview release workflow

Adds a single workflow_dispatch that releases both branches together,
ensuring they stay in sync on npm.

* fix: address review — bump script compat, pre-publish verification, drop unused artifacts

- Preview bump now uses `prerelease --prerelease-tag preview` which the
  bump-version.ts script actually accepts
- Added verify-merges job that checks both main and preview have the
  expected versions before either publish runs (prevents drift)
- Both publish jobs now depend on verify-merges instead of each other,
  so neither publishes unless both PRs are confirmed merged
- Removed upload-artifact steps from test jobs since publish jobs
  rebuild from source post-merge

* fix: auto-rebase preview onto main in preflight step

Instead of failing when preview isn't rebased, the workflow now
rebases automatically. If there are conflicts, it aborts and
directs the user to resolve manually.

* ci: add sync-preview workflow, simplify release preflight

- New sync-preview.yml: runs on every push to main, auto-rebases
  preview onto main. Silently skips on conflicts (no failure).
- Release workflow preflight reverted to a simple check — relies
  on sync-preview having already done the rebase.

* fix: use merge instead of rebase for preview sync

Rebase overwrites preview-specific values (package version, tests).
Merge preserves preview's divergent files and only conflicts when
both branches touch the same lines.

* fix: concurrency control, conflict notifications, CDK tag TODO

- Add concurrency group to sync-preview to prevent parallel race
- On merge conflict, auto-create a GitHub issue (deduplicated) instead
  of silently skipping
- Add TODO comment for CDK preview dist-tag in prepare-preview

* fix: create PR with conflict markers instead of issue on merge conflict

On conflict, sync-preview now:
- Creates a branch with the merge conflict markers committed
- Opens a PR targeting preview with resolution instructions
- Tags the original commit author for visibility
- Deduplicates (skips if a sync PR is already open)
# Conflicts:
#	CHANGELOG.md
#	package-lock.json
#	package.json
#	src/cli/commands/dev/browser-mode.ts
@github-actions github-actions Bot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 29, 2026
@notgitika notgitika self-requested a review April 29, 2026 16:34
Copy link
Copy Markdown
Contributor

@notgitika notgitika left a comment

Choose a reason for hiding this comment

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

LGTM

@aidandaly24 aidandaly24 merged commit 8c4d6eb into preview Apr 29, 2026
2 checks passed
@aidandaly24 aidandaly24 deleted the sync-preview/real-merge-main-20260429 branch April 29, 2026 16:35
@agentcore-cli-automation
Copy link
Copy Markdown

⚠️ Must be merged with "Create a merge commit" — not squash or rebase

The whole purpose of this PR is to restore the two-parent ancestry link between main and preview so the release workflow's git merge-base HEAD origin/preview == MAIN_SHA check passes. I verified the commit is structured correctly for that:

  • 553a520 has two parents: 1c726d8 (preview tip) and 7e8cae4 (main tip)
  • git merge-base 7e8cae4 553a5207e8cae4
  • The tree is identical to preview's tip, so preview-specific values (version 1.0.0-preview.3, the newer browser-mode.ts with harness support, CHANGELOG, lockfile) are preserved

However, if this PR is merged via GitHub's Squash or Rebase button, the merge commit gets flattened to a single-parent commit and we're right back to the broken state that caused this PR in the first place (that's exactly what happened to #1017).

A couple of options to make sure this doesn't happen again:

  1. Minimum: Whoever merges this needs to explicitly pick "Create a merge commit" from the merge button dropdown. Worth pinning a comment and/or adding a checklist item to the PR body calling that out, since the default button on this repo appears to be squash.
  2. Better (follow-up): Update .github/workflows/sync-preview.yml so the auto-generated conflict-resolution PR body includes a bold "DO NOT squash-merge this PR — use Create a merge commit" instruction. That's the same guidance that was missing when sync-preview: merge main into preview #1017 was merged.
  3. Best (follow-up): Have the sync-preview workflow push the merge commit directly to preview on the happy path (it already does this for no-conflict cases) and, on conflicts, consider auto-merging via the API with merge_method: "merge" once approved, so humans can't accidentally pick the wrong button.

Option 1 is required for this PR. Options 2/3 can be separate follow-ups.

Otherwise the merge itself looks correct — conflicts in CHANGELOG.md, package.json, package-lock.json, and src/cli/commands/dev/browser-mode.ts were all resolved in favor of preview, which matches the PR description.

@github-actions github-actions Bot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 29, 2026
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.

6 participants