Skip to content

AllInOneIME 0.7.2 - #77

Merged
melatonin98034 merged 10 commits into
mainlinefrom
release-0.7.2
Nov 9, 2026
Merged

melatonin98034 merged 10 commits into
mainlinefrom
release-0.7.2

Conversation

@melatonin98034

Copy link
Copy Markdown
Collaborator

AllInOneIME 0.7.2: AllInOneIME's own system identity (com.allinoneime.*). 0.7.1's updater moves settings and keys over before installing it; on first launch 0.7.2 imports the login-keychain handover, finishes the cleanup record, and shows the one step left (add the input source under English) and the permissions to allow again. No "aipinyin" remains in the repository (OldNameTests).

Tested: make test, make update-test, make app; a real rehearsal 0.7.0 → 0.7.1 → 0.7.2 on a separate Mac's account; the owner's Mac moved and cleaned.

🤖 Generated with Claude Code

weijianz and others added 10 commits November 8, 2026 15:07
Every identifier of the identity before is the new one's: the bundle IDs
com.allinoneime.inputmethod.AllInOneIME (its input source ID and connection
name too) and com.allinoneime.settings, the installer's, the keychain access
group 9SR8N3UD5Y.com.allinoneime.shared, the log subsystem, the queue and
launch agent labels. The updater installs only this identity's apps, from
update-v2.json; update.json is never written again (it names 0.7.1).

The bridge's Migration and the data moves of the app's first name
(LegacyData) are gone: this version relies on 0.7.1 having moved the
install, and tells another identity's install only by its bundle ID not
being this one's (SystemIdentity). The installer asks such an install to
move itself (--migrate-identity, 0.7.1); one too old to is told to update
first, with Install Anyway after a warning that saved API keys must be
entered again. `make install` does the same check. After the move, the
input method says once which permissions macOS asks for again, on the
About page with Troubleshoot outlined.

The old Developer ID profile is removed (it was the old App ID's): the
owner's new one goes at the same path. Core/.split-paths names the first
name's folders by pattern. A test fails while the old name is in any file
of the repository; the six Acceptance files that still have it are for
their owner to change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CHANGELOG 0.7.2 (unreleased), both languages: the new system identity,
settings and keys carried over by 0.7.1 (or an earlier version updated to
it first), the permissions to allow again, Input Sources listing it under
English. Old entries that named the app's first name say so without it.
The READMEs (and their translations) say how an install from 0.7.1 or
earlier moves, and what the bundle ID is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…have

As every text of the Mac's that names a command does (CommandTriggerTextTests).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9SR8N3UD5Y.com.allinoneime.inputmethod.AllInOneIME, all devices, keychain
groups 9SR8N3UD5Y.*, three Developer ID Application certificates; checked
with Scripts/profile-entitlements.sh against this Info.plist and keychain
group (`make dmg` uses it, as before).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, the cleanup record done

The installed input method, at each launch and in the background
(IdentityFinish):

- once the version that moved has handed its cleanup record over (or
  stopped: 10 minutes without a change), it does the steps the record
  lists with the identifiers it lists alone (this version never names the
  identity before): the login keychain's originals of the keys handed
  over (each only when its handover item is there and it is still that
  key), the input source, the defaults domains, the apps (only those with
  one of the record's bundle IDs), the launch agents (only under their
  name) and the old group's items (left, logged, when this version isn't
  entitled to the group). Nothing of this identity's is ever removed,
  whatever the record says. Each step that succeeds goes out of the
  record; the record goes once it's empty. While the record isn't handed
  over, it waits (again every 10 seconds for 3 minutes, then the next
  launch);
- each handover item is imported into the login keychain, where this
  identity creates the item (its own access list: macOS never asks for
  it), read back, then deleted. A key whose original is still there
  waits; an item there already that this identity reads is kept.

The notice after the move no longer says macOS asks for the login
password (the sentence out of the catalog's texts and translations).

README: the move's handover and record; the Developer ID profile lists
three G1 certificates; 0.7.2's update summary says which permissions are
asked for again (a summary to use, also in the Makefile's comment).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rlier one goes only then

macOS lets only the user add a new input method: asked to enable it,
Text Input Sources says it did and changes nothing (the rehearsal of
the move on a real account). While this input method's own source isn't
enabled, Settings → About now shows that step first: add AllInOneIME in
System Settings → Keyboard → Input Sources → + → English, with a button
that opens Keyboard settings; then the permissions to allow again (the
move's notice, Troubleshoot outlined once the source is added). It is
looked at again when the app becomes active and when a text field
activates the input method, and goes once the source is enabled as
itself: a source Text Input Sources doesn't list, or files under
another bundle ID (its cache keeping the earlier identity's for the
path), is registered again first (`InputSourceCheck`).

The cleanup record's input source is taken out (by its ID, never an
entry another source is filed under) only once this one is enabled, if
the user had it; until then that step stays in the record, the rest is
done, and the record's step runs when the source is found enabled. The
record's cache folders go too, only the user's named after one of its
bundle IDs. Runs of the record are one at a time.

New texts in all seven other interface languages. Tested with fakes
(IdentityFinishTests: the input source waiting for this one, one the
user didn't have, the caches, the check registering a source filed
under another bundle ID) and the self-test's About image with the step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… move, in plain words

The one place that asks the user to add the input method (0.7.1 no
longer asks macOS to enable it) is the top of Settings → About. Right
after the move, with the input source not added yet, the input method
now opens About on it at once, before any other page: a settings window
asked for at launch (the helper's `--settings`, when Settings was open
for the update) opens on About too, not General first
(`SystemIdentity.firstShown`). With the source added, About with
Troubleshoot outlined, as before.

The step says it plainly: "One step left: add AllInOneIME — System
Settings → Keyboard → Input Sources → + → English → AllInOneIME", and
that AllInOneIME can't type until it's added, in all seven other
interface languages. The cleanup's line about the earlier input source
says what it is: it can't be used any more, its entry is kept only to
be taken out once this one is added. The changelogs and READMEs say so.

Tested with fakes (SystemIdentityTests: what is shown first after the
move, with the source added or not, and after other launches;
IdentityFinishTests: the line), the String Catalog checks, `make test`
and `make update-test`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…en English doesn't list it

Seen on the owner's Mac: System Settings' list of input sources to add showed the new one only after a restart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@melatonin98034
melatonin98034 merged commit b767eb2 into mainline Nov 9, 2026
4 checks passed
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