forked from tiann/hapi
-
Notifications
You must be signed in to change notification settings - Fork 0
[cold-review] feat: session-attached long-running jobs (#1404) #117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
heavygee
wants to merge
215
commits into
main
Choose a base branch
from
feat/session-attached-jobs
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
215 commits
Select commit
Hold shift + click to select a range
4f67145
chore(hub): platform-neutral companion pairing label
tiann 16ebba1
docs(api): add native client contract (auth, rest, errors)
tiann 1b9ca34
docs(api): add native client contract (sse, pagination, messages)
tiann e0e7be3
feat(ios): scaffold SwiftUI app + HapiKit package + CI (A-M0)
tiann 83bd25a
feat(android): scaffold Compose app + core modules + CI (B-M0)
tiann 9479f66
feat(fixtures): golden chat fixtures generated from web pipeline (K4+K5)
tiann d87ce42
merge: K3 pairing label
tiann 68f4f92
merge: K1 client contract docs (auth/rest/errors)
tiann 1a40db3
merge: K2 client contract docs (sse/pagination/messages)
tiann 659fe25
merge: K4+K5 golden fixtures
tiann 2ffaf7f
merge: A-M0 iOS scaffold
tiann 3885f65
merge: B-M0 Android scaffold
tiann 81146e6
docs(api): drop temporary dead-link ignores now that all contract pag…
tiann 25129c5
ci: fixtures drift gate + monorepo conventions for native apps (K8)
tiann c547f65
merge: K8 fixtures drift gate + monorepo conventions
tiann c1ecb47
feat(fixtures): batch 2 — events, permissions, sidechains, flavors, c…
tiann b09dd67
feat(android): protocol wire models, catalogs, session patching (B-M1a)
tiann e1bfdd6
feat(fixtures): SSE patch + pagination scenario fixtures (K7)
tiann 36a190e
merge: K7 SSE patch + pagination scenario fixtures
tiann f110845
merge: K6 fixtures batch 2 (events, permissions, sidechains, flavors,…
tiann a3013d5
merge: B-M1a Android protocol wire models + catalogs + patching
tiann fada270
docs(api): sse.md — activeTurnStartedAt is not patch-applied (matches…
tiann 1e80327
feat(ios): HapiProtocol wire models, catalogs, session patching (A-M1a)
tiann 6f1dc23
feat(android): auth + HapiApi transport (B-M1b)
tiann 8f7468e
merge: B-M1b Android auth + HapiApi transport
tiann d39197b
feat(android): markdown/code/diff rendering foundation (B-M2d1)
tiann 483155e
feat(android): SSE engine + reconnect state machine (B-M1c)
tiann 3570017
merge: B-M2d1 Android markdown/code/diff rendering foundation
tiann f275bae
merge: B-M1c Android SSE engine + reconnect state machine
tiann 1f0ec61
feat(ios): HapiClient API transport + auth (A-M1b)
tiann 7d436aa
merge: A-M1b iOS HapiClient API transport + auth
tiann 15f48c9
feat(ios): SSE client + reconnect state machine (A-M1c)
tiann 9d2ef4e
merge: A-M1c iOS SSE client + reconnect state machine
tiann ddfe659
feat(ios): HapiUI rendering foundation — markdown, code, diff, theme …
tiann d6571c1
merge: A-M2e iOS HapiUI rendering foundation
tiann 3cf2a66
feat(android): pairing flow, deep link, DI graphs, navigation skeleto…
tiann e85ad3f
merge: B-M1d Android pairing flow + DI graphs + navigation
tiann f702cbf
feat(android): session/machine stores + session list (B-M2b)
tiann 96d81a3
merge: B-M2b Android session/machine stores + session list
tiann 99df45e
feat(android): message window store port, pagination fixtures green (…
tiann dfcf984
merge: B-M2c Android message window store, pagination fixtures green
tiann 3363d1c
feat(ios): pairing flow, deep link, app session wiring (A-M1d)
tiann d585232
merge: A-M1d iOS pairing flow + app session wiring
tiann 0365198
feat(android): chat pipeline port — 48 chat fixtures green (B-M2a)
tiann 80948e9
merge: B-M2a Android chat pipeline port (48 fixtures green)
tiann 7c34567
feat(ios): chat pipeline port + fixture harness (A-M2bc)
tiann ef956af
merge: A-M2bc iOS chat pipeline port + fixture harness
tiann b23afe2
feat(android): read-only chat screen + store wiring (B-M2d2)
tiann 9875eec
merge: B-M2d2 Android read-only chat assembly
tiann 67b7fe7
feat(ios): session list store + UI (A-M2a)
tiann 2e0386e
merge: A-M2a iOS session list store + UI
tiann 7712a92
feat(ios): message window store port + pagination fixture harness (A-…
tiann 3f497d5
merge: A-M2d iOS message window store + pagination fixture harness
tiann e640aa4
feat(android): new session flow (B-M3d)
tiann 6247ad3
merge: B-M3d Android new session flow
tiann a4355d1
feat(ios): read-only chat assembly (A-M2f)
tiann 1972952
merge: A-M2f iOS read-only chat assembly
tiann 78a5ff9
feat(android): composer, permission actions, session config (B-M3ab)
tiann ca138c9
merge: B-M3ab Android composer + permission actions + session config
tiann 3ce8593
fix(android): dedupe CodexModels wire types from parallel B-M3ab/B-M3…
tiann fa91f06
feat(ios): new session flow (A-M3c)
tiann 1ddfb7e
merge: A-M3c iOS new session flow
tiann c164af0
feat(android): dictation, slash commands, session ops (B-M3ce)
tiann 0f347de
merge: B-M3ce Android dictation, slash commands, session ops
tiann eed3ddd
feat(ios): composer, permission actions, session config (A-M3ab)
tiann ed310fc
merge: A-M3ab iOS composer + permission actions + session config
tiann 210f9b3
feat(android): files/git browser + file viewer (B-M4c)
tiann 895ea61
merge: B-M4c Android files/git browser + file viewer
tiann 769e0ff
feat(android): usage/storage dashboards + settings scaffold (B-M4e)
tiann 75f8300
merge: B-M4e Android usage/storage dashboards + settings
tiann ac5cebf
feat(android): composer attachments (B-M3f)
tiann 69b0190
fix(android): missing withContext import after B-M4e navigation merge
tiann 33d186f
feat(android): scratchlist (B-M4d)
tiann 8e5ec6a
merge: B-M3f Android composer attachments
tiann bf63d2a
feat(android): FCM push + notification actions (B-M4a)
tiann 0f3bf5c
merge: B-M4d Android scratchlist
tiann 53e33be
merge: B-M4a Android FCM push + notification actions
tiann 969caf1
fix(android): re-attach window row status after normalize so failed s…
tiann 8795bab
feat(ios): usage/storage dashboards + settings (A-M4de)
tiann 24c6e77
merge: A-M4de iOS usage/storage dashboards + settings
tiann 05d063c
feat(ios): composer attachments + dictation (A-M3f)
tiann 50a42ec
merge: A-M3f iOS composer attachments + dictation
tiann a520552
feat(ios): files/git browser + file viewer (A-M4a)
tiann b9c4d09
merge: A-M4a iOS files/git browser + file viewer
tiann d83c993
docs(ios): drop leftover merge marker in README
tiann 6c7746d
feat(ios): scratchlist (A-M4b)
tiann 5773ca2
merge: A-M4b iOS scratchlist
tiann 4a57cec
docs(ios): drop leftover merge markers in README
tiann 3510a0f
fix(ios): Linux compile + full package test round — fixtures green lo…
tiann 518d726
merge: A-CI-local iOS Linux compile + full package test round
tiann 641ae3b
feat(android): zh-CN localization + language switching (B-M5a)
tiann 6874908
merge: B-M5a Android zh-CN localization + language switching
tiann 6066f20
feat(ios): zh-CN localization + catalog dedupe (A-M5)
tiann c4832f3
merge: A-M5 iOS zh-CN localization + catalog dedupe
tiann b9d5f80
fix(android): device-feedback round 1
tiann 8417c8b
fix(ios): decode fractional fs-mtime epoch fields (device-feedback pa…
tiann c6f1d27
fix(ios): import SwiftUI alongside PhotosUI for the cross-import overlay
tiann 41c0db1
fix(ios): missing argument label in terminalTitle call
tiann 3300be9
fix(ios): hide steady connection chip; drop blank empty-header sectio…
tiann 54d9592
fix(android): composer bottom bar owns nav-bar + IME insets (edge-to-…
tiann 6557dda
feat: native agent brand icons on both platforms
tiann 828c95b
merge: native agent brand icons on both platforms
tiann 1ad78f4
feat(hub): iOS push channel — direct APNs + relay with E2E envelope (P1)
tiann 25f6371
merge: P1 hub iOS push channel (direct APNs + relay, E2E envelope)
tiann 11d43bf
feat(relay): official push relay — ciphertext-only APNs forwarder (P2)
tiann 0c0c0ca
merge: P2 official push relay (ciphertext-only APNs forwarder)
tiann e289a0a
feat(ios): push — APNs registration, E2E notification service extensi…
tiann 2f8e699
merge: P3 iOS push — APNs registration, E2E notification service exte…
tiann 1b0a8c5
chore(ios): suppress Xcode-generated noise
tiann 19bb4f6
fix(android): stop the AppCompat legacy IME resize doubling the keybo…
tiann f72fd87
feat(chat): consolidate top-bar actions into an overflow menu (both p…
tiann c3248d9
fix(ios): hide the stray separator above the first session row
tiann 8ae402d
test(ios): avoid nested require macros
tiann 04eaca0
feat(sessions): drop the per-row presence dot — dim disconnected rows…
tiann d52a5a0
feat(sessions): one-line row meta — project · worktree · machine, no …
tiann 4f5a7c8
fix(android): restore the row content-to-gap rhythm after the meta merge
tiann 21a5bf2
feat(sessions): row typography — meta as readable body text, summary …
tiann c76af90
feat(hub): push config joins the settings.json system (env > file > d…
tiann 3a43624
fix(pi): refresh context after compaction (#1634)
swear01 2fbd98d
fix(pi): offer model-accurate thinking levels in the create-session f…
KorenKrita f0e5ba9
feat(codex): mid-turn Steer via app-server turn/steer (#888) (#1606)
swear01 47c0768
feat(brand): refresh HAPI icons across platforms
tiann b676faf
feat(android): drop the foreground service — expedited work on API 31…
tiann a7a3079
docs(website): privacy policy page for the app-store listings
tiann c62cea9
docs: privacy policy as a VitePress page, replacing the static HTML
tiann 1f5602a
Release version 0.29.0
tiann 0f7a3da
feat(cursor): mid-turn Steer via concurrent ACP session/prompt (#888)…
swear01 9bdccf0
fix(web): unify message action buttons (#1645)
swear01 0aebf39
fix(opencode): keep one stored message per reasoning stream (#1643)
junmo-kim 338e405
fix(brand): sharpen iOS and PWA icons
tiann fdf4fda
feat(web,hub): make large conversation export warning-only (#1648)
swear01 e3f13c4
feat(web): anchor composer settings sheet to the clicked value button…
KorenKrita 3d94e8e
fix(cli): preserve source extensions for generated media (#1650)
techotaku39 dd2e978
feat(web): add mark unread session action (#1649)
techotaku39 c9e243a
docs(macOS): raise launchd runner file limit (#1646)
swear01 4c7653f
feat: session-attached long-running jobs (#1404)
heavygee dd5b8bd
feat(jobs): agent guidance + wall-clock elapsed on list chrome
heavygee a9d3d6c
fix(jobs): address Opus cold-review Majors for #1404
heavygee bdaf165
fix(jobs): honor explicit startedAt on PUT; document late-attach clock
heavygee a79356a
fix(jobs): keep merge redirect keys in MetadataSchema (#1404)
heavygee c386852
feat(jobs): MCP session_job tool for catalog-level discoverability
heavygee eb44551
feat(web): tri-state pin — default long-running jobs with #1404
heavygee b3505ae
fix(jobs): cold-review pass 3 Blocker + Majors (#1404)
heavygee 17ffa2c
fix(jobs): close pass-3 minors — stable primary, own-client heartbeats
heavygee d4e8e53
fix(jobs): refresh JWT for long job-run heartbeats (#1404)
heavygee 61b6561
test(jobs): cover proactive JWT refresh; map 401 to auth_failed
heavygee 71d0220
fix(jobs): stamp fresh startedAt on job run; prefer supervisor
heavygee 2df6c0f
fix(jobs): typecheck-safe assertion for run startedAt
heavygee 5357268
fix(jobs): type put mock args so startedAt assertion typechecks
heavygee 0cceeab
fix(jobs): address Codex Majors — redirect ancestry, heartbeat status…
heavygee 6d7caf2
fix(jobs): type from-session metadata when inheriting job redirects
heavygee 6f84569
fix(jobs): version attachedJob SSE; keep live job on merge collision
heavygee 55a950e
fix(jobs): monotonic attachedJob emit watermark (not primary.updatedAt)
heavygee 67b299a
fix(jobs): one attachedJob watermark allocator for REST and SSE
heavygee 155fd71
fix(jobs): stub allocateAttachedJobVersion in sessions route mocks
heavygee d68370c
fix(jobs): always record merge redirects even with zero jobs transferred
heavygee 2920069
fix(jobs): install source redirect before merge awaits; allow empty u…
heavygee be5d378
fix(jobs): expect empty MCP update as heartbeat
heavygee 9148179
fix(jobs): treat merge redirect metadata as hub-owned
heavygee c216692
fix(jobs): reconcile REST list against attachedJob watermark
heavygee 144840e
fix(jobs): retry terminal status write; reject startedAt on update
heavygee 0b3f25e
fix(jobs): keep both live jobs on same-key merge
heavygee 42c2793
fix(jobs): hard-refuse MCP set; louder stale heartbeat chrome
heavygee 4421f4d
fix(jobs): preserve jobKeyRedirects across metadata merge + A→B→C
heavygee 0bb8924
fix(jobs): keep running-job stubs in sidebar; align bar precedence
heavygee 932394f
fix(jobs): block delete while job running; keep jobful dedup losers
heavygee 99c9dd6
fix(jobs): guard store delete for running jobs; transfer on Codex merge
heavygee 38c7912
test(jobs): stub transferAttachedJobs in Codex duplicate-merge mock
heavygee db1ac8e
fix(jobs): fence supervisor PATCH with expectedStartedAt
heavygee 0d75fa0
fix(jobs): CAS supervisor writes with UUID runId (schema V24)
heavygee 6eff330
fix(jobs): heartbeat PATCH must not re-send launch --detail
heavygee 6814377
fix(jobs): stamp heartbeatAt on the hub only
heavygee 282f155
docs(jobs): note schema tip V25 after A2A V23 collision
heavygee be82f6d
fix(jobs): clear stale jobsTransferred redirect on reclaim
heavygee 9ab64b1
fix(jobs): transfer attached jobs on OpenCode /clear
heavygee f5daebb
fix(jobs): follow job redirects with cycle detection
heavygee 4f59f07
fix(jobs): defer no-engine Codex merge; pending outranks Jobs
heavygee a12e647
fix(jobs): allocate list watermark before reading jobs
heavygee 59c1bff
fix(jobs): stamp supervised startedAt on the hub clock
heavygee 95e37e2
fix(cli): preserve -- for hapi job run under normalizeCliArgs
heavygee f421db0
fix(cli): run cliArgs tests under Vitest
heavygee 1c6398c
fix(jobs): allow PATCH null clears from CLI and MCP
heavygee 24eef77
fix(jobs): scope -- keep to job run; expose runId fence on CLI
heavygee f9a13fa
fix(jobs): fence DELETE/clear with expectedRunId
heavygee d3c6fc3
fix(jobs): include runId on listSessionJobs for fence recovery
heavygee 3e1d1a6
fix(web): stamp attachedJob on new SessionSummary test helpers
heavygee d4aa5b4
fix(jobs): fail job run when terminal status never persists
heavygee 2357d91
fix(cursor,web): stop attached-job sessions bouncing Running/Jobs (#1…
heavygee 747e24f
fix(web): do not mask foreground thinking when attached job runs (#1553)
heavygee 328dd3b
fix: rebase onto upstream/main — resolve test mock conflicts
heavygee e9715c3
fix(jobs): preserve child exit 0 when meter cleared during job run
heavygee 1194270
fix(cursor): filter only debounced running chatter while queue-idle (…
heavygee 43f3740
fix(#1424): trust ACP foreground signals; preflight merge job check
heavygee 1fc2db6
fix(cli): steer agents away from sleep-stub jobs and remaining=0 traps
heavygee ab7d5fd
fix(cli): steer MCP session_job not_found even when instanceof breaks
heavygee ef2ffc6
fix(cli): idempotent MCP clear-not-found; reject --heartbeat-sec off run
heavygee 8059330
fix(cli): reject mutation flags on job list/clear and status on run
heavygee 0686392
fix(cli): reject stray MCP fields and non-run command suffix
heavygee 1e4dd4a
fix(hub): preserve runId on corrective job PUT without runId
heavygee c1f7856
fix(hub): preserve runId on corrective job PUT without runId
heavygee bf1d19c
docs: mark ALL_DONE late-attach example as completed status
heavygee 6d30267
fix(web,cli): finish #1424 rebase onto upstream pin buckets
heavygee 542e63d
fix(web): rename All activity — quiet connected is not in-progress
heavygee ccb2b00
docs(guide): session-id contract and remaining vs bar fill
heavygee ce22d4d
fix(web): bind isNewerVersionedPatch after sessionPatch extract
heavygee 4582f4d
fix(hub): commit job-row move and owner redirects together
heavygee 84f061a
fix(web): drop leftover rebase markers in useSSE imports
heavygee 501ea2e
fix(jobs): fail-closed session id for remote Cursor job run
heavygee 827b7e8
fix(hub): refresh job redirects before scratchlist merge await
heavygee 3150fc4
fix(cursor): ignore ambient ACP running without a prompt in flight
heavygee d8f18d6
fix(cursor): drop leftover rebase conflict markers in ACP launcher
heavygee 688e51e
fix(cli): sanitize job text before terminal stdout
heavygee 4efc50e
fix(cli): sanitize MCP session_job output via shared formatter
heavygee a62c9cf
fix(cli): scrub C1 controls in shared job-output sanitizer
heavygee 67d3a03
test(cli): fix C1 sanitizer assertion (content may remain)
heavygee File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| name: android | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| paths: | ||
| - 'android/**' | ||
| - 'shared/fixtures/**' | ||
| - '.github/workflows/android.yml' | ||
| pull_request: | ||
| paths: | ||
| - 'android/**' | ||
| - 'shared/fixtures/**' | ||
| - '.github/workflows/android.yml' | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: android-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: ubuntu-latest | ||
| defaults: | ||
| run: | ||
| working-directory: android | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-java@v4 | ||
| with: | ||
| distribution: temurin | ||
| java-version: '21' | ||
| # Android SDK is preinstalled on GitHub ubuntu runners (licenses | ||
| # accepted); AGP auto-installs any missing platform/build-tools. | ||
| - uses: gradle/actions/setup-gradle@v4 | ||
| - name: Protocol tests (pure JVM, fixtures-driven) | ||
| run: ./gradlew :core:protocol:test | ||
| - name: Assemble debug APK | ||
| run: ./gradlew :app:assembleDebug | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| name: fixtures | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| paths: | ||
| - 'web/src/chat/**' | ||
| - 'web/src/lib/message-window-store.ts' | ||
| - 'web/src/lib/sessionPatch.ts' | ||
| - 'web/src/lib/messages.ts' | ||
| - 'shared/src/**' | ||
| - 'web/scripts/**' | ||
| - 'shared/fixtures/**' | ||
| - '.github/workflows/fixtures.yml' | ||
| pull_request: | ||
| paths: | ||
| - 'web/src/chat/**' | ||
| - 'web/src/lib/message-window-store.ts' | ||
| - 'web/src/lib/sessionPatch.ts' | ||
| - 'web/src/lib/messages.ts' | ||
| - 'shared/src/**' | ||
| - 'web/scripts/**' | ||
| - 'shared/fixtures/**' | ||
| - '.github/workflows/fixtures.yml' | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: fixtures-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| drift-gate: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: oven-sh/setup-bun@v2 | ||
| with: | ||
| bun-version: 1.3.14 | ||
| - run: bun install | ||
| - name: Regenerate fixtures from the web pipeline | ||
| run: bun run gen:fixtures | ||
| - name: Fail on fixtures drift | ||
| id: drift | ||
| # --intent-to-add makes brand-new fixture files (new cases) visible | ||
| # to git diff; deletions of stale files are visible either way. | ||
| run: | | ||
| git add --intent-to-add shared/fixtures | ||
| git diff --exit-code -- shared/fixtures | ||
| - name: Explain drift | ||
| if: failure() && steps.drift.conclusion == 'failure' | ||
| run: echo '::error::web pipeline behavior changed — run `bun run gen:fixtures` and commit the updated fixtures so native ports see the diff' | ||
| - name: Web self-conformance (fixture-related tests) | ||
| # src/lib/sessionPatch matches nothing until K7 lands its tests; | ||
| # vitest unions filters, so the extra filter is future-proof, not fatal. | ||
| run: cd web && bun run test -- src/chat/fixtures.test.ts src/lib/message-window-store.test.ts src/lib/messages.test.ts src/lib/sessionPatch |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| name: ios | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| paths: | ||
| - 'ios/**' | ||
| - 'shared/fixtures/**' | ||
| - '.github/workflows/ios.yml' | ||
| pull_request: | ||
| paths: | ||
| - 'ios/**' | ||
| - 'shared/fixtures/**' | ||
| - '.github/workflows/ios.yml' | ||
|
|
||
| concurrency: | ||
| group: ios-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| package-tests: | ||
| runs-on: macos-15 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Show toolchain versions | ||
| run: | | ||
| xcodebuild -version | ||
| swift --version | ||
| - name: Run HapiKit package tests | ||
| run: swift test --package-path ios/Packages/HapiKit | ||
|
|
||
| app-build: | ||
| runs-on: macos-15 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Show toolchain versions | ||
| run: xcodebuild -version | ||
| - name: Build Hapi app for iOS Simulator | ||
| run: xcodebuild build -project ios/Hapi.xcodeproj -scheme Hapi -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Across the checked
.github/workflowsfiles, this is the only Gradle test invocation, so CI runs:core:protocol:testbut never compiles or executes the newandroid/core/data/src/test/**andandroid/app/src/test/**suites;:app:assembleDebugonly assembles production code. Consequently the transport, authentication, stores, push handling, and ViewModel regressions covered by those tests can all merge while this workflow remains green. Add:core:data:testand:app:testDebugUnitTest(or an aggregate Gradle verification task) to the workflow.Useful? React with 👍 / 👎.