diff --git a/docs/EAKTE_ARCHITECTURE.md b/docs/EAKTE_ARCHITECTURE.md
index 96c616d..8b946f4 100644
--- a/docs/EAKTE_ARCHITECTURE.md
+++ b/docs/EAKTE_ARCHITECTURE.md
@@ -27,8 +27,8 @@ packages tracked by Records #2-#6:
valid/recorded time, purpose capture, institutional context, and search;
- a full-height eAkte workspace with file plan, list, details, chronology,
temporal status, create/edit, and filing actions;
-- a provider-neutral Core filing contract with exact Files-version and
- Cases-revision providers.
+- a provider-neutral Core filing contract with exact Files-version,
+ Cases-revision, Forms-submission, and formal-Decision providers;
- governed close/reopen transitions, class-bound retention calculation,
effective-dated holds, appraisal, evidence-bound disposition proposals, and
mandatory independent approval before finalization;
@@ -224,7 +224,8 @@ available in an evidence/details view.
1. Persist file plans, record classes, records, record items, exact references,
chronology, permissions, temporal reads, institutional context, and search.
2. Integrate filing from Cases, Forms Runtime, Decisions, Campaign/Postbox,
- Files, and Reporting.
+ Files, and Reporting. **Cases, Forms Runtime, Decisions, and Files are
+ implemented; Campaign/Postbox and Reporting remain.**
3. Add closure, retention calculation, holds, appraisal, and reviewed
disposition without destructive provider effects. **Implemented.**
4. Add native transfer packages and one target-tested xdomea/archive provider.
diff --git a/webui/src/features/records/RecordsPage.tsx b/webui/src/features/records/RecordsPage.tsx
index 4c7476f..09e5ca0 100644
--- a/webui/src/features/records/RecordsPage.tsx
+++ b/webui/src/features/records/RecordsPage.tsx
@@ -58,6 +58,14 @@ import {
const EMPTY_CATALOG: RecordCatalog = { file_plan: [], classes: [] };
const PAGE_SIZE = 50;
+type FilingPreset = {
+ sourceModule: string;
+ resourceType: string;
+ resourceId: string;
+ sourceRevision: string;
+ sourceLabel: string;
+};
+
export default function RecordsPage({ settings, auth }: PlatformRouteContext) {
const [searchParams, setSearchParams] = useSearchParams();
const { selection, selectionKey, isDefault: temporalIsDefault } = useTemporalDataContext();
@@ -86,6 +94,7 @@ export default function RecordsPage({ settings, auth }: PlatformRouteContext) {
const canWrite = auth.scopes.includes("records:workspace:write") ||
auth.scopes.includes("records:workspace:admin");
const canAdmin = auth.scopes.includes("records:workspace:admin");
+ const filingPreset = useMemo(() => filingPresetFrom(searchParams), [searchParams]);
const reload = useCallback(() => setReloadKey((value) => value + 1), []);
@@ -267,6 +276,13 @@ export default function RecordsPage({ settings, auth }: PlatformRouteContext) {
{error && {error}}
+ {filingPreset &&
+
+ {i18nMessage("i18n:govoplan-records.source_ready", {
+ value0: filingPreset.sourceLabel || "An exact source revision"
+ })} {i18nMessage("i18n:govoplan-records.select_destination")}
+
+ }