mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-10 22:43:40 +00:00
Trimmed rebuild of 6ea5aa44 (fork PR #4): Move core (gitnexus/src/core/move/)
and Move tests, plus the functional minimum elsewhere.
Dropped from the original commit:
- .gitignore .codex/ entry (unrelated)
- cli/analyze.ts env-constant swap (cosmetic; same string literal)
- core/logger.ts warnRespectingProgressBar extraction and the
filesystem-walker.ts reuse of it (Move code never imports the helper)
- scope-resolution callable-value-flow warning aggregation and pipeline/run.ts
progress-warning formatting, with their two tests (warning-UX hardening,
not Move-functional)
- process-detection interface doc-comment retuning (DEFAULT_CONFIG runtime
values already match upstream; region left byte-identical to upstream)
Kept outside src/core/move/ and Move tests (one line each):
- gitnexus-shared/src/graph/types.ts: 'external' locationFidelity for
dependency symbols
- gitnexus-shared/src/lbug/schema-constants.ts: 'Type' node table registration
- core/lbug/schema.ts: Type table schema + Move rel-table endpoint pairs
- core/lbug/node-table-layout.ts: TYPE_LAYOUT CSV layout
- core/lbug/csv-generator.ts: 'Type' in MULTI_LANG_TYPES routing
- core/lbug/lbug-adapter.ts: deleteAllExternalNodes + shared delete-by-label
mechanics; Type backtick entry
- core/incremental/subgraph-extract.ts: external nodes get the
delete-all-then-rebuild treatment
- core/run-analyze.ts: Move consistency digest to meta.json;
deleteAllExternalNodes call; grouped Move meta; finally-based shutdown
- storage/repo-manager.ts: moveConsistency in RepoMeta;
INCREMENTAL_SCHEMA_VERSION 13 (Type/EnumVariant persistence)
- core/ingestion/pipeline.ts: generic TStandaloneIngest output threading
- types/pipeline.ts: PipelineResult.standaloneIngest replaces ingestWarnings
- core/ingestion/process-processor.ts: ENTRY_POINT_OF explicit graph roots
- tests: schema, node-table-layout, process-processor,
repo-manager-reconcile, call-summary-schema-version,
incremental-subgraph-extract, run-analyze-fts-repair (unit);
lbug-core-adapter (integration)
Gates: tsc clean; Move unit 185/185; full unit suite green except three
pre-existing Darwin-environment failures reproduced on the pristine base;
integration (move + lbug-core-adapter) 29/29.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
import path from 'node:path';
|
|
import { describe, expect, it } from 'vitest';
|
|
import type { MoveFactsMap } from '../../../src/core/move/compiler-facts.js';
|
|
import {
|
|
makeMoveFlowClientStub,
|
|
moveFunctionFact,
|
|
runMoveIngestPhaseWithGraph,
|
|
} from '../../helpers/move-ingest-harness.js';
|
|
|
|
describe('Move entry points', () => {
|
|
it('emits roots for entry and view functions, but not init_module', async () => {
|
|
const repoRoot = path.resolve('/repo');
|
|
const facts: MoveFactsMap = {
|
|
'0xa::roots': {
|
|
file: path.join(repoRoot, 'pkg/sources/roots.move'),
|
|
functions: [
|
|
moveFunctionFact('entry_api', { isEntry: true }),
|
|
moveFunctionFact('view_api', { isView: true }),
|
|
moveFunctionFact('init_module'),
|
|
],
|
|
},
|
|
};
|
|
const client = makeMoveFlowClientStub({
|
|
facts: async () => facts,
|
|
callGraph: async () => ({}),
|
|
capabilities: async () => ({
|
|
hasFactsQuery: true,
|
|
hasFunctionUsageQuery: false,
|
|
hasStatusTool: false,
|
|
}),
|
|
});
|
|
|
|
const { graph } = await runMoveIngestPhaseWithGraph(client, repoRoot, [
|
|
'pkg/Move.toml',
|
|
'pkg/sources/roots.move',
|
|
]);
|
|
const roots = [...graph.iterRelationshipsByType('ENTRY_POINT_OF')].map((edge) => edge.reason);
|
|
|
|
expect(roots).toEqual(expect.arrayContaining(['move-entry-function', 'move-view-function']));
|
|
expect(roots).toHaveLength(2);
|
|
});
|
|
});
|