Classic confinement request for kodin

    • name: kodin
    • description: Kodin is an academic integrity code editor and assessment IDE built by Autometa Labs for engineering institutions, educators, and students. It features integrated coding workspaces, Data Structures & Algorithms (DSA) training, real-time code visualization (memory flow and call-stack analysis), AI-assisted mentoring, interactive terminal execution, and verified practical reports.
    • snapcraft: PRIVATE (Packaged as a pre-built desktop application via meta/snap.yaml and snap pack)
    • upstream: PRIVATE (Official website: https://getkodin.com)
    • upstream-relation: Developer and Publisher (Autometa Labs)
    • supported-category: Integrated Development Environments (IDEs)
    • reasoning: Kodin is a full-featured programming IDE that cannot function under strict confinement for the following technical reasons:
    1. Host-Installed Compilers & Interpreters: Kodin relies on the host system’s compilers, runtimes, and build tools installed by universities and students (gcc, g++, clang, python3, javac, java, make, gdb) located in /usr/bin, /usr/lib/jvm, and custom $PATH directories. Under strict confinement, access to arbitrary host binaries and system development toolchains is completely blocked.

    2. Arbitrary Workspace Access: Students and faculty open, compile, and run code projects stored anywhere on their system (e.g. arbitrary subdirectories, university network/NFS mounts, shared partitions), which cannot be restricted to standard plug locations.

    3. Interactive Terminal (PTY) Emulation: The IDE includes an integrated terminal powered by native node-pty bindings to spawn user login shells (bash, zsh, sh) for running build commands, student scripts, and CLI workflows.

    4. Execution Tracers & Memory Visualizers: Kodin bundles runtime execution tracers (kodin_tracer.py, kodin_c_tracer.py, etc.) that inspect call-stacks, variables, and process execution flow of running student code. Strict confinement interfaces do not permit this level of process inspection and execution.

      I understand that strict confinement is generally preferred over classic.

      I’ve tried the [existing interfaces](https://snapcraft.io/docs/supported-interfaces) to make the snap to work under strict confinement.

This request has been added to the queue for review by the @reviewers team.

Hi @kodin-autometa

Technical justification on why kodin requires classic are understood and it falls perfectly under supported category of IDEs.

However, a key step before granting classic confinement is Publisher Vetting. Since the upstream repository is private, you will need to follow the Verified Accounts process described here.

Once this is completed, we can proceed with your request!