Skip to content

Deliverable dependency graph

Mike Griese edited this page Jan 4, 2024 · 19 revisions

🚧 very much under construction 🚧

An attempt to codify the way we're thinking about how different features are dependent on others. This is obviously not comprehensive - at the time of writing, there's ~300 open "Features" and another 450 "Tasks". Obviously, mermaid would just explode if we tried to include all that.

This'll probably be updated as we go. Anytime we think "ah well to do X we'll need Y first", then we should loop back on this page.

(Note to editors: Right now this is broken into two graphs. The first is much more inter-linked and fragile. The second is for subtrees that don't really re-connect to other bits in the first)

graph TD

    classDef progress stroke:#ff0
    classDef done stroke:#0f0
    classDef experimental stroke:#0ff
    classDef blocked stroke:#f00

    i3121["#quot;Shell Suggestions#quot;"<br>#3121]:::experimental
    click i3121 "https://github.com/microsoft/terminal/issues/3121"

    EX_1[Basic extension model] 
    EX_2[Connection<br>Extensions] 
    EX_3[UI<br>Extensions] 
    EX_4[Fragment Tasks]:::progress
    shell_int[Shell integration]:::experimental
    
    global_actions[Global actions]
    C_2[actions in<br>dropdown]

    i3337[Right click<br>context menu #3337]:::experimental
    click i3337 "https://github.com/microsoft/terminal/issues/3337"
    i5790[profile-specific<br>keybindings #5790]
    click i5790 "https://github.com/microsoft/terminal/issues/5790"
    i2205[Alternate keymaps<br>#2205]
    click i2205 "https://github.com/microsoft/terminal/issues/2205"
    i1553[mouse bindings<br>#1553]
    click i1553 "https://github.com/microsoft/terminal/issues/1553"
    i6632["#quot;Buffer Suggestions#quot;"<br>from buffer contents<br>#6632]
    click i6632 "https://github.com/microsoft/terminal/issues/6632"

    i997[Non-terminal panes<br>#997]:::progress
    click i997 "https://github.com/microsoft/terminal/issues/997"
    i4717[Pane Titlebars<br>#4717]
    click i4717 "https://github.com/microsoft/terminal/issues/4717"
    i4587a[Drag tab to make a pane<br>#4587]
    click i4587a "https://github.com/microsoft/terminal/issues/4587"
    i4587b[Drag pane to make a pane<br>#4587]
    click i4587b "https://github.com/microsoft/terminal/issues/4587"
    i9229[Drag from new tab menu to make a pane<br>#9229]
    click i9229 "https://github.com/microsoft/terminal/issues/9229"
    i3586[Prompt for profile when opening<br>tab/pane#3586]
    click i3586 "https://github.com/microsoft/terminal/issues/3586"
    
    i16005[a11y pane<br>#16005]
    click i16005 "https://github.com/microsoft/terminal/issues/16005"
    
    T_1["#quot;Recent commands#quot;"<br>The basic Tasks UI]:::done
    T_2["#quot;Tasks#quot;"<br>UI for sendInput actions]:::done
    T_3[Recent commands<br>pane]
    
    i8573[Move cursor with mouse<br>#8573]:::experimental
    click i8573 "https://github.com/microsoft/terminal/issues/8573"

    i8224[reg-based<br> fragments #8224]
    click i8224 "https://github.com/microsoft/terminal/issues/8224"
    i10359[package-relative imgs<br> for fragments #10359]
    click i10359 "https://github.com/microsoft/terminal/issues/10359"
    i14143[Block web resources<br> #14143]
    click i14143 "https://github.com/microsoft/terminal/issues/14143"

    i15858[Use libICU for search<br>#15858]:::done
    click i15858 "https://github.com/microsoft/terminal/pull/15858"
    i6386[Regex search<br>#6386]
    click i6386 "https://github.com/microsoft/terminal/pull/6386"
    i5314[Fuzzy search<br>#5314]
    click i5314 "https://github.com/microsoft/terminal/issues/5314"
    i3920[Search across all tabs<br>#3920]
    click i3920 "https://github.com/microsoft/terminal/issues/3920"
    i7561[highlight all matches<br>#7561]
    click i7561 "https://github.com/microsoft/terminal/issues/7561"

    
    inactive[detect when a<br>control is hidden]
    i1989[Stop rendering when inactive<br>#1989]
    click i1989 "https://github.com/microsoft/terminal/issues/1989"
    i5318[Stop blinking after 5s<br>#5318]
    click i5318 "https://github.com/microsoft/terminal/issues/5318"



    subgraph s1000[Panes <br> #1000]
    i4587a --> i4587b
    i9229 -.- i4587a 
    i997 --> i4717 
    i4717 --> i4587b
    i997 ---> i3586
    i997 --> i16005
    i997 --> T_3
    end
    
    T_1 --> i3121
    T_1 ---> i6632

    global_actions --> i5790

    i15858 ---> i3920
    i997 -----> i3920
    i15858 --> i6386
    i15858 --> i5314
    i15858 --> i7561
    

    subgraph s4000[Extensions <br> #4000]
    EX_1 --> EX_3
    EX_1 --> EX_2
    EX_1 --> Z(other extensions...)
    i997 --> EX_3

    i16495[notebook<br>pane #16495]
    click i16495 "https://github.com/microsoft/terminal/issues/16495"
    EX_3 --> i16495

    i8224 -.- i10359 --> i14143
    end
    

    subgraph Tasks
    T_1 --> T_2

    T_4[Local tasks <br>from CWD]
    T_2 --> T_4
    T_5[Save tasks <br>on commandline]:::progress
    T_2 --> T_5

    T_2 --> EX_4

    end
    
    global_actions --> EX_4

    shell_int --> T_1
    shell_int --> t_4[command separators]
    shell_int --> t_5[gutter icons]
    shell_int --> i8573
    global_actions --> EX_1

    EX_4 --> i2205
    

    global_actions --> C_2
    global_actions --> i1553
    i3337 --> i1553

    subgraph s9600[battery saver <br> #9600]
    i5318
    inactive --> i1989
    end


    subgraph activity indicator
    i7955[notify on inactive output<br>#7955]
    click i7955 "https://github.com/microsoft/terminal/issues/7955"
    i6372[notify on prompt<br>#6372]
    click i6372 "https://github.com/microsoft/terminal/issues/6372"
    i1620[tab busy indicator<br>#1620]
    click i1620 "https://github.com/microsoft/terminal/issues/1620"
    i8449[auto-progress detection<br>#1620]
    click i8449 "https://github.com/microsoft/terminal/issues/8449"
    
    i6372 -.- i7955
    i1620 -.- i8449
    end
    shell_int --> i6372

    inactive --> i7955

    

    
    
graph TD

    classDef progress stroke:#ff0
    classDef done stroke:#0f0
    classDef experimental stroke:#0ff
    classDef blocked stroke:#f00

    i1503[Emoji Input<br>#1503]
    click i1503 "https://github.com/microsoft/terminal/issues/1503"
    i1472[Surrogate Pair output<br>#1472]
    click i1472 "https://github.com/microsoft/terminal/issues/1472"
    i190[Emoji Support<br>#190]
    click i190 "https://github.com/microsoft/terminal/issues/190"
    i2664[Font Fallback<br> per-glyph #2664]
    click i2664 "https://github.com/microsoft/terminal/issues/2664"
    i1503 --> i190
    i1472 --> i190
    i2664 -.- i190 

    i15678_a[conhost --codepage]
    i15678_b[per-profile codepage<br>#15678]
    click i15678_b "https://github.com/microsoft/terminal/issues/15678"
    i1802[default to utf-8<br>#1802]
    click i1802 "https://github.com/microsoft/terminal/issues/1802"
    i15678_a --> i15678_b --> i1802

    subgraph brrrt[go brrrt]
    direction LR
    i12336[ConPty WriteFile's<br>on newlines #12336]
    click i12336 "https://github.com/microsoft/terminal/issues/12336"
    i262[Overlapped I/O<br>#262]
    click i262 "https://github.com/microsoft/terminal/issues/262"
    i5228[ScrollFrame optimizations<br>#5228]
    click i5228 "https://github.com/microsoft/terminal/issues/5228"
    i4003[perf test connection<br>#4003]
    click i4003 "https://github.com/microsoft/terminal/issues/4003"


    i15976[in-proc conpty<br>#15976]
    click i15976 "https://github.com/microsoft/terminal/issues/15976"
    i10639[GCSBIEx doesn't return the<br> real palette#10639]
    click i10639 "https://github.com/microsoft/terminal/issues/10639"

    i4129[slow rendering of<br>colored text #4129]:::done 
    click i4129 "https://github.com/microsoft/terminal/issues/4129"
    i10462[fastest terminal <br> on planet #10462]:::progress
    click i10462 "https://github.com/microsoft/terminal/issues/411046229"

    i15976 --> i10639
    i4129 --> i10462
    end

    i10001[passthrough mode<br>#10001, #1173]
    click i10001 "https://github.com/microsoft/terminal/issues/10001"
    i448[sixel<br>#448]
    click i448 "https://github.com/microsoft/terminal/issues/448"
    i5746[other image<br>formats #5746]
    click i5746 "https://github.com/microsoft/terminal/issues/5746"

    %% Sixel notes
    brrrt -.- i10001
    i10001 --> i448
    i448 --> i5746

    subgraph headless
    i14944[run without any windows<br>#14944]:::done 
    click i14944 "https://github.com/microsoft/terminal/issues/14944"
    i7374[Start the terminal minimized<br>#7374]:::done 
    click i7374 "https://github.com/microsoft/terminal/issues/7374"
    i9996[Start the terminal headless<br>#9996]
    click i9996 "https://github.com/microsoft/terminal/issues/9996"
    i13630[Start on login headless<br>#13630]
    click i13630 "https://github.com/microsoft/terminal/issues/13630"
    
    i14944 --> i9996
    i9996 --> i13630
    i7374 -.- i9996
    end

    
    subgraph summon
    i13276[summon subcommand<br>#13276]
    click i13276 "https://github.com/microsoft/terminal/issues/13276"
    i12135[summon and switch<br>to profile#12135]
    click i12135 "https://github.com/microsoft/terminal/issues/12135"
    i10279[summon and switch<br>to tab#10279] 
    click i10279 "https://github.com/microsoft/terminal/issues/10279"
    i12846[summon then actions<br>#12846]
    click i12846 "https://github.com/microsoft/terminal/issues/12846"
    
    i13276 --> i12135
    i10279 -. these are possibly the same .- i12846
    end

    subgraph quake
    i9992[per-window settings<br>#9992]:::progress
    click i9992 "https://github.com/microsoft/terminal/issues/9992"
    i11162[set quake window<br>height #11162]
    click i11162 "https://github.com/microsoft/terminal/issues/11162"
    i11174[set quake window<br>width #11174]
    click i11174 "https://github.com/microsoft/terminal/issues/11174"
    i8888_dock[dock to other<br>sides]
    click i8888_dock "https://github.com/microsoft/terminal/issues/8888"
    
    i9992 --> i11162 & i11174 & i8888_dock
    end

    
    subgraph hwnd_icons[Window Icons #4768]
    i1871[tab icon as badge<br>#1871]:::progress
    click i1871 "https://github.com/microsoft/terminal/issues/1871"
    i14372[LNK icon as tab icon<br>#14372]
    click i14372 "https://github.com/microsoft/terminal/issues/14372"
    
    i705[exe icon as<br>tab icon#705]:::progress
    click i705 "https://github.com/microsoft/terminal/issues/705"
    i7552[wt foo.exe<br>uses foo's icon#7552]
    click i7552 "https://github.com/microsoft/terminal/issues/7552"
    i705 --> i7552 & i14372
    end
    i8216[taskbar glom modes<br>#8216]:::progress
    click i8216 "https://github.com/microsoft/terminal/issues/8216"

    headless -.- summon & quake

    hwnd_icons -.- i8216
graph TD

    classDef progress stroke:#ff0
    classDef done stroke:#0f0
    classDef experimental stroke:#0ff
    classDef blocked stroke:#f00

    progress[In Progress]:::progress 
    experimental[Completed in an experimental form]:::experimental
    done[Done]:::done 
    blocked[Blocked]:::blocked