@Override
				public void onUpdateItem(@Nonnull String key, @Nonnull JvmClassInfo oldValue, @Nonnull JvmClassInfo newValue) {
					// Should occur when the user makes changes to a class from recaf.
					// We need to send this definition to the remote server.

					// Record that we expect acknowledgement from the remote server for our redefine request.
					queuedRedefines.add(key);

					// Request class update
					byte[] definition = newValue.getBytecode();
					client.sendAsync(new RequestRedefineMessage(loaderInfo.getId(), key, definition), reply -> {
						if (reply.isSuccess()) {
							logger.debug("Redefine '{}' success", key);
						} else {
							logger.debug("Redefine '{}' failed: {}", key, reply.getMessage());
						}
					});
				}
JVM bundle extension adding a listener to handle syncing local changes with the remote server.
recaf-core/src/main/java/software/coley/recaf/workspace/model/resource/AgentServerRemoteVmResource.java