Autoapply edits if env variable configured
This commit is contained in:
@@ -12,6 +12,7 @@ import { SMS_TEMPLATES } from '../sms/templates.js';
|
||||
import { logger } from '../logger.js';
|
||||
|
||||
const REPO_ROOT = process.env.REPO_ROOT || '.';
|
||||
const AUTO_APPLY = process.env.AUTO_APPLY_EDITS === 'true';
|
||||
|
||||
/** Get a friendly display name for a manifest entry. */
|
||||
function sectionDisplayName(m: ManifestEntry): string {
|
||||
@@ -136,6 +137,7 @@ async function handlePropose(job: Extract<EditJobPayload, { kind: 'propose' }>)
|
||||
after: editedJson,
|
||||
repoRelativePath,
|
||||
userMessage: job.message,
|
||||
autoApply: AUTO_APPLY,
|
||||
});
|
||||
|
||||
// Step 5: Store proposal
|
||||
@@ -154,9 +156,26 @@ async function handlePropose(job: Extract<EditJobPayload, { kind: 'propose' }>)
|
||||
|
||||
log.info({ event: 'proposal.created', proposalId, path: repoRelativePath }, 'Proposal created');
|
||||
|
||||
// Step 6: Notify user
|
||||
if (job.smsReplyMeta) {
|
||||
await sendSms(job.smsReplyMeta.from, job.smsReplyMeta.to, SMS_TEMPLATES.PROPOSAL_SUMMARY(summary, proposalId));
|
||||
// Step 6: Auto-apply or ask for confirmation
|
||||
if (AUTO_APPLY) {
|
||||
const validation = schema.safeParse(editedJson);
|
||||
if (!validation.success) {
|
||||
log.error({ event: 'auto_apply.validation_failed', errors: validation.error.message }, 'Auto-apply validation failed');
|
||||
updateProposalStatus(proposalId, 'rejected');
|
||||
return;
|
||||
}
|
||||
|
||||
writeContentFile(repoRelativePath, validation.data, { proposalId, source: job.source });
|
||||
updateProposalStatus(proposalId, 'applied');
|
||||
log.info({ event: 'proposal.auto_applied', proposalId, path: repoRelativePath }, 'Proposal auto-applied');
|
||||
|
||||
if (job.smsReplyMeta) {
|
||||
await sendSms(job.smsReplyMeta.from, job.smsReplyMeta.to, SMS_TEMPLATES.AUTO_APPLIED(summary));
|
||||
}
|
||||
} else {
|
||||
if (job.smsReplyMeta) {
|
||||
await sendSms(job.smsReplyMeta.from, job.smsReplyMeta.to, SMS_TEMPLATES.PROPOSAL_SUMMARY(summary, proposalId));
|
||||
}
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user