* fix(mobile): gate PR merge and linking on desktop's shared rules
Merge state moves to src/shared so the phone stops offering Merge on drafts,
conflicts and blocked PRs, and stops letting branch PRs override explicit links.
* fix(mobile): keep stack merges and stale-link recovery in the PR panel
Mobile now applies desktop's stack override and drops a linked PR the branch has moved
past, and only offers Ready for review when a relaying desktop also forwards it.
* fix(mobile): persist stale PR link clears and add a merge recheck
The phone now writes desktop's link clear instead of rereading the stale link, and a
blocked Merge can be rechecked since nothing on mobile polls PR state.
* fix(mobile): guard stale PR link clears like desktop
Re-reads the worktree before clearing so a link chosen after the lookup survives, and
localizes the merge-state strings the lift exposed to the coverage gate.
* test(mobile): drop identity test for worktree link params
* refactor(mobile): share one stack-merge decision and trim PR panel wiring
* fix(mobile): default worktree bare/archived flags for the stale-link guard
* fix(mobile): label the PR merge button from its default merge method
* refactor(protocol): each area owns its published runtime capability list
RUNTIME_CAPABILITIES now spreads one array per area instead of a flat
hand-appended list, and runtime-capability-constants.ts is split into
the areas that own each constant. The published set is unchanged and
pinned by an exact sorted test.
* test: preserve capability baseline while allowing additions