Manage project connection keys, register Python/Colab outputs and select sections for reports or Notion.
Reviewed · 2026-10-12
On this page · 13
0. Try an example before installing
Choose a project in Connect results and select Try a synthetic example to create two private pages from real CPU calculations. Inspect charts, metrics and tables, then combine sections into a report. Repeating this reuses the same project examples. It uses no research data, GPU, AI or Notion delivery.
1. Register outputs from existing code
In Reports → Reproducibility results → Connect results, choose the project and select Copy connection cell. Paste it into the first Colab/Jupyter cell or near the beginning of your Python file. It prepares SDK 0.3.0 from a pinned wheel/SHA-256 and opens browser connection approval. Check the account, project and confirmation code before approving. A valid connection stays in current-process memory for reuse across that project’s results. Connecting does not send results; reconnect after restarting the runtime. Never put key secrets in source, output, Git or AI consultation. Colab must use the actual platform HTTPS address, not your PC localhost.
After your existing computation, add import luna_repro as repro; selection = repro.select(). It recommends supported local variables, tables and figures; some may be preselected, but nothing is sent automatically. Check titles, descriptions and order, preview, then choose Send reviewed. If you already know the objects, repro.publish(fig, results_df, metrics, title="Experiment results") explicitly sends them. Default recommendation uses no AI and does not judge scientific importance or experiment success.
In an ordinary .py file or without widgets, use selection.summary(), choose(), option(), preview("preview.html") and publish(). Preview freezes selected content so later variable changes cannot silently alter it. A final cell cannot recover old closed figures, vanished variables or computation provenance. Opt into capture() before a figure closes or retain a file. For precise sections, sources and execution evidence, keep page = repro.page(project_uuid, "Experiment results"), page.section("quality").metrics(metrics), and repro.publish(page). Manual connection keys, environment variables and existing ZIP installation remain in the folded connection settings.
2. Read results, code and verification status
Combine text, numeric metrics, tables and PNG/JPEG images freely. Use Full preview to inspect results in order and follow compact provenance links to code, expanding details when needed. Each section can carry code links and registration locations. Automatic references identify the logging file/line, not the computation origin. Supply the calculation function, pinned commit and notebook cell explicitly. Open execution environment follows your Colab or server link; the platform does not dispatch training, inference or GPU jobs.
Imported outputs, reported executions and synthetic examples are separate. Execution and evaluation completion are producer claims, not independent reproduction or researcher approval. Version comparison shows differences between matching metric names and does not declare an improvement. Check matching data, splits, alignment and evaluation conditions.
3. Compose reports, copy and publish to Notion
Select the sections you need on result pages. Open Review selection in the selection bar to inspect results and versions from multiple pages, adjust their order and create a report. When editing an existing result report, use Add to this report and confirm changes by saving. Platform compositions begin as owner-only drafts. Selected result versions remain fixed; later experiments do not silently rewrite a report. Manage title, description, grant/project, researchers and tags through the existing material view. Result access follows its execution project and audience; changing search metadata does not expand it.
Copy link copies the section URL; Copy content and source provides supported formatting and provenance. If the destination cannot paste images or formatting, use Publish to Notion. Review the destination and automatic preview in one panel, then publish. Creating a child page is the default; append is in Publication options. Images are uploaded to Notion and metrics/tables become native blocks. Notion audiences are independent; revoking LUNA access does not automatically delete external copies.
4. Continue in AI consultation or ChatGPT
Choose Review with AI on a section or download its review context and deliver it to your preferred conversation. Inspect the pinned version, metrics, explanation, source references and omitted evaluation together. Connected consultation rechecks current source access. Reading or downloading does not call AI; actual consultation follows the existing AI budget and permissions.
In ChatGPT or Codex, explicitly provide an accessible result link or the downloaded context and ask: “Check the code provenance and evaluation conditions, identify limitations and propose the next experiment.” Work only through tools actually exposed by that host. A link does not imply that all external code was read or private repository access was granted. Generated code, synthetic checks, real execution and research success remain distinct.
5. Cost, limits and recovery
Registering, reading, composing or sending results to Notion does not itself call AI or start a GPU. Server storage/transfer and existing provider charges are separate; zero cost is not guaranteed. Keep models and large datasets on existing Colab, servers or Drive and send only selected small outputs. SDK JSON is limited to 16 MiB, each image to 8 MiB, and tables to 2,000 rows/100 columns. Notion export accepts 40 sections, 10 images and 99 rows/40 columns per table.
On transport failure, the SDK preserves the selected bundle in .luna-repro/outbox and returns pending. Treat that folder as private research data. Fix the connection, key or permissions, then explicitly retry with python -m luna_repro sync. Reusing a request does not duplicate its result. For authorization errors, check project membership, token expiry and revocation; for HTTP 413, reduce selected content or image size.
The default project quota is 1 GiB of result JSON and image bytes. Retrying the same request consumes no additional storage. HTTP 409 storage errors require reviewing selected outputs or administrator storage policy; HTTP 429 requires waiting before retrying. Default intake limits are 120 requests per user and 600 per project per 15 minutes, separate from AI daily allowance. Earlier results are not automatically deleted to free space.
Notion delivery distinguishes queued, sending and confirmed outcomes. An uncertain write is not automatically repeated. Inspect the destination and connection before recovery; it is not reported as published until confirmed. Platform versions and bounded image bytes are included in existing encrypted operational database backups. Private results are not automatically copied into the lab readable archive.
6. Distinguish Pasa and synthetic examples
The bundled examples/repro directory separates a deterministic CPU synthetic check from a Pasa output-folder adapter. The adapter reads an existing run manifest, selected renders, camera diagnostics and any available evaluation table. It neither runs the original inference/training code nor fabricates omitted evaluation.
Runs without ground truth or with skipped evaluation remain not evaluated. Preserve failed camera diagnostics and do not relabel partial inference timing as whole-pipeline runtime. Actual Pasa reproduction requires separately accessible data/models and a CUDA environment. Synthetic checks, imported outputs, a new Pasa execution and independent verification require distinct evidence.
7. Account closure and research evidence
Withdrawal ends login and project access and revokes reproducibility connection keys. Results, immutable versions, images and authorship history are retained. Queued Notion delivery checks current access immediately before execution and stops when access has ended. Copies already sent to external services are not automatically deleted.
Accounts with reproducibility results, composed reports or Notion delivery history require preservation or transfer review before permanent erasure. Erasure does not rewrite the authors of immutable evidence. Accounts with connection keys but no research history can erase those keys through the existing permanent-erasure process.
Find results and manage connections
Switch between All reports and Reproducibility results in Reports. Use New report for Write manually, Compose from results or Draft with AI. In Reproducibility results, Connect results opens Python/Colab guidance; Manage connections opens your issued keys. Opening a menu does not generate a result, key or AI report.
Settings → Reproducibility connections lists your connections across projects. Project settings → Connections and research tools → Manage connections opens the same manager with that project selected. Participants without project-settings permission can still manage their own connections from Settings or Reports. Project-management permission does not automatically permit viewing or revoking another user's keys.
A key belongs to its issuer and one project and can be reused for multiple results and runs in that project. Use separate names for Colab and servers if useful; names do not authenticate devices. The secret is shown only when issued. To replace a lost or old key, issue a new connection key, update the runtime, then revoke the old connection. Revocation preserves results, reports and version history. Expired, revoked and current project access unavailable are distinct. You can revoke your own key in the central manager even after losing project access. Readers use their own login and current sharing permissions, not the author's key.
Step-by-step practice, syntax and downloadable manuals
Detailed practical guide: https://lunalab-ai.com/workspace/repro/guide/?lang=EN
View the finished example without installing: https://lunalab-ai.com/workspace/repro/demo/?lang=EN
Follow Colab, Windows or Linux setup, the final-cell workflow, incremental sections, text/metrics/table/image/figure syntax, code cells/lines/pinned commits, versions, reports, Notion, AI review, the Pasa adapter and upload recovery. Download standalone HTML/Markdown manuals and runnable walkthrough.py/walkthrough.ipynb in the practice ZIP. Read the HTML offline or print it to PDF in your browser.
Inspect the public synthetic example first, then create your own private project demo in Connect results. Code practice saves locally by default; only explicitly choosing to publish uses the connection key. Distinguish a published receipt from a pending local bundle. Neither synthetic example measures research performance or independently verifies reproduction.
Public SDK installation and upgrades: https://github.com/lunalab-ai/luna-repro-sdk/blob/v0.3.0/docs/installation-en.md
SDK 0.3.0, the luna.repro.page.v1 contract and the platform version are independent. Public SDK code does not expose keys or research results; installation does not alter existing results, connections or history. Record the installed version and requirements before changing it; test synthetic examples in a new environment. To roll back, reinstall the recorded prior wheel and SHA-256 in that environment while preserving result JSON and outbox files. SDK/CPU practice needs no separate GPU or paid execution service; Colab resources, servers, storage, networking and optional AI have separate costs.
For ChatGPT or Codex questions, specify SDK luna_repro 0.3.0, the luna.repro.page.v1 result-page contract, selected result JSON and error code to avoid confusion with legacy ReproKit events. Never include connection keys in prompts or attachments. Provide review context or an accessible section link, then continue within the actually exposed tools and current permissions.
8. Arrange narrative cells freely
In Compose from results, choose Add narrative cell. Use Markdown for the background, methods, data, analysis or limitations where needed. Move result and narrative cells with the up/down buttons or drag their handles on desktop. Add results can bring in sections from other reproducibility pages. Save your changes. This editor does not modify measured values inside result cards.
Saving records a report revision. Open Version history to inspect and restore earlier content; restoration creates a new revision. If another window has edited the report, review the current version first. Removing a result cell only removes it from this report; its source result remains.
9. Draft with AI from selected evidence
Save your report, then open AI draft. Select earlier materials or reports that you can currently access in the same lab, and add instructions. Images and saved source code are sent only when their respective options are selected. A link alone does not fetch external repository or Colab code. Review the selected counts, input scope and usage policy before requesting the draft. Reading and previewing do not run AI; generation uses existing AI access, daily allowance and request policy.
AI proposes a title and commentary on background, methods, data, experiments, analysis, limitations and discussion. Unsupported details must remain open questions. Select the proposed narrative cells and title you want to apply, then review them yourself. A changed report or evidence blocks overwriting with an outdated draft. Refine this cell with AI preserves its topic and appropriate length, updating only that draft cell with Undo. It never changes the title, other cells or result order; saving the report stays explicit. Edits made during generation require comparison before applying. Follow real progress and elapsed time for the same job. @mentions and [[material/report citations]] work in newly added cells; cited source text uses current access. This does not perform training, inference or independent verification.
10. Move results to Trash and restore
For a result you own, choose ⋯ → Move to Trash on its card or detail page. Review the impact on referencing reports and ongoing Notion delivery before moving it. It disappears from normal lists, search and reads, while its ID, versions, images and reference history remain. Restore returns the same ID. Management privileges alone do not expose another person’s private result.
An SDK retry cannot automatically restore a trashed result. On result_trashed, explicitly restore your result in the platform before retrying. Ongoing Notion delivery requires inspection; external copies are not automatically erased. Referencing reports, AI and downloads recheck current source access after revocation or trashing. Permanent erasure of research evidence is not offered.