收敛客户端静态发布链路
This commit is contained in:
@@ -3,7 +3,7 @@ import { watch, type FSWatcher } from 'node:fs';
|
||||
import { access, readFile } from 'node:fs/promises';
|
||||
import { join } from 'node:path';
|
||||
import type { OpencodeProject, OpencodeProjectStore } from '../opencode/project-store';
|
||||
import { readWorksPublishFile } from '../opencode/works-publish-file';
|
||||
import { readWorksSubmissionBinding } from './works-submission-binding';
|
||||
import { WORKS_SQUARE_CONFIG } from '../api/works-config';
|
||||
import { proxyAwareFetch } from '../utils/proxy-fetch';
|
||||
import { logger } from '../utils/logger';
|
||||
@@ -15,13 +15,13 @@ import {
|
||||
getValidWorksSquareAccessToken,
|
||||
subscribeWorksSquareSession,
|
||||
} from './works-square-session';
|
||||
import { WORKS_SUBMISSION_BINDING_FILE_NAME } from '../../shared/works-submission-binding';
|
||||
|
||||
export const PROJECT_PROGRESS_DOCUMENT_NAMES = ['GDD.md', 'TASKS.md'] as const;
|
||||
export const PROJECT_PROGRESS_DEBOUNCE_MS = 1_000;
|
||||
const PROJECT_PROGRESS_ENDPOINT = '/api/project-progress';
|
||||
const PROJECT_AGENT_PROMPT_ENDPOINT_PREFIX = '/api/projects';
|
||||
const PROJECT_PROGRESS_MAX_CHARS = 20_000;
|
||||
const WORKS_PUBLISH_FILE_NAME = 'works-publish.json';
|
||||
|
||||
type ProjectProgressDocumentName = typeof PROJECT_PROGRESS_DOCUMENT_NAMES[number];
|
||||
type ProjectProgressType = 'server' | 'local';
|
||||
@@ -89,7 +89,7 @@ function isSyncRelevantFile(filename: string | null): boolean {
|
||||
return PROJECT_PROGRESS_DOCUMENT_NAMES.includes(normalized as ProjectProgressDocumentName)
|
||||
|| normalized === PRODUCT_OVERVIEW_FILENAME
|
||||
|| normalized === LEGACY_PROMOTION_PLAN_FILENAME
|
||||
|| normalized === WORKS_PUBLISH_FILE_NAME;
|
||||
|| normalized === WORKS_SUBMISSION_BINDING_FILE_NAME;
|
||||
}
|
||||
|
||||
export function mergeProjectProgressDocuments(gdd: string, tasks: string): string {
|
||||
@@ -139,9 +139,9 @@ async function readProductOverview(projectPath: string): Promise<string> {
|
||||
async function resolveProjectProgressIdentity(
|
||||
project: OpencodeProject,
|
||||
): Promise<ProjectProgressIdentity> {
|
||||
const publish = await readWorksPublishFile(project.path);
|
||||
if (publish.status === 'ready' && publish.publish.app_id) {
|
||||
return { projectType: 'server', projectKey: publish.publish.app_id };
|
||||
const binding = await readWorksSubmissionBinding(project.path);
|
||||
if (binding?.status === 'submitted' && binding.app_id) {
|
||||
return { projectType: 'server', projectKey: binding.app_id };
|
||||
}
|
||||
return { projectType: 'local', projectKey: project.id };
|
||||
}
|
||||
@@ -189,7 +189,7 @@ export function createProjectProgressSync(
|
||||
if (!normalized || normalized === PRODUCT_OVERVIEW_FILENAME || normalized === LEGACY_PROMOTION_PLAN_FILENAME) {
|
||||
state.pendingPromotion = true;
|
||||
}
|
||||
if (normalized === WORKS_PUBLISH_FILE_NAME) {
|
||||
if (normalized === WORKS_SUBMISSION_BINDING_FILE_NAME) {
|
||||
state.pendingProgress = true;
|
||||
state.pendingPromotion = true;
|
||||
state.lastSyncedFingerprint = null;
|
||||
|
||||
Reference in New Issue
Block a user